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)
Example #2
0
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
Example #3
0
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
Example #4
0
    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 __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})
Example #6
0
 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', ''))
Example #10
0
 def assert_slug(self, initial_string, expected_slug):
     slug = genObjectId(initial_string)
     self.assertEqual(slug, expected_slug)
Example #11
0
 def gen_id(self):
     return genObjectId(self.application_data.get('site_title', ''))