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