Projet

Général

Profil

« Précédent | Suivant » 

Révision aa90f191

Ajouté par Serghei Mihai (congés, retour 15/05) il y a environ 7 ans

import subscribers from csv (#14010)

Voir les différences:

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