def addStatistic(self, REQUEST, question=None, meta_type=None): """Add a statistic for question. @param question: id of the question @param meta_type: metatype of the statistic """ err = [] if not question: err.append('Please select a question') if not meta_type: err.append('Please select a statistic type') if err: self.setSessionErrorsTrans(err) return REQUEST.RESPONSE.redirect(REQUEST.HTTP_REFERER) statistic_cls = STATISTICS[meta_type] question = self.getWidget(question) try: return manage_addStatistic(statistic_cls, self, genObjectId(question.title), question=question, REQUEST=REQUEST) except TypeError: if not REQUEST: raise err = sys.exc_info() LOG('NaayaSurvey.statistics.manage_addStatistic', DEBUG, 'Error creating statistic %s for question %s' % (statistic_cls, question.absolute_url()), error=err) self.setSessionErrorsTrans('"${meta_label}" can\'t be used for question "${title}"', meta_label=statistic_cls.meta_label, title=question.title) return REQUEST.RESPONSE.redirect(REQUEST.HTTP_REFERER)
def manage_addWidget(klass, container, id="", title=None, REQUEST=None, **kwargs): """Add widget""" if not title: title = str(klass) if not id: # prevent any name clashes by using the 'w_' prefix id = 'w_' + genObjectId(title) idSuffix = '' while (id+idSuffix in container.objectIds() or container._getOb(id+idSuffix, None) is not None): idSuffix = genRandomId(p_length=4) id = id + idSuffix # Get selected language lang = None if REQUEST is not None: lang = REQUEST.form.get('lang', None) if not lang: lang = kwargs.get('lang', container.gl_get_selected_language()) widget = klass(id, title=title, lang=lang, **kwargs) container._setObject(id, widget) widget = container._getOb(id) if REQUEST is not None: REQUEST.RESPONSE.redirect(REQUEST.HTTP_REFERER) return id
def __call__(self, **kwargs): kwargs.update(self.request.form) if not kwargs.get('submit', ''): return self.index() title = kwargs.get('site_title', '') id = '%s-%s' % (genObjectId(title), genRandomId()) userid = self.request.AUTHENTICATED_USER.getUserName() kwargs['username'] = self.context.get_user_name(userid) kwargs['useremail'] = self.context.get_user_email(userid) obj = GWApplication(id, title, userid, **kwargs) self.context._setObject(id, obj) self.context.send_new_application_mail(self.context._getOb(id)) return self.index(**{'done': True})
def manage_addSurveyQuestionnaire(context, id="", title="", lang=None, REQUEST=None, **kwargs): """ """ if not title: title = "Survey Instance" if not id: id = genObjectId(title) idSuffix = "" while id + idSuffix in context.objectIds(): idSuffix = genRandomId(p_length=4) id = id + idSuffix # Get selected language lang = REQUEST and REQUEST.form.get("lang", None) lang = lang or kwargs.get("lang", context.gl_get_selected_language()) if REQUEST: kwargs.update(REQUEST.form) kwargs["releasedate"] = context.process_releasedate(kwargs.get("releasedate", DateTime())) kwargs["expirationdate"] = context.process_releasedate(kwargs.get("expirationdate", DateTime())) contributor = context.REQUEST.AUTHENTICATED_USER.getUserName() # log post date auth_tool = context.getAuthenticationTool() auth_tool.changeLastPost(contributor) kwargs["id"] = id kwargs.setdefault("title", title) kwargs.setdefault("lang", lang) ob = SurveyQuestionnaire(**kwargs) context.gl_add_languages(ob) context._setObject(id, ob) ob = context._getOb(id) ob.updatePropertiesFromGlossary(lang) ob.submitThis() context.recatalogNyObject(ob) # Return if not REQUEST: return id # redirect if case if REQUEST.has_key("submitted"): ob.submitThis() l_referer = REQUEST["HTTP_REFERER"].split("/")[-1] if l_referer == "questionnaire_manage_add" or l_referer.find("questionnaire_manage_add") != -1: return context.manage_main(context, REQUEST, update_menu=1) elif l_referer == "questionnaire_add_html": context.setSession("referer", context.absolute_url()) REQUEST.RESPONSE.redirect("%s/messages_html" % context.absolute_url())
def manage_addSurveyReport(context, id="", title="", REQUEST=None, **kwargs): """ ZMI method that creates an object of this type. """ if not id: id = genObjectId(title) idSuffix = '' while id+idSuffix in context.objectIds(): idSuffix = genRandomId(p_length=4) id = id + idSuffix # Get selected language lang = REQUEST and REQUEST.form.get('lang', None) lang = lang or kwargs.get('lang', context.gl_get_selected_language()) ob = SurveyReport(id, lang=lang, title=title) context.gl_add_languages(ob) context._setObject(id, ob) if REQUEST is not None: context.manage_main(context, REQUEST, update_menu=1) return id
def gen_id(self): return genObjectId(self.application_data.get('site_title', ''))
def assert_slug(self, initial_string, expected_slug): slug = genObjectId(initial_string) self.assertEqual(slug, expected_slug)