|
|
|
|
@ -1,17 +1,65 @@ |
|
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
|
from django.views.generic import TemplateView, CreateView, ListView, UpdateView, DetailView |
|
|
|
|
from django.views.generic import TemplateView, CreateView, ListView, UpdateView, DetailView, FormView |
|
|
|
|
from django.views.generic.list import MultipleObjectMixin |
|
|
|
|
from django.conf import settings |
|
|
|
|
from django.http import HttpResponseRedirect |
|
|
|
|
from django.shortcuts import get_object_or_404 |
|
|
|
|
from django.core.urlresolvers import reverse |
|
|
|
|
from emencia.django.newsletter.models import Contact, ContactSettings, MailingList, Newsletter |
|
|
|
|
from emencia.django.newsletter.admin_forms import ContactSettingsForm, MailingListForm, NewsletterForm |
|
|
|
|
from ..forms import ContactFilterForm |
|
|
|
|
from functions.admin_views import paginate_results |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ContactList(ListView): |
|
|
|
|
class ContactList(FormView): |
|
|
|
|
paginate_by = settings.ADMIN_PAGINATION |
|
|
|
|
model = Contact |
|
|
|
|
template_name = 'admin/newsletters/contact_list.html' |
|
|
|
|
form_class = ContactFilterForm |
|
|
|
|
queryset = Contact.objects.all() |
|
|
|
|
|
|
|
|
|
def get_form(self, form_class): |
|
|
|
|
|
|
|
|
|
if self.request.GET: |
|
|
|
|
return form_class(self.request.GET) |
|
|
|
|
else: |
|
|
|
|
return form_class(**self.get_form_kwargs()) |
|
|
|
|
|
|
|
|
|
def get(self, request, *args, **kwargs): |
|
|
|
|
|
|
|
|
|
if request.GET: |
|
|
|
|
form_class = self.get_form_class() |
|
|
|
|
form = self.get_form(form_class) |
|
|
|
|
if form.is_valid(): |
|
|
|
|
return self.form_valid(form) |
|
|
|
|
else: |
|
|
|
|
return self.form_invalid(form) |
|
|
|
|
else: |
|
|
|
|
return super(ContactList, self).get(request, *args, **kwargs) |
|
|
|
|
|
|
|
|
|
def form_valid(self, form): |
|
|
|
|
""" |
|
|
|
|
|
|
|
|
|
filtering queryset and return paginated results |
|
|
|
|
|
|
|
|
|
""" |
|
|
|
|
qs = form.filter() |
|
|
|
|
result = paginate_results(qs, page=self.request.GET.get('page')) |
|
|
|
|
context = self.get_context_data(form=form) |
|
|
|
|
context.update({'object_list': result}) |
|
|
|
|
return self.render_to_response(context) |
|
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs): |
|
|
|
|
context = super(ContactList, self).get_context_data(**kwargs) |
|
|
|
|
qs = self.model.objects.all() |
|
|
|
|
result = paginate_results(qs, page=self.request.GET.get('page')) |
|
|
|
|
context['object_list'] = result |
|
|
|
|
return context |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class UpdateContact(UpdateView): |
|
|
|
|
|