コード例 #1
0
    def save_model(self, request, newsletter, form, change):
        newsletter.save()
        workgroups = []
        if not newsletter.pk and not request.user.is_superuser \
               and USE_WORKGROUPS:
            workgroups = request_workgroups(request)

#        if newsletter.content.startswith('http://'):
#            if CAN_USE_PREMAILER:
#                try:
#                    premailer = Premailer(newsletter.content.strip())
#                    newsletter.content = premailer.transform()
#                except PremailerError:
#                    self.message_user(request, _('Unable to download HTML, due to errors within.'))
#            else:
#                self.message_user(request, _('Please install lxml for parsing an URL.'))
        clusters = Cluster.objects.filter(publish=True).exclude(id='services')
        quote = Quote.objects.order_by('?')[0]
        smlinks = Socialmedialink.objects.all()
        context = {'newsletter': newsletter,
                    'domain': Site.objects.get_current().domain,
                    'CLUSTERS':clusters,
                    'QUOTE':quote,
                    'SOCIALMEDIALINKS':smlinks,
                    'location':Location.objects.get(town='amsterdam'),
                    'YEAR': datetime.now().year,
                    'MEDIA_URL': settings.MEDIA_URL,}
        newsletter.content = get_content(newsletter, context)
        newsletter.save()

        if not request.user.has_perm('newsletter.can_change_status'):
            newsletter.status = form.initial.get('status', Newsletter.DRAFT)

        for workgroup in workgroups:
            workgroup.newsletters.add(newsletter)
コード例 #2
0
    def importation(self, request):
        """Import contacts from a VCard"""
        opts = self.model._meta

        if request.POST:
            source = request.FILES.get('source') or \
                     StringIO.StringIO(request.POST.get('source', ''))
            if not request.user.is_superuser and USE_WORKGROUPS:
                workgroups = request_workgroups(request)
            else:
                workgroups = []
            inserted = import_dispatcher(source, request.POST['type'],
                                         workgroups)
            if inserted:
                contacts_imported.send(sender=self, source=source,
                                       type=request.POST['type'])

            self.message_user(request, _('%s contacts succesfully imported.') % inserted)

        context = {'title': _('Contact importation'),
                   'opts': opts,
                   'root_path': self.admin_site.root_path,
                   'app_label': opts.app_label}

        return render_to_response('newsletter/contact_import.html',
                                  context, RequestContext(request))
コード例 #3
0
    def create_mailinglist(self, request, queryset):
        """Create a mailing list from selected contact"""
        when = str(datetime.now()).split('.')[0]
        new_mailing = MailingList(
            name=_('New mailinglist at %s') % when,
            description=_('New mailing list created in admin at %s') % when)
        new_mailing.save()

        if 'lite' in settings.DATABASES['default']['ENGINE']:
            self.message_user(
                request,
                _('SQLite3 or a SpatialLite database type detected, ' \
                  'please note you will be limited to 999 contacts ' \
                  'per mailing list.')
            )
        try:
            new_mailing.subscribers = queryset.all()
        except DatabaseError:
            new_mailing.subscribers = queryset.none()

        if not request.user.is_superuser and USE_WORKGROUPS:
            for workgroup in request_workgroups(request):
                workgroup.mailinglists.add(new_mailing)

        self.message_user(request, _('%s succesfully created.') % new_mailing)
        return HttpResponseRedirect(reverse(
            'admin:newsletter_mailinglist_change',
            args=[new_mailing.pk]
        ))
コード例 #4
0
 def save_model(self, request, contact, form, change):
     workgroups = []
     if not contact.pk and not request.user.is_superuser:
         workgroups = request_workgroups(request)
     contact.save()
     for workgroup in workgroups:
         workgroup.contacts.add(contact)
コード例 #5
0
 def save_model(self, request, mailinglist, form, change):
     workgroups = []
     if not mailinglist.pk and not request.user.is_superuser:
         workgroups = request_workgroups(request)
     mailinglist.save()
     for workgroup in workgroups:
         workgroup.mailinglists.add(mailinglist)
