Exemple #1
0
 def create_mailinglist(self, request, queryset):
     when = str(datetime.now()).split(".")[0]
     new_mailing = MailingList(
         name=u"%s %s" % (_(u"New List at"), when),
         description=u"",
         type=MailingList.PRIVATE,
         behavior=MailingList.STATIC,
     )
     new_mailing.save()
     new_mailing.subscribers = queryset
     self.message_user(request, u"%s %s" % (new_mailing, _(u"New list in")))
    def merge_mailinglist(self, request, queryset):
        if queryset.filter(behavior=MailingList.DYNAMIC).count() > 0:
            messages.warning(request,_('you can not merge dynamic list.'))
            return None
                
        queryset = queryset.filter(type=MailingList.PRIVATE)
        if queryset.count() <= 1:
            messages.warning(request, _('Please choose at least two private lists.'))
            return None

        
        contacts = []
        for ml in queryset:
            for contact in ml.subscribers.all():
                contacts.append(contact)

        when = str(datetime.now()).split('.')[0]
        new_mailing = MailingList(name= u'%s %s' % (_(u'New list at'),when),
                                  description= u'%s %s' % (_(u'Created New list based on merging other at'),when),
                                  type=MailingList.PRIVATE,behavior=MailingList.STATIC)
        new_mailing.save()
        new_mailing.subscribers = set(contacts)

        self.message_user(request, u'%s %s'  % (new_mailing,_(u'Created successfully')) )
Exemple #3
0
    def changelist_view(self, request, extra_context=None):
        extra_context = {}
        """filters"""
        extra_context["entry_point_list"] = self.create_filter(request, ENTRY_POINTS)
        extra_context["rent_status_list"] = self.create_filter(request, RENTAL_PLAN_STATUS)
        extra_context["member_only_list"] = self.create_filter(request, ((1, "Yes"), (0, "No")))
        extra_context["profile_status_list"] = self.create_filter(request, ACCOUNT_STATUSES)
        extra_context["contact_status_list"] = self.create_filter(request, Contact.STATUS_CHOICES)
        extra_context["test_contact_list"] = self.create_filter(request, ((1, "Yes"), (0, "No")))
        extra_context["mailinglist_list"] = self.create_filter_queryset(
            request, MailingList.objects.filter(type=MailingList.PRIVATE, behavior=MailingList.STATIC).order_by("name")
        )

        extra_context["current_entry_point"] = int(request.POST.get("entry_point", -1))
        extra_context["current_rent_status"] = int(request.POST.get("rent_status", -1))
        extra_context["current_member_only"] = int(request.POST.get("member_only", -1))
        extra_context["current_profile_status"] = int(request.POST.get("profile_status", -1))
        extra_context["current_contact_status"] = int(request.POST.get("contact_status", -1))
        extra_context["current_test_contact"] = int(request.POST.get("test_contact", -1))
        extra_context["current_mail"] = int(request.POST.get("mail_list", -1))
        extra_context["q"] = request.POST.get("q", "")

        if (
            request.POST
            and not request.POST.has_key("action")
            and (request.POST.has_key("update") or request.POST.has_key("remove"))
        ):
            form = MailingListForm(request.POST)
            if form.is_valid():
                try:
                    ChangeList = self.get_changelist(request)
                    cl = ChangeList(
                        request,
                        self.model,
                        self.list_display,
                        self.list_display_links,
                        self.list_filter,
                        self.date_hierarchy,
                        self.search_fields,
                        self.list_select_related,
                        self.list_per_page,
                        self.list_editable,
                        self,
                    )
                    mailingList = form.cleaned_data["mailingList"]
                    if mailingList is None:
                        mailingList = MailingList(
                            name=form.cleaned_data["newList"],
                            description=u"",
                            type=MailingList.PRIVATE,
                            behavior=MailingList.STATIC,
                        )
                        mailingList.save()

                    for c in cl.get_query_set():
                        if request.POST.has_key("remove"):
                            mailingList.subscribers.remove(c)
                        else:
                            mailingList.subscribers.add(c)
                    if request.POST.has_key("remove") and form.cleaned_data["mailingList"]:
                        self.message_user(request, u"Removed contacts from %s" % mailingList)
                    else:
                        self.message_user(request, u"Added contacts to %s" % mailingList)

                except:
                    pass
        else:
            form = MailingListForm()

        extra_context["mailing_form"] = form
        return super(ContactAdmin, self).changelist_view(request, extra_context)