def __init__(self, context, request): super(MobappBaseView, self).__init__(context, request) self.cirequest = utils.CaseInsensitiveDict() for key, value in request.form.iteritems(): self.cirequest[key] = value #although this should ALWAYS be called in subsite context... self.subsite = context.getSubsite() self.SiteID = self.cirequest.get('SiteID', 0) #Ignored. self.ZoneID = self.cirequest.get("ZoneID", "") self.ZoneIDs = self.ZoneID.split("|") if self.ZoneIDs == [""]: self.ZoneIDs = [] self.Zone = self.cirequest.get("Zone", "") self.Zones = self.Zone.split("|") if self.Zones == [""]: self.Zones = [] self.DayCount = int(self.cirequest.get("DayCount", self.DefaultDays)) self.Count = int(self.cirequest.get("Count", 30)) if self.Count > self.MaxArticles: self.Count = self.MaxArticles self.ArticleID = self.cirequest.get("ArticleId", None) self.AuthorID = self.cirequest.get("AuthorId", None) self.Title = utils.toBool(self.cirequest.get("Title", True)) self.TitleAsCDATA = utils.toBool( self.cirequest.get("TitleAsCDATA", False)) self.Intro = utils.toBool(self.cirequest.get("Introduction", True)) self.IntroAsCDATA = utils.toBool( self.cirequest.get('IntroductionAsCDATA', False)) self.Content = utils.toBool(self.cirequest.get("Content", True)) self.ContentAsCDATA = utils.toBool( self.cirequest.get("ContentAsCDATA", False)) self.Image = utils.toBool(self.cirequest.get("Image", True)) self.ImageTitle = utils.toBool(self.cirequest.get("ImageTitle", True)) self.Authors = utils.toBool(self.cirequest.get("Authors", True)) self.AuthorsFullName = utils.toBool( self.cirequest.get("AuthorsFullName", False)) self.html = utils.toBool(self.cirequest.get("html", False)) if self.html: self.ContentAsCDATA = True self.TitleAsCDATA = True self.catalog = getToolByName(self.context, 'portal_catalog') if self.Zones: #we got some Section names we have to look up ID's for for sectionName in self.Zones: ### IS there a way to get an exact match?????? brains = self.catalog.searchResults(portal_type="Section", Title=sectionName) uid = brains[0].UID #first element by default for brain in brains: if brain.Title.upper() == sectionName.upper(): uid = brain.UID break self.ZoneIDs.append(uid) self.Article = Types.ArticleFactory( lookupObj_func=self.subsite.reference_catalog.lookupObject, request=self.request) #set the timezone tzOffset = getattr(self.context, 'getTimezoneOffset', lambda: 0)() #we assume US/Eastern when we don't have a timezone offset set. #XXX we shouldn't set numeric offsets, we should set tzinfo objects to support DST if tzOffset == 0 or tzOffset is None: self.subsiteTz = pytz.timezone('US/Eastern') else: #convert to minutes offset = int(tzOffset * 60) self.subsiteTz = pytz.FixedOffset(offset)