コード例 #6
0
    def merge_mailinglist(self, request, queryset):
        """Merge multiple mailing list"""
        if queryset.count() == 1:
            self.message_user(request, _('Please select a least 2 mailing list.'))
            return None

        subscribers = {}
        unsubscribers = {}
        for ml in queryset:
            for contact in ml.subscribers.all():
                subscribers[contact] = ''
            for contact in ml.unsubscribers.all():
                unsubscribers[contact] = ''

        when = str(datetime.now()).split('.')[0]
        new_mailing = MailingList(name=_('Merging list at %s') % when,
                                  description=_('Mailing list created by merging at %s') % when)
        new_mailing.save()
        new_mailing.subscribers = subscribers.keys()
        new_mailing.unsubscribers = unsubscribers.keys()

        if not request.user.is_superuser and USE_WORKGROUPS:
            for workgroup in request_workgroups(request):
                workgroup.mailinglists.add(new_mailing)

        self.message_user(request, _('%s succesfully created by merging.') % new_mailing)
        return HttpResponseRedirect(reverse('admin:newsletter_mailinglist_change',
                                            args=[new_mailing.pk]))
コード例 #7
0
    def save_model(self, request, newsletter, form, change):
        workgroups = []
        if not newsletter.pk and not request.user.is_superuser \
               and USE_WORKGROUPS:
            workgroups = request_workgroups(request)

        if newsletter.content.startswith('http://'):
            if CAN_USE_PREMAILER:
                try:
                    print 123
                    premailer = Premailer(newsletter.content.strip())
                    print 1234
                    newsletter.content = premailer.transform()
                except PremailerError:
                    self.message_user(
                        request,
                        _('Unable to download HTML, due to errors within.'))
            else:
                self.message_user(request,
                                  _('Please install lxml for parsing an URL.'))
        if not request.user.has_perm('newsletter.can_change_status'):
            newsletter.status = form.initial.get('status', Newsletter.DRAFT)

        newsletter.save()

        for workgroup in workgroups:
            workgroup.newsletters.add(newsletter)
コード例 #8
0
    def merge_mailinglist(self, request, queryset):
        """Merge multiple mailing list"""
        if queryset.count() == 1:
            self.message_user(request,
                              _('Please select a least 2 mailing list.'))
            return None

        subscribers = {}
        unsubscribers = {}
        for ml in queryset:
            for contact in ml.subscribers.all():
                subscribers[contact] = ''
            for contact in ml.unsubscribers.all():
                unsubscribers[contact] = ''

        when = str(datetime.now()).split('.')[0]
        new_mailing = MailingList(
            name=_('Merging list at %s') % when,
            description=_('Mailing list created by merging at %s') % when)
        new_mailing.save()
        new_mailing.subscribers = subscribers.keys()
        new_mailing.unsubscribers = unsubscribers.keys()

        if not request.user.is_superuser and USE_WORKGROUPS:
            for workgroup in request_workgroups(request):
                workgroup.mailinglists.add(new_mailing)

        self.message_user(
            request,
            _('%s succesfully created by merging.') % new_mailing)
        return HttpResponseRedirect(
            reverse('admin:newsletter_mailinglist_change',
                    args=[new_mailing.pk]))
コード例 #9
0
    def create_mailinglist(self, request, queryset):
        """Create a mailing list from selected contact"""
        when = str(datetime.now()).split('.')[0]
        new_mailing = MailingList(
            name=_('New mailinglist at %s') % when,
            description=_('New mailing list created in admin at %s') % when)
        new_mailing.save()
        db_engine = settings.DATABASES['default']['ENGINE']
        if settings.DATABASES['default']['ENGINE'].find('sqlite3') > -1 \
            or settings.DATABASES['default']['ENGINE'].index('django.contrib.gis.db.backends.spatialite') > -1:
            messages.warning(
                request,
                'SQLite3 or a SpatialLite database type detected, please note you will be limited to 999 contacts per mailing list.'
            )
        try:
            new_mailing.subscribers = queryset.all()
        except DatabaseError:
            new_mailing.subscribers = queryset.none()

        if not request.user.is_superuser and USE_WORKGROUPS:
            for workgroup in request_workgroups(request):
                workgroup.mailinglists.add(new_mailing)

        self.message_user(request, _('%s succesfully created.') % new_mailing)
        return HttpResponseRedirect(
            reverse('admin:newsletter_mailinglist_change',
                    args=[new_mailing.pk]))
コード例 #10
0
 def save_model(self, request, mailinglist, form, change):
     workgroups = []
     if not mailinglist.pk and not request.user.is_superuser:
         workgroups = request_workgroups(request)
     mailinglist.save()
     for workgroup in workgroups:
         workgroup.mailinglists.add(mailinglist)
コード例 #11
0
 def save_model(self, request, contact, form, change):
     workgroups = []
     if not contact.pk and not request.user.is_superuser:
         workgroups = request_workgroups(request)
     contact.save()
     for workgroup in workgroups:
         workgroup.contacts.add(contact)
