remotes/origin/1203
Ivan Kovalkovskyi 10 years ago
parent 35ced9f26e
commit 96f3abab07
  1. 3
      emencia/django/newsletter/admin_urls.py
  2. 11
      emencia/django/newsletter/forms.py
  3. 15
      emencia/django/newsletter/views/admin_views.py
  4. 11
      templates/admin/newsletters/confirm_delete.html

@ -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<pk>\d+)/edit/', UpdateContact.as_view(), name='newsletters_contact_update'),
url(r'^contact/(?P<pk>\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'),
)

@ -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

@ -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'])

@ -0,0 +1,11 @@
{% extends 'base.html' %}
{% block sidebar %}{% endblock %}
{% block body %}
<form action="" method="post">{% csrf_token %}
<div class="controls">
<p>Вы точно хотите удалить "{{ object.contact.name }}" ?</p>
<input class="btn btn-large btn-danger delete" type="submit" value="Да" />
<a class="btn btn-large btn-primary" href = {% url 'newsletters_contact_list' %}>Нет</a>
</div>
</form>
{% endblock %}
Loading…
Cancel
Save