Révision aa90f191
Ajouté par Serghei Mihai (congés, retour 15/05) il y a environ 7 ans
corbo/views.py | ||
---|---|---|
6 | 6 |
from django.utils import timezone |
7 | 7 |
from django.core.urlresolvers import reverse |
8 | 8 |
from django.views.generic import CreateView, UpdateView, DeleteView, \ |
9 |
ListView, TemplateView, RedirectView, DetailView |
|
9 |
ListView, TemplateView, RedirectView, DetailView, FormView
|
|
10 | 10 |
from django.contrib.syndication.views import Feed |
11 | 11 |
from django.shortcuts import resolve_url |
12 | 12 |
from django.utils.encoding import force_text |
... | ... | |
14 | 14 |
from django.http import HttpResponseRedirect, HttpResponse, Http404 |
15 | 15 |
from django.contrib.auth import logout as auth_logout |
16 | 16 |
from django.contrib.auth import views as auth_views |
17 |
from django.contrib import messages |
|
17 | 18 |
from django.utils.translation import ugettext_lazy as _ |
19 |
from django.utils.translation import ngettext |
|
18 | 20 |
|
19 | 21 |
import models |
20 |
from .forms import AnnounceForm, CategoryForm |
|
22 |
from .forms import AnnounceForm, CategoryForm, SubscriptionsImportForm
|
|
21 | 23 |
|
22 | 24 |
try: |
23 | 25 |
from mellon.utils import get_idps |
... | ... | |
222 | 224 |
atom = AtomView() |
223 | 225 |
|
224 | 226 |
|
227 |
class SubscriptionsImportView(FormView): |
|
228 |
form_class = SubscriptionsImportForm |
|
229 |
template_name = 'corbo/subscriptions_import_form.html' |
|
230 |
|
|
231 |
def get_context_data(self, **kwargs): |
|
232 |
context = super(SubscriptionsImportView, self).get_context_data(**kwargs) |
|
233 |
context['category'] = models.Category.objects.get(slug=self.kwargs['slug']) |
|
234 |
return context |
|
235 |
|
|
236 |
def get_success_url(self): |
|
237 |
category = models.Category.objects.get(slug=self.kwargs['slug']) |
|
238 |
return reverse('view_category', kwargs={'slug': category.slug}) |
|
239 |
|
|
240 |
def form_valid(self, form): |
|
241 |
new = 0 |
|
242 |
c = models.Category.objects.get(slug=self.kwargs['slug']) |
|
243 |
for email in form.cleaned_data['subscribers']: |
|
244 |
obj, created = models.Subscription.objects.get_or_create(category=c, identifier='mailto:%s' % email) |
|
245 |
if created: |
|
246 |
new += 1 |
|
247 |
messages.info(self.request, ngettext('%(new)d subscriber added', '%(new)d subscribers added', new) % {'new': new}) |
|
248 |
return super(SubscriptionsImportView, self).form_valid(form) |
|
249 |
|
|
250 |
subscriptions_import = SubscriptionsImportView.as_view() |
|
251 |
|
|
252 |
|
|
225 | 253 |
def menu_json(request): |
226 | 254 |
label = _('Announces') |
227 | 255 |
json_str = json.dumps([{'label': force_text(label), |
Formats disponibles : Unified diff
import subscribers from csv (#14010)