コード例 #12
0
    def importation(self, request):
        """Import contacts from a VCard"""
        opts = self.model._meta

        if request.FILES:
            source = request.FILES.get('source')
            if not request.user.is_superuser and USE_WORKGROUPS:
                workgroups = request_workgroups(request)
            else:
                workgroups = []
            inserted = import_dispatcher(source, request.POST['type'],
                                         workgroups)
            if inserted:
                contacts_imported.send(sender=self,
                                       source=source,
                                       type=request.POST['type'])

            self.message_user(
                request,
                _('%s contacts succesfully imported.') % inserted)

        context = {
            'title': _('Contact importation'),
            'opts': opts,
            'root_path': self.admin_site.root_path,
            'app_label': opts.app_label
        }

        return render_to_response('newsletter/contact_import.html', context,
                                  RequestContext(request))
コード例 #13
0
    def save_model(self, request, contact, form, change):
        workgroups = []
        if not contact.pk and not request.user.is_superuser:
            workgroups = request_workgroups(request)
        contact.save()
        for workgroup in workgroups:
            workgroup.contacts.add(contact)

        contact.mailinglist_subscriber.clear()
        for l in form.cleaned_data["lists"]:
            contact.mailinglist_subscriber.add(l)
コード例 #14
0
    def create_mailinglist(self, request, queryset):
        """Create a mailing list from selected contact"""
        when = str(datetime.now()).split('.')[0]
        new_mailing = MailingList(name=_('New mailinglist at %s') % when,
                                  description=_('New mailing list created in admin at %s') % when)
        new_mailing.save()
        new_mailing.subscribers = queryset.all()

        if not request.user.is_superuser:
            for workgroup in request_workgroups(request):
                workgroup.mailinglists.add(new_mailing)

        self.message_user(request, _('%s succesfully created.') % new_mailing)
        return HttpResponseRedirect(reverse('admin:newsletter_mailinglist_change',
                                            args=[new_mailing.pk]))
コード例 #15
0
ファイル: newsletter.py プロジェクト: maisengasse/newsletter
    def save_model(self, request, newsletter, form, change):
        workgroups = []
        if not newsletter.pk and not request.user.is_superuser:
            workgroups = request_workgroups(request)

        if newsletter.content.startswith('http://'):
            newsletter.content = get_webpage_content(newsletter.content)

        if not request.user.has_perm('newsletter.can_change_status'):
            newsletter.status = form.initial.get('status', Newsletter.DRAFT)

        newsletter.save()

        for workgroup in workgroups:
            workgroup.newsletters.add(newsletter)
コード例 #16
0
    def create_mailinglist(self, request, queryset):
        """Create a mailing list from selected contact"""
        when = str(datetime.now()).split('.')[0]
        new_mailing = MailingList(name=_('New mailinglist at %s') % when,
                                  description=_('New mailing list created in admin at %s') % when)
        new_mailing.save()
        new_mailing.subscribers = queryset.all()

        if not request.user.is_superuser and USE_WORKGROUPS:
            for workgroup in request_workgroups(request):
                workgroup.mailinglists.add(new_mailing)

        self.message_user(request, _('%s succesfully created.') % new_mailing)
        return HttpResponseRedirect(reverse('admin:newsletter_mailinglist_change',
                                            args=[new_mailing.pk]))
コード例 #17
0
    def importation(self, request):
        """Import contacts from a VCard"""
        opts = self.model._meta

        if request.FILES:
            source = request.FILES.get('source')
            inserted = vcard_contacts_import(source, request_workgroups(request))
            self.message_user(request, _('%s contacts succesfully imported.') % inserted)

        context = {'title': _('VCard import'),
                   'opts': opts,
                   'root_path': self.admin_site.root_path,
                   'app_label': opts.app_label}

        return render_to_response('newsletter/contact_import.html',
                                  context, RequestContext(request))
コード例 #18
0
    def importation(self, request):
        """Import contacts from a VCard"""
        opts = self.model._meta

        if request.FILES:
            source = request.FILES.get("source")
            inserted = vcard_contacts_import(source, request_workgroups(request))
            self.message_user(request, _("%s contacts succesfully imported.") % inserted)

        context = {
            "title": _("VCard import"),
            "opts": opts,
            "root_path": self.admin_site.root_path,
            "app_label": opts.app_label,
        }

        return render_to_response("newsletter/contact_import.html", context, RequestContext(request))
