def process(self, method, subject=None, create_draft=False, schedule=None, **data): settings = IFeedSettings(self.context) api_key = settings.mailchimp_api_key view = getMultiAdapter((self.context.aq_parent, self.request), name="chimpfeed-campaign") params = self.makeParams(**data) rendered = view.template(**params).encode('utf-8') next_url = self.request.get('HTTP_REFERER') or self.action segments = view.getSegments(**params).items() if segments: segment_opts = { 'match': 'all', 'conditions': [{ 'field': 'interests-%s' % groupingid, 'op': 'one', 'value': groupids } for groupingid, groupids in segments[:10]] } if len(segments) > 10: count = len(segments) - 10 IStatusMessage(self.request).addStatusMessage( _(u"%d segments were ignored " u"(Mailchimp limits this to 10)." % count), "warning") else: segment_opts = {} return self.createCampaign(api_key, method, subject, create_draft, schedule, rendered, next_url, segment_opts)
def process(self, method, subject=None, create_draft=False, schedule=None, interests=None, **data): settings = IFeedSettings(self.context) api_key = settings.mailchimp_api_key view = getMultiAdapter((self.context.aq_parent, self.request), name="chimpfeed-newsletter-campaign") rendered = view.template().encode('utf-8') next_url = self.request.get('HTTP_REFERER') or self.action segment_conditions = self.getSegmentConditions(interests) return self.createCampaign( api_key, method, subject, create_draft, schedule, rendered, next_url, segment_conditions and { 'match': 'any', 'conditions': segment_conditions } or None)
def process(self, method, subject=None, create_draft=False, schedule=None, interests=None, **data): settings = IFeedSettings(self.context) api_key = settings.mailchimp_api_key view = getMultiAdapter( (self.context.aq_parent, self.request), name="chimpfeed-newsletter-campaign" ) rendered = view.template().encode('utf-8') next_url = self.request.get('HTTP_REFERER') or self.action segment_conditions = self.getSegmentConditions(interests) return self.createCampaign( api_key, method, subject, create_draft, schedule, rendered, next_url, segment_conditions and { 'match': 'any', 'conditions': segment_conditions } or None )
def process(self, method, subject=None, create_draft=False, schedule=None, **data): settings = IFeedSettings(self.context) api_key = settings.mailchimp_api_key view = getMultiAdapter( (self.context.aq_parent, self.request), name="chimpfeed-campaign" ) params = self.makeParams(**data) rendered = view.template(**params).encode('utf-8') next_url = self.request.get('HTTP_REFERER') or self.action segments = view.getSegments(**params).items() if segments: segment_opts = { 'match': 'all', 'conditions': [{'field': 'interests-%s' % groupingid, 'op':'one', 'value': groupids} for groupingid, groupids in segments[:10] ]} if len(segments) > 10: count = len(segments) - 10 IStatusMessage(self.request).addStatusMessage( _(u"%d segments were ignored " u"(Mailchimp limits this to 10)." % count), "warning" ) else: segment_opts = {} return self.createCampaign(api_key, method, subject, create_draft, schedule, rendered, next_url, segment_opts)