From 96f3abab077586a69dd6963b57a2163af74e65e3 Mon Sep 17 00:00:00 2001 From: Ivan Kovalkovskyi Date: Mon, 12 Oct 2015 15:57:20 +0300 Subject: [PATCH] bugs fix --- emencia/django/newsletter/admin_urls.py | 3 ++- emencia/django/newsletter/forms.py | 11 +++++++++-- emencia/django/newsletter/views/admin_views.py | 15 ++++++++++----- templates/admin/newsletters/confirm_delete.html | 11 +++++++++++ 4 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 templates/admin/newsletters/confirm_delete.html diff --git a/emencia/django/newsletter/admin_urls.py b/emencia/django/newsletter/admin_urls.py index 69b9374d..64545a97 100644 --- a/emencia/django/newsletter/admin_urls.py +++ b/emencia/django/newsletter/admin_urls.py @@ -3,7 +3,7 @@ from django.conf.urls import include from django.conf.urls import patterns from django.http import HttpResponse from emencia.django.newsletter.views.admin_views import ContactList, UpdateContact, MailingListView, UpdateMailingList,\ - CreateMailingList, NewsletterCreate, ExportContacts + CreateMailingList, NewsletterCreate, ExportContacts, DeleteContact urlpatterns = patterns('', @@ -16,6 +16,7 @@ urlpatterns = patterns('', url(r'^mailinglist/', CreateMailingList.as_view(), name='newsletters_mailinglist_create'), url(r'^contact/(?P\d+)/edit/', UpdateContact.as_view(), name='newsletters_contact_update'), + url(r'^contact/(?P\d+)/delete/', DeleteContact.as_view(), name='newsletters_contact_delete'), url(r'^contact/all/$', ContactList.as_view(), name='newsletters_contact_list'), url(r'^contact/export/$', ExportContacts.as_view(), name='export_contacts'), ) \ No newline at end of file diff --git a/emencia/django/newsletter/forms.py b/emencia/django/newsletter/forms.py index c858ede5..f4f75b94 100644 --- a/emencia/django/newsletter/forms.py +++ b/emencia/django/newsletter/forms.py @@ -5,6 +5,7 @@ from django.utils.translation import ugettext_lazy as _ from emencia.django.newsletter.models import Contact, ContactSettings from emencia.django.newsletter.models import MailingList +from functions.form_check import translit_with_separator as tr from theme.models import Theme from country.models import Country, Area @@ -95,18 +96,24 @@ class ContactFilterForm(forms.Form): valid = forms.BooleanField(label="Валидный Email", required=False) def filter(self): - qs = Contact.objects.all() + title = 'contact list ' + qs = Contact.objects.all() if self.cleaned_data.get('email'): qs = qs.filter(email__icontains=self.cleaned_data['email']) if self.cleaned_data.get('theme'): qs = qs.filter(contactsettings__theme__id__in=self.cleaned_data['theme']) + title += " themes: %s" % ','.join([obj.url for obj in Theme.objects.language().filter(id__in=self.cleaned_data['theme'])]) if self.cleaned_data.get('country'): qs = qs.filter(contactsettings__country__id__in=self.cleaned_data['country']) + title += " countries: %s" % ','.join([obj.url for obj in Country.objects.language().filter(id__in=self.cleaned_data['country'])]) if self.cleaned_data.get('area'): qs = qs.filter(contactsettings__area__id__in=self.cleaned_data['area']) + title += " geo area: %s" % ','.join([obj.url for obj in Area.objects.language('en').filter(id__in=self.cleaned_data['area'])]) if self.cleaned_data.get('active'): + title = ' active ' + title qs = qs.filter(activated=True) if self.cleaned_data.get('valid'): + title = 'valid e-mail ' + title qs = qs.filter(valid=True) - return qs + return qs, title diff --git a/emencia/django/newsletter/views/admin_views.py b/emencia/django/newsletter/views/admin_views.py index 80a58212..6cb52665 100644 --- a/emencia/django/newsletter/views/admin_views.py +++ b/emencia/django/newsletter/views/admin_views.py @@ -1,9 +1,9 @@ # -*- 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.conf import settings from django.http import HttpResponseRedirect, HttpResponse from django.shortcuts import get_object_or_404 -from django.core.urlresolvers import reverse +from django.core.urlresolvers import reverse_lazy from emencia.django.newsletter.models import Contact, ContactSettings, MailingList, Newsletter from emencia.django.newsletter.admin_forms import ContactSettingsForm, MailingListForm, NewsletterForm from ..forms import ContactFilterForm @@ -37,7 +37,7 @@ class ContactList(FormView): return super(ContactList, self).get(request, *args, **kwargs) def form_valid(self, form): - qs = form.filter() + 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}) @@ -51,6 +51,11 @@ class ContactList(FormView): return context +class DeleteContact(DeleteView): + model = ContactSettings + success_url = reverse_lazy('newsletters_contact_list') + template_name = 'admin/newsletters/confirm_delete.html' + class UpdateContact(UpdateView): model = ContactSettings form_class = ContactSettingsForm @@ -109,8 +114,8 @@ class ExportContacts(FormView): def get(self, request=None, *args, **kwargs): form = self.form_class(request.GET) if form.is_valid(): - qs = form.filter() + qs, title = form.filter() if qs.count(): columns = ('first_name', 'email') - return ExcelResponse(qs, 'contact_import', columns,'contacts') + return ExcelResponse(qs, title, columns,'contacts') return HttpResponseRedirect(self.request.META['HTTP_REFERER']) diff --git a/templates/admin/newsletters/confirm_delete.html b/templates/admin/newsletters/confirm_delete.html new file mode 100644 index 00000000..b2884763 --- /dev/null +++ b/templates/admin/newsletters/confirm_delete.html @@ -0,0 +1,11 @@ +{% extends 'base.html' %} +{% block sidebar %}{% endblock %} +{% block body %} +
{% csrf_token %} +
+

Вы точно хотите удалить "{{ object.contact.name }}" ?

+ + Нет +
+
+{% endblock %} \ No newline at end of file