|
|
|
|
@ -101,10 +101,34 @@ class UpdateContact(UpdateView): |
|
|
|
|
|
|
|
|
|
data.update({'first_name': obj.first_name, 'subscriber': obj.subscriber, |
|
|
|
|
'valid': obj.valid, 'tester': obj.tester, 'city':city}) |
|
|
|
|
|
|
|
|
|
return data |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 = ('email', 'first_name') |
|
|
|
|
return ExcelResponse(qs, title, columns,'contacts') |
|
|
|
|
return HttpResponseRedirect(self.request.META['HTTP_REFERER']) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ImportContacts(FormView): |
|
|
|
|
form_class = ContactImportForm |
|
|
|
|
success_url = reverse_lazy("newsletters_contact_list") |
|
|
|
|
template_name = 'admin/import templates/import_contacts.html' |
|
|
|
|
|
|
|
|
|
def form_valid(self, form): |
|
|
|
|
form.save() |
|
|
|
|
return HttpResponseRedirect(self.get_success_url()) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MailingListView(ListView): |
|
|
|
|
paginate_by = settings.ADMIN_PAGINATION |
|
|
|
|
model = MailingList |
|
|
|
|
@ -239,24 +263,6 @@ def send_test_newsletter(request, pk): |
|
|
|
|
return HttpResponseRedirect(redirect) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class NewsletterHistory(ListView): |
|
|
|
|
model = ContactMailingStatus |
|
|
|
|
template_name = 'admin/newsletters/newsletter_history.html' |
|
|
|
|
paginate_by = 50 |
|
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
|
self.newsletter = get_object_or_404(Newsletter, pk=self.kwargs['pk']) |
|
|
|
|
qs = self.newsletter.contactmailingstatus_set.select_related('contact', 'link').all() |
|
|
|
|
if self.request.GET.get('filter'): |
|
|
|
|
qs = qs.filter(status=self.request.GET['filter']) |
|
|
|
|
return qs |
|
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs): |
|
|
|
|
context = super(NewsletterHistory, self).get_context_data(**kwargs) |
|
|
|
|
context['newsletter'] = self.newsletter |
|
|
|
|
context['choices'] = ContactMailingStatus.STATUS_CHOICES |
|
|
|
|
return context |
|
|
|
|
|
|
|
|
|
class NewsletterStatistics(DetailView): |
|
|
|
|
model = Newsletter |
|
|
|
|
template_name = 'admin/newsletters/newsletter_stat.html' |
|
|
|
|
@ -283,30 +289,6 @@ class NewsletterStatistics(DetailView): |
|
|
|
|
return context |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 = ('email', 'first_name') |
|
|
|
|
return ExcelResponse(qs, title, columns,'contacts') |
|
|
|
|
return HttpResponseRedirect(self.request.META['HTTP_REFERER']) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ImportContacts(FormView): |
|
|
|
|
form_class = ContactImportForm |
|
|
|
|
success_url = reverse_lazy("newsletters_contact_list") |
|
|
|
|
template_name = 'admin/import templates/import_contacts.html' |
|
|
|
|
|
|
|
|
|
def form_valid(self, form): |
|
|
|
|
form.save() |
|
|
|
|
return HttpResponseRedirect(self.get_success_url()) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class NewsletterCloneView(RedirectView): |
|
|
|
|
url = reverse_lazy("newsletters_newsletters_list") |
|
|
|
|
|
|
|
|
|
@ -316,4 +298,29 @@ class NewsletterCloneView(RedirectView): |
|
|
|
|
return HttpResponseRedirect(self.url) |
|
|
|
|
|
|
|
|
|
def post(self, request, *args, **kwargs): |
|
|
|
|
return self.get(request, *args, **kwargs) |
|
|
|
|
return self.get(request, *args, **kwargs) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class NewsletterHistory(ListView): |
|
|
|
|
model = ContactMailingStatus |
|
|
|
|
template_name = 'admin/newsletters/newsletter_history.html' |
|
|
|
|
paginate_by = 50 |
|
|
|
|
|
|
|
|
|
def get_queryset(self): |
|
|
|
|
self.newsletter = get_object_or_404(Newsletter, pk=self.kwargs['pk']) |
|
|
|
|
qs = self.newsletter.contactmailingstatus_set.select_related('contact', 'link').all() |
|
|
|
|
if self.request.GET.get('filter'): |
|
|
|
|
qs = qs.filter(status=self.request.GET['filter']) |
|
|
|
|
return qs |
|
|
|
|
|
|
|
|
|
def get_context_data(self, **kwargs): |
|
|
|
|
context = super(NewsletterHistory, self).get_context_data(**kwargs) |
|
|
|
|
context['newsletter'] = self.newsletter |
|
|
|
|
context['choices'] = ContactMailingStatus.STATUS_CHOICES |
|
|
|
|
return context |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class NewsletterDelete(DeleteView): |
|
|
|
|
model = Newsletter |
|
|
|
|
template_name = 'admin/newsletters/confirm_delete.html' |
|
|
|
|
success_url = reverse_lazy('newsletters_newsletters_list') |