コード例 #19
0
    def save_model(self, request, newsletter, form, change):
        workgroups = []
        if not newsletter.pk and not request.user.is_superuser:
            workgroups = request_workgroups(request)

        if newsletter.content.startswith('http://'):
            try:
                newsletter.content = get_webpage_content(newsletter.content)
            except HTMLParseError:
                self.message_user(request, _('Unable to download HTML, due to errors within.'))

        if not request.user.has_perm('newsletter.can_change_status'):
            newsletter.status = form.initial.get('status', Newsletter.DRAFT)

        newsletter.save()

        for workgroup in workgroups:
            workgroup.newsletters.add(newsletter)
コード例 #20
0
    def importation(self, request):
        """Import contacts from a VCard"""
        opts = self.model._meta

        if request.POST:
            source = request.FILES.get("source") or StringIO.StringIO(request.POST.get("source", ""))
            if not request.user.is_superuser and USE_WORKGROUPS:
                workgroups = request_workgroups(request)
            else:
                workgroups = []
            inserted = import_dispatcher(source, request.POST["type"], workgroups)
            if inserted:
                contacts_imported.send(sender=self, source=source, type=request.POST["type"])

            self.message_user(request, _("%s contacts succesfully imported.") % inserted)

        context = {"title": _("Contact importation"), "opts": opts, "app_label": opts.app_label}

        return render_to_response("newsletter/contact_import.html", context, RequestContext(request))
コード例 #21
0
    def save_model(self, request, newsletter, form, change):
        workgroups = []
        if not newsletter.pk and not request.user.is_superuser \
               and USE_WORKGROUPS:
            workgroups = request_workgroups(request)

        if not request.user.has_perm('newsletter.can_change_status'):
            newsletter.status = form.initial.get('status', Newsletter.DRAFT)

        try:
            newsletter.save()
        except:
            self.message_user(
                request,
                _('Unable to download HTML, due to errors within.')
            )

        for workgroup in workgroups:
            workgroup.newsletters.add(newsletter)
コード例 #22
0
    def importation(self, request):
        """Import contacts from a VCard"""
        opts = self.model._meta

        if request.FILES:
            source = request.FILES.get('source')
            inserted = import_dispatcher(source, request.POST['type'],
                                         request_workgroups(request))
            if inserted:
                contacts_imported.send(sender=self, source=source,
                                       type=request.POST['type'])

            self.message_user(request, _('%s contacts succesfully imported.') % inserted)

        context = {'title': _('Contact importation'),
                   'opts': opts,
                   'app_label': opts.app_label}

        return render_to_response('newsletter/contact_import.html',
                                  context, RequestContext(request))
コード例 #23
0
    def save_model(self, request, newsletter, form, change):
        workgroups = []
        if not newsletter.pk and not request.user.is_superuser:
            workgroups = request_workgroups(request)

        if newsletter.content.startswith('http://'):
            try:
                newsletter.content = get_webpage_content(newsletter.content)
            except HTMLParseError:
                self.message_user(
                    request,
                    _('Unable to download HTML, due to errors within.'))

        if not request.user.has_perm('newsletter.can_change_status'):
            newsletter.status = form.initial.get('status', Newsletter.DRAFT)

        newsletter.save()

        for workgroup in workgroups:
            workgroup.newsletters.add(newsletter)
コード例 #24
0
    def importation(self, request):
        """Import contacts from a VCard"""
        opts = self.model._meta

        if request.FILES:
            source = request.FILES.get('source')
            inserted = vcard_contacts_import(source,
                                             request_workgroups(request))
            self.message_user(
                request,
                _('%s contacts succesfully imported.') % inserted)

        context = {
            'title': _('VCard import'),
            'opts': opts,
            'root_path': self.admin_site.root_path,
            'app_label': opts.app_label
        }

        return render_to_response(request, 'newsletter/contact_import.html',
                                  context)
コード例 #25
0
    def save_model(self, request, newsletter, form, change):
        workgroups = []
        if not newsletter.pk and not request.user.is_superuser \
               and USE_WORKGROUPS:
            workgroups = request_workgroups(request)

        if newsletter.content.startswith('http://'):
            if CAN_USE_PREMAILER:
                try:
                    premailer = Premailer(newsletter.content.strip())
                    newsletter.content = premailer.transform()
                except PremailerError:
                    self.message_user(request, _('Unable to download HTML, due to errors within.'))
            else:
                self.message_user(request, _('Please install lxml for parsing an URL.'))
        if not request.user.has_perm('newsletter.can_change_status'):
            newsletter.status = form.initial.get('status', Newsletter.DRAFT)

        newsletter.save()

        for workgroup in workgroups:
            workgroup.newsletters.add(newsletter)