mirror of
https://github.com/nikdoof/vapemap.git
synced 2025-12-22 06:09:23 +00:00
Initial Import.
This commit is contained in:
68
app/stores/views/stores.py
Normal file
68
app/stores/views/stores.py
Normal file
@@ -0,0 +1,68 @@
|
||||
from django.views.generic import ListView, DetailView, UpdateView
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.contrib import messages
|
||||
from django.contrib.formtools.wizard.views import SessionWizardView
|
||||
from .mixins import EditorCheckMixin, HaystackSearchListMixin
|
||||
from ..forms import AddressInline, StoreForm, AddressForm
|
||||
from ..models import Store
|
||||
|
||||
|
||||
class StoreListView(HaystackSearchListMixin, ListView):
|
||||
model = Store
|
||||
paginate_by = 10
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
ctx = super(StoreListView, self).get_context_data(**kwargs)
|
||||
|
||||
search = self.get_search_terms()
|
||||
if search:
|
||||
ctx.update({
|
||||
'search_query': search,
|
||||
})
|
||||
return ctx
|
||||
|
||||
def get_queryset(self):
|
||||
qs = super(StoreListView, self).get_queryset()
|
||||
return qs.filter(active=True).select_related('address')
|
||||
|
||||
|
||||
class StoreDetailView(EditorCheckMixin, DetailView):
|
||||
model = Store
|
||||
|
||||
def get_queryset(self):
|
||||
qs = super(StoreDetailView, self).get_queryset()
|
||||
return qs.filter(active=True).select_related('address', 'address__county', 'address__country', 'chain').prefetch_related('brands')
|
||||
|
||||
|
||||
class StoreUpdateView(UpdateView):
|
||||
model = Store
|
||||
form_class = StoreForm
|
||||
|
||||
def form_valid(self, form):
|
||||
messages.success(self.request, "%s updated successfully." % self.object)
|
||||
return super(UpdateView, self).form_valid(form)
|
||||
|
||||
|
||||
class StoreCreateView(SessionWizardView):
|
||||
form_list = [AddressForm, StoreForm]
|
||||
|
||||
def done(self, form_list, **kwargs):
|
||||
|
||||
address, store = form_list
|
||||
|
||||
addr_obj = address.save(commit=False)
|
||||
store_obj = store.save(commit=False)
|
||||
|
||||
addr_obj.name = store_obj.name
|
||||
addr_obj.save()
|
||||
store_obj.address = addr_obj
|
||||
store_obj.active = False
|
||||
store_obj.save()
|
||||
|
||||
messages.success(self.request, "%s has been sumbitted for moderation and should be visible within the next 24 hours." % store_obj)
|
||||
|
||||
return HttpResponseRedirect(reverse('store-map'))
|
||||
|
||||
def get_template_names(self):
|
||||
return 'stores/wizard/store_wizard.html'
|
||||
Reference in New Issue
Block a user