|
|
|
@ -1,13 +1,14 @@ |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
from django.views.generic import TemplateView, CreateView, ListView, UpdateView, DetailView, FormView |
|
|
|
from django.views.generic import TemplateView, CreateView, ListView, UpdateView, DeleteView, FormView |
|
|
|
from django.views.generic.list import MultipleObjectMixin |
|
|
|
|
|
|
|
from django.conf import settings |
|
|
|
from django.conf import settings |
|
|
|
from django.http import HttpResponseRedirect |
|
|
|
from django.http import HttpResponseRedirect |
|
|
|
from django.forms.formsets import BaseFormSet, formset_factory |
|
|
|
from django.forms.formsets import BaseFormSet, formset_factory |
|
|
|
|
|
|
|
from django.http import HttpResponseRedirect, HttpResponse |
|
|
|
from django.shortcuts import get_object_or_404 |
|
|
|
from django.shortcuts import get_object_or_404 |
|
|
|
from django.core.urlresolvers import reverse |
|
|
|
from django.core.urlresolvers import reverse |
|
|
|
from emencia.django.newsletter.models import Contact, ContactSettings, MailingList, Newsletter, Attachment |
|
|
|
from emencia.django.newsletter.models import Contact, ContactSettings, MailingList, Newsletter, Attachment |
|
|
|
from emencia.django.newsletter.admin_forms import ContactSettingsForm, MailingListForm, NewsletterForm, AttachmentForm |
|
|
|
from emencia.django.newsletter.admin_forms import ContactSettingsForm, MailingListForm, NewsletterForm, AttachmentForm |
|
|
|
|
|
|
|
from django.core.urlresolvers import reverse_lazy |
|
|
|
from emencia.django.newsletter.models import Contact, ContactSettings, MailingList, Newsletter |
|
|
|
from emencia.django.newsletter.models import Contact, ContactSettings, MailingList, Newsletter |
|
|
|
from emencia.django.newsletter.admin_forms import ContactSettingsForm, MailingListForm, NewsletterForm |
|
|
|
from emencia.django.newsletter.admin_forms import ContactSettingsForm, MailingListForm, NewsletterForm |
|
|
|
from ..forms import ContactFilterForm |
|
|
|
from ..forms import ContactFilterForm |
|
|
|
@ -41,12 +42,7 @@ class ContactList(FormView): |
|
|
|
return super(ContactList, self).get(request, *args, **kwargs) |
|
|
|
return super(ContactList, self).get(request, *args, **kwargs) |
|
|
|
|
|
|
|
|
|
|
|
def form_valid(self, form): |
|
|
|
def form_valid(self, form): |
|
|
|
""" |
|
|
|
qs, _ = form.filter() |
|
|
|
|
|
|
|
|
|
|
|
filtering queryset and return paginated results |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
|
|
|
|
|
|
qs = form.filter() |
|
|
|
|
|
|
|
result = paginate_results(qs, page=self.request.GET.get('page')) |
|
|
|
result = paginate_results(qs, page=self.request.GET.get('page')) |
|
|
|
context = self.get_context_data(form=form) |
|
|
|
context = self.get_context_data(form=form) |
|
|
|
context.update({'object_list': result}) |
|
|
|
context.update({'object_list': result}) |
|
|
|
@ -60,10 +56,10 @@ class ContactList(FormView): |
|
|
|
return context |
|
|
|
return context |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DeleteContact(DeleteView): |
|
|
|
|
|
|
|
model = ContactSettings |
|
|
|
|
|
|
|
success_url = reverse_lazy('newsletters_contact_list') |
|
|
|
|
|
|
|
template_name = 'admin/newsletters/confirm_delete.html' |
|
|
|
|
|
|
|
|
|
|
|
class UpdateContact(UpdateView): |
|
|
|
class UpdateContact(UpdateView): |
|
|
|
model = ContactSettings |
|
|
|
model = ContactSettings |
|
|
|
@ -71,6 +67,14 @@ class UpdateContact(UpdateView): |
|
|
|
template_name = 'admin/newsletters/contact.html' |
|
|
|
template_name = 'admin/newsletters/contact.html' |
|
|
|
success_url = '/admin/newsletters/contact/all/' |
|
|
|
success_url = '/admin/newsletters/contact/all/' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def form_valid(self, form): |
|
|
|
|
|
|
|
self.object = form.save() |
|
|
|
|
|
|
|
self.object.theme = form.cleaned_data['theme'] |
|
|
|
|
|
|
|
self.object.country = form.cleaned_data['country'] |
|
|
|
|
|
|
|
self.object.area = form.cleaned_data['area'] |
|
|
|
|
|
|
|
self.object.save() |
|
|
|
|
|
|
|
return HttpResponseRedirect(self.get_success_url()) |
|
|
|
|
|
|
|
|
|
|
|
def get_initial(self): |
|
|
|
def get_initial(self): |
|
|
|
obj = self.object.contact |
|
|
|
obj = self.object.contact |
|
|
|
data = self.initial.copy() |
|
|
|
data = self.initial.copy() |
|
|
|
@ -175,4 +179,20 @@ class NewsletterUpdate(UpdateView): |
|
|
|
class NewsletterListView(ListView): |
|
|
|
class NewsletterListView(ListView): |
|
|
|
paginate_by = settings.ADMIN_PAGINATION |
|
|
|
paginate_by = settings.ADMIN_PAGINATION |
|
|
|
model = Newsletter |
|
|
|
model = Newsletter |
|
|
|
template_name = 'admin/newsletters/newsletter_list.html' |
|
|
|
template_name = 'admin/newsletters/newsletter_list.html' success_url = '/admin/newsletters/newsletters/all/' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from ..utils.excel import ExcelResponse |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ExportContacts(FormView): |
|
|
|
|
|
|
|
form_class = ContactFilterForm |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get(self, request=None, *args, **kwargs): |
|
|
|
|
|
|
|
form = self.form_class(request.GET) |
|
|
|
|
|
|
|
if form.is_valid(): |
|
|
|
|
|
|
|
qs, title = form.filter() |
|
|
|
|
|
|
|
if qs.count(): |
|
|
|
|
|
|
|
columns = ('first_name', 'email') |
|
|
|
|
|
|
|
return ExcelResponse(qs, title, columns,'contacts') |
|
|
|
|
|
|
|
return HttpResponseRedirect(self.request.META['HTTP_REFERER']) |