def _process(self): if not User.has_rows(): self._redirect(url_for('bootstrap.index')) else: wfReg = webFactoryRegistry.WebFactoryRegistry() p = welcome.WPWelcome(self, self._target, wfReg) return p.display()
def _checkParams(self, params, mustExist=1): RHCategoryDisplay._checkParams(self, params, mustExist) #if self._target.getSubCategoryList(): # raise MaKaCError( _("Cannot add conferences to a category which already contains some sub-categories")) self._wf = None self._wfReg = webFactoryRegistry.WebFactoryRegistry() et = params.get("event_type", "").strip() if et != "" and et != "default": self._wf = self._wfReg.getFactoryById(et)
def _getLoginURL(self, return_url=None): url = return_url or self.getRequestURL() if url == "": url = urlHandlers.UHConferenceDisplay.getURL(self._conf) wr = webFactoryRegistry.WebFactoryRegistry() self._wf = wr.getFactory(self._conf) if self._wf is not None or self._conf is None: return urlHandlers.UHSignIn.getURL(url) else: return urlHandlers.UHConfSignIn.getURL(self._target, url)
def _checkParams(self, params, mustExist=1): RHCategoryDisplay._checkParams(self, params, mustExist) #if self._target.getSubCategoryList(): # raise MaKaCError( _("Cannot add conferences to a category which already contains some sub-categories")) self._wf = None self._wfReg = webFactoryRegistry.WebFactoryRegistry() self._event_type = params.get("event_type", "").strip() if self._event_type == 'lecture': self._event_type = 'simple_event' if self._event_type and self._event_type != 'default': self._wf = self._wfReg.getFactoryById(self._event_type)
def _process(self): if self._statusValue != "OK": return self._createResponse(self._statusValue, self._message) RHCreateEventBase._process(self) if self._statusValue != "OK": return self._createResponse(self._statusValue, self._message) wr = webFactoryRegistry.WebFactoryRegistry() fact = wr.getFactoryById('simple_event') wr.registerFactory(self._event, fact) return self._createResponse("OK", "Lecture %s added" % self._event.getId())
def _handleSet(self): curType = self._target.getType() newType = self._value if newType != "" and newType != curType: import MaKaC.webinterface.webFactoryRegistry as webFactoryRegistry wr = webFactoryRegistry.WebFactoryRegistry() factory = wr.getFactoryById(newType) wr.registerFactory(self._target, factory) # revert to the default theme for the event type layout_settings.delete(self._conf, 'timetable_theme') signals.event.data_changed.send(self._target, attr=None, old=None, new=None)
def _handleSet(self): curType = self._target.getType() newType = self._value if newType != "" and newType != curType: import MaKaC.webinterface.webFactoryRegistry as webFactoryRegistry wr = webFactoryRegistry.WebFactoryRegistry() factory = wr.getFactoryById(newType) wr.registerFactory(self._target, factory) styleMgr = info.HelperMaKaCInfo.getMaKaCInfoInstance( ).getStyleManager() dispMgr = displayMgr.ConfDisplayMgrRegistery().getDisplayMgr( self._target) dispMgr.setDefaultStyle( styleMgr.getDefaultStylesheetForEventType(newType))
def setType(style, id): if style == 'nicecompact': type = '' elif style == 'standard' or style == 'tools/printable' or style == 'seminars' or style == 'nosession' or style == 'administrative' or style == 'standard2' or style == 'minutes': #chooses the 'type' based on 'style' of AGENDA type = 'meeting' elif style == 'event' or style == 'week' or style == 'lecture': type = 'simple_event' else: #if stylesheet in AGENDA db is blank type = 'meeting' if type != '': #this if statement is in because if type is equal to nicecompact or lecture then currently no factory is used #when a factory type is created to go with these, remove the if statement and unindent the code. #instantiate the registry wr = webFactoryRegistry.WebFactoryRegistry() ch = conference.ConferenceHolder() #fetch the conference which type is to be updated c = ch.getById(id) #get the web factory. Possible values: simple_event, meeting fact = wr.getFactoryById(type) #register the factory for the conference wr.registerFactory(c, fact)
def getWebFactory(self): if self._wf == "": wr = webFactoryRegistry.WebFactoryRegistry() self._wf = wr.getFactory(self._conf) return self._wf
def getWebFactory(self): wr = webFactoryRegistry.WebFactoryRegistry() self._wf = wr.getFactory(self._target.getConference()) return self._wf
def _process(self): wfReg = webFactoryRegistry.WebFactoryRegistry() stats = statistics.CategoryStatistics(self._target).getStatistics() p = category.WPCategoryStatistics(self, self._target, wfReg, stats) return p.display()
def _process(self): wfReg = webFactoryRegistry.WebFactoryRegistry() p = category.WPCategoryDisplay(self, self._target, wfReg) return p.display()
if (emailstr != "") and not validMail(emailstr): raise FormValuesError( "One of the emails specified or one of the separators is invalid" ) c.getSupportInfo().setEmail(emailstr) c.getSupportInfo().setCaption(confData.get("supportCaption", "Support")) displayMgr.ConfDisplayMgrRegistery().getDisplayMgr(c).setDefaultStyle( confData.get("defaultStyle", "")) if c.getVisibility() != confData.get("visibility", 999): c.setVisibility(confData.get("visibility", 999)) curType = c.getType() newType = confData.get("eventType", "") if newType != "" and newType != curType: wr = webFactoryRegistry.WebFactoryRegistry() factory = wr.getFactoryById(newType) wr.registerFactory(c, factory) dispMgr = displayMgr.ConfDisplayMgrRegistery().getDisplayMgr(c) styleMgr = info.HelperMaKaCInfo.getMaKaCInfoInstance( ).getStyleManager() dispMgr.setDefaultStyle( styleMgr.getDefaultStyleForEventType(newType)) @staticmethod def validateShortURL(tag, target): if tag.isdigit(): raise ValueError( _("Short URL tag is a number: '%s'. Please add at least one non-digit." ) % tag) if not re.match(r'^[a-zA-Z0-9/._-]+$', tag) or '//' in tag:
def _process( self ): wfReg = webFactoryRegistry.WebFactoryRegistry() p = welcome.WPWelcome( self, self._target, wfReg ) return p.display()
def getVars(self): vars = wcomponents.WTemplated.getVars(self) defaultDefinePlace = defaultDefineRoom = "" defaultInheritPlace = defaultInheritRoom = "checked" locationName, locationAddress, roomName, defaultExistRoom = "", "", "", "" vars["conference"] = self._conf vars["boardNumber"] = quoteattr(str(self._contrib.getBoardNumber())) vars["contrib"] = self._contrib vars["title"] = quoteattr(self._contrib.getTitle()) vars["description"] = self.htmlText(self._contrib.getDescription()) vars["additionalFields"] = self._contrib.getConference( ).getAbstractMgr().getAbstractFieldsMgr().getFields() vars["fieldDict"] = self._getAdditionalFieldsData() vars["day"] = "" vars["month"] = "" vars["year"] = "" vars["sHour"] = "" vars["sMinute"] = "" sDate = self._contrib.getStartDate() if sDate is not None: vars["day"] = quoteattr(str(sDate.day)) vars["month"] = quoteattr(str(sDate.month)) vars["year"] = quoteattr(str(sDate.year)) vars["sHour"] = quoteattr(str(sDate.hour)) vars["sMinute"] = quoteattr(str(sDate.minute)) if self._contrib.getStartDate(): vars["dateTime"] = format_datetime( self._contrib.getAdjustedStartDate(), 'd/M/yyyy H:mm', keep_tz=True) else: vars["dateTime"] = "" vars["duration"] = self._contrib.getDuration().seconds / 60 if self._contrib.getDuration() is not None: vars["durationHours"] = quoteattr( str((datetime(1900, 1, 1) + self._contrib.getDuration()).hour)) vars["durationMinutes"] = quoteattr( str((datetime(1900, 1, 1) + self._contrib.getDuration()).minute)) if self._contrib.getOwnLocation(): defaultDefinePlace = "checked" defaultInheritPlace = "" locationName = self._contrib.getLocation().getName() locationAddress = self._contrib.getLocation().getAddress() if self._contrib.getOwnRoom(): defaultDefineRoom = "checked" defaultInheritRoom = "" defaultExistRoom = "" roomName = self._contrib.getRoom().getName() vars["defaultInheritPlace"] = defaultInheritPlace vars["defaultDefinePlace"] = defaultDefinePlace vars["confPlace"] = "" confLocation = self._owner.getLocation() if self._contrib.isScheduled(): confLocation = self._contrib.getSchEntry().getSchedule().getOwner( ).getLocation() if self._contrib.getSession( ) and not self._contrib.getConference().getEnableSessionSlots(): confLocation = self._contrib.getSession().getLocation() if confLocation: vars["confPlace"] = confLocation.getName() vars["locationName"] = locationName vars["locationAddress"] = locationAddress vars["defaultInheritRoom"] = defaultInheritRoom vars["defaultDefineRoom"] = defaultDefineRoom vars["defaultExistRoom"] = defaultExistRoom vars["confRoom"] = "" confRoom = self._owner.getRoom() rx = [] roomsexist = self._conf.getRoomList() roomsexist.sort() for room in roomsexist: sel = "" rx.append("""<option value=%s%s>%s</option>""" % (quoteattr(str(room)), sel, self.htmlText(room))) vars["roomsexist"] = "".join(rx) if self._contrib.isScheduled(): confRoom = self._contrib.getSchEntry().getSchedule().getOwner( ).getRoom() if self._contrib.getSession( ) and not self._contrib.getConference().getEnableSessionSlots(): confRoom = self._contrib.getSession().getRoom() if confRoom: vars["confRoom"] = confRoom.getName() vars["roomName"] = quoteattr(roomName) vars["parentType"] = "conference" if self._contrib.getSession() is not None: vars["parentType"] = "session" if self._contrib.isScheduled() and self._contrib.getConference( ).getEnableSessionSlots(): vars["parentType"] = "session slot" vars["postURL"] = urlHandlers.UHContributionDataModif.getURL( self._contrib) vars["types"] = self._getTypeItemsHTML() vars["keywords"] = self._contrib.getKeywords() import MaKaC.webinterface.webFactoryRegistry as webFactoryRegistry wr = webFactoryRegistry.WebFactoryRegistry() wf = wr.getFactory(self._conf) if wf is not None: type = wf.getId() else: type = "conference" if type == "conference": vars["Type"] = WContributionDataModificationType().getHTML(vars) vars["Board"] = WContributionDataModificationBoard().getHTML(vars) else: vars["Type"] = "" vars["Board"] = "" vars["useRoomBookingModule"] = Config.getInstance( ).getIsRoomBookingActive() if self._contrib.getSession(): vars["sessionType"] = self._contrib.getSession().getScheduleType() else: vars["sessionType"] = 'none' return vars
class UtilsConference: @staticmethod def get_start_dt(params): tz = params['Timezone'] try: return timezone(tz).localize( datetime(int(params['sYear']), int(params['sMonth']), int(params['sDay']), int(params['sHour']), int(params['sMinute']))) except ValueError as e: raise FormValuesError( 'The start date you have entered is not correct: {}'.format(e), 'Event') @staticmethod def get_end_dt(params, start_dt): tz = params['Timezone'] if params.get('duration'): end_dt = start_dt + timedelta(minutes=params['duration']) else: try: end_dt = timezone(tz).localize( datetime(int(params['eYear']), int(params['eMonth']), int(params['eDay']), int(params['eHour']), int(params['eMinute']))) except ValueError as e: raise FormValuesError( 'The end date you have entered is not correct: {}'.format( e), 'Event') return end_dt @staticmethod def get_location_data(params): location_data = json.loads(params['location_data']) if location_data.get('room_id'): location_data['room'] = Room.get_one(location_data['room_id']) if location_data.get('venue_id'): location_data['venue'] = Location.get_one( location_data['venue_id']) return location_data @classmethod def get_new_conference_kwargs(cls, params): start_dt = cls.get_start_dt(params) end_dt = cls.get_end_dt(params, start_dt) return { 'title': params['title'], 'timezone': unicode(params['Timezone']), 'start_dt': start_dt, 'end_dt': end_dt } @classmethod def setValues(cls, c, confData, notify=False): c.setTitle(confData["title"]) c.setDescription(confData["description"]) c.setOrgText(confData.get("orgText", "")) c.setComments(confData.get("comments", "")) c.setKeywords(confData["keywords"]) c.setChairmanText(confData.get("chairText", "")) if "shortURLTag" in confData.keys(): tag = confData["shortURLTag"].strip() if tag: try: UtilsConference.validateShortURL(tag, c) except ValueError, e: raise FormValuesError(e.message) if c.getUrlTag() != tag: mapper = ShortURLMapper() mapper.remove(c) c.setUrlTag(tag) if tag: mapper.add(tag, c) c.setContactInfo(confData.get("contactInfo", "")) ################################# # Fermi timezone awareness # ################################# c.setTimezone(confData["Timezone"]) sDate = cls.get_start_dt(confData) eDate = cls.get_end_dt(confData, sDate) moveEntries = int(confData.get("move", 0)) with track_time_changes(): c.setDates(sDate.astimezone(timezone('UTC')), eDate.astimezone(timezone('UTC')), moveEntries=moveEntries) ################################# # Fermi timezone awareness(end) # ################################# old_location_data = c.as_event.location_data location_data = cls.get_location_data(confData) update_event(c.as_event, {'location_data': location_data}) if old_location_data != location_data: signals.event.data_changed.send(c, attr='location', old=old_location_data, new=location_data) emailstr = setValidEmailSeparators(confData.get("supportEmail", "")) if (emailstr != "") and not validMail(emailstr): raise FormValuesError( "One of the emails specified or one of the separators is invalid" ) c.getSupportInfo().setEmail(emailstr) c.getSupportInfo().setCaption(confData.get("supportCaption", "Support")) if c.getVisibility() != confData.get("visibility", 999): c.setVisibility(confData.get("visibility", 999)) theme = confData.get('defaultStyle', '') curType = c.getType() newType = confData.get('eventType', '') if newType != "" and newType != curType: wr = webFactoryRegistry.WebFactoryRegistry() factory = wr.getFactoryById(newType) wr.registerFactory(c, factory) # type changed. always revert to the default theme layout_settings.delete(c, 'timetable_theme') elif not theme or theme == theme_settings.defaults.get(newType): # if it's the default theme or nothing was set (does this ever happen?!), we don't store it layout_settings.delete(c, 'timetable_theme') else: # set the new theme layout_settings.set(c, 'timetable_theme', theme)