def render(self): """JSON entry point for session deletion.""" session = Session() ss = session.query(model.SurveySession).get(self.request.form["id"]) if ss is not None: session.delete(ss) return dict(result="ok")
def render(self): session = Session() ss = session.query(SurveySession).get(self.request.form["id"]) if ss is not None: flash = IStatusMessage(self.request).addStatusMessage flash(_(u"Session `${name}` has been deleted.", mapping={"name": getattr(ss, 'title')}), "success") session.delete(ss) self.request.response.redirect(self.context.absolute_url())
def handleDelete(self, action): (data, errors) = self.extractData() if errors: return user = get_current_account() if not user.verify_password(data["password"]): raise WidgetActionExecutionError("password", Invalid(_("Invalid password"))) Session.delete(user) self.logout() self.request.response.redirect(self.request.client.absolute_url())
def update(self): key = self.request.get("key") if key is None: return request = Session.query(AccountChangeRequest).get(key) if request is None: return request.account.loginname = request.value Session.delete(request) flash = IStatusMessage(self.request).addStatusMessage flash(_("Your email address has been updated."), "success") self.request.response.redirect(aq_inner(self.context).absolute_url())
def handleDelete(self, action): (data, errors) = self.extractData() if errors: return user = getSecurityManager().getUser() if user.password != data["password"]: raise WidgetActionExecutionError("password", Invalid(_(u"Invalid password"))) user = getSecurityManager().getUser() Session.delete(user) self.logout() self.request.response.redirect(self.request.client.absolute_url())
def update(self): key = self.request.get("key") if key is None: return request = Session.query(AccountChangeRequest).get(key) if request is None: return request.account.loginname = request.value Session.delete(request) flash = IStatusMessage(self.request).addStatusMessage flash(_("Your email address has been updated."), "success") self.request.response.redirect(aq_inner(self.context).absolute_url())
def handleDelete(self, action): (data, errors) = self.extractData() if errors: return user = getSecurityManager().getUser() if user.password != data["password"]: raise WidgetActionExecutionError("password", Invalid(_(u"Invalid password"))) user = getSecurityManager().getUser() Session.delete(user) self.logout() self.request.response.redirect(self.request.client.absolute_url())
def delete_association(ids): if not len(ids) == 2: logger = logging.getLogger('cirb.organizations.browser.organizationsmanage') logger.error("Try to delete an association, but there are not 2 ids.") return session = Session() query1 = session.query(Association).filter(Association.canonical_id == ids[0]).filter(Association.translated_id == ids[1]).filter(Association.association_type == 'lang') query2 = session.query(Association).filter(Association.canonical_id == ids[1]).filter(Association.translated_id == ids[0]).filter(Association.association_type == 'lang') query = query1.union(query2) assoc = query.all() if len(assoc) > 1: logger.error("There are {0} association with ids {1} and {2}").format(len(assoc), ids[0], ids[1]) session.delete(query.first())
def __call__(self): if not self.webhelpers.can_delete_session: raise Unauthorized() Session.delete(self.context.session) api.portal.show_message( _( "Session `${name}` has been deleted.", mapping={"name": self.context.session.title}, ), self.request, "success", ) self.request.response.redirect(self.webhelpers.country_url)
def __call__(self, form): context = form.context session = Session() try: session.delete(context) form.status = self.successMessage form.flash(form.status) form.redirect(form.url(context.__parent__)) return SUCCESS except: pass form.status = self.failureMessage form.flash(form.status) form.redirect(form.url(form.context)) return FAILURE
def __call__(self): url = "%s/" % aq_inner(self.context).absolute_url() flash = IStatusMessage(self.request).addStatusMessage key = self.request.get("key") if key is None: flash(_("This request could not be processed."), "warning") self.request.response.redirect(url) return request = Session.query(AccountChangeRequest).get(key) if request is None: flash(_("This request could not be processed."), "warning") self.request.response.redirect(url) return request.account.loginname = request.value alsoProvides(self.request, IDisableCSRFProtection) Session.delete(request) flash(_("Your email address has been updated."), "success") self.request.response.redirect(url)
def update(self): if redirectOnSurveyUpdate(self.request): return context = aq_inner(self.context) appconfig = getUtility(IAppConfig) settings = appconfig.get('euphorie') self.use_existing_measures = settings.get('use_existing_measures', False) self.next_is_report = False # already compute "next" here, so that we can know in the template # if the next step might be the report phase, in which case we # need to switch off the sidebar next = FindNextQuestion(context, filter=self.question_filter) if next is None: # We ran out of questions, proceed to the report url = "%s/report" % self.request.survey.absolute_url() self.next_is_report = True else: url = QuestionURL(self.request.survey, next, phase="actionplan") if self.request.environ["REQUEST_METHOD"] == "POST": reply = self.request.form session = Session() context.comment = reply.get("comment") context.priority = reply.get("priority") new_plans = self.extract_plans_from_request() for plan in context.action_plans: session.delete(plan) context.action_plans.extend(new_plans) SessionManager.session.touch() if reply["next"] == "previous": next = FindPreviousQuestion(context, filter=self.question_filter) if next is None: # We ran out of questions, step back to intro page url = "%s/evaluation" % self.request.survey.absolute_url() else: url = QuestionURL(self.request.survey, next, phase="actionplan") return self.request.response.redirect(url) else: self.data = context if len(context.action_plans) == 0: self.data.empty_action_plan = [model.ActionPlan()] self.title = context.parent.title self.tree = getTreeData(self.request, context, filter=self.question_filter, phase="actionplan") if self.context.is_custom_risk: self.risk = self.context self.description_intro = u"" self.risk.description = u"" number_images = 0 else: self.risk = self.request.survey.restrictedTraverse( context.zodb_path.split("/")) number_images = getattr(self.risk, 'image', None) and 1 or 0 if number_images: for i in range(2, 5): number_images += getattr(self.risk, 'image{0}'.format(i), None) and 1 or 0 ploneview = getMultiAdapter((self.context, self.request), name="plone") stripped_description = StripMarkup(self.risk.description) if len(stripped_description) > self.DESCRIPTION_CROP_LENGTH: self.description_intro = ploneview.cropText( stripped_description, self.DESCRIPTION_CROP_LENGTH) else: self.description_intro = "" self.solutions = [ solution for solution in self.risk.values() if ISolution.providedBy(solution) ] self.number_images = number_images self.has_images = number_images > 0 self.image_class = IMAGE_CLASS[number_images] self.risk_number = self.context.number lang = getattr(self.request, 'LANGUAGE', 'en') if "-" in lang: elems = lang.split("-") lang = "{0}_{1}".format(elems[0], elems[1].upper()) self.delete_confirmation = translate(_( u"Are you sure you want to delete this measure? This action can " u"not be reverted."), target_language=lang) self.override_confirmation = translate(_( u"The current text in the fields 'Action plan', 'Prevention plan' and " u"'Requirements' of this measure will be overwritten. This action cannot be " u"reverted. Are you sure you want to continue?"), target_language=lang) self.message_date_before = translate(_( u"error_validation_before_end_date", default=u"This date must be on or before the end date."), target_language=lang) self.message_date_after = translate(_( u"error_validation_after_start_date", default=u"This date must be on or after the start date."), target_language=lang) self.message_positive_number = translate(_( u"error_validation_positive_whole_number", default=u"This value must be a positive whole number."), target_language=lang) super(ActionPlanView, self).update()
def render(self): session = Session() ss = session.query(model.SurveySession).get(self.request.form["id"]) if ss is not None: session.delete(ss) self.request.response.redirect(self.context.absolute_url())
def update(self): if redirectOnSurveyUpdate(self.request): return context = aq_inner(self.context) self.next_is_report = False # already compute "next" here, so that we can know in the template # if the next step might be the report phase, in which case we # need to switch off the sidebar next = FindNextQuestion( context, filter=self.question_filter) if next is None: # We ran out of questions, proceed to the report url = "%s/report" % self.request.survey.absolute_url() self.next_is_report = True else: url = QuestionURL( self.request.survey, next, phase="actionplan") if self.request.environ["REQUEST_METHOD"] == "POST": reply = self.request.form session = Session() context.comment = reply.get("comment") context.priority = reply.get("priority") new_plans = self.extract_plans_from_request() for plan in context.action_plans: session.delete(plan) context.action_plans.extend(new_plans) SessionManager.session.touch() if reply["next"] == "previous": next = FindPreviousQuestion( context, filter=self.question_filter) if next is None: # We ran out of questions, step back to intro page url = "%s/evaluation" % self.request.survey.absolute_url() else: url = QuestionURL( self.request.survey, next, phase="actionplan") return self.request.response.redirect(url) else: self.data = context if len(context.action_plans) == 0: self.data.empty_action_plan = [model.ActionPlan()] self.title = context.parent.title self.tree = getTreeData( self.request, context, filter=self.question_filter, phase="actionplan") if self.context.is_custom_risk: self.risk = self.context self.description_intro = u"" self.risk.description = u"" number_images = 0 else: self.risk = self.request.survey.restrictedTraverse( context.zodb_path.split("/")) number_images = getattr(self.risk, 'image', None) and 1 or 0 if number_images: for i in range(2, 5): number_images += getattr( self.risk, 'image{0}'.format(i), None) and 1 or 0 ploneview = getMultiAdapter( (self.context, self.request), name="plone") stripped_description = StripMarkup(self.risk.description) if len(stripped_description) > DESCRIPTION_CROP_LENGTH: self.description_intro = ploneview.cropText( stripped_description, DESCRIPTION_CROP_LENGTH) else: self.description_intro = "" self.solutions = [ solution for solution in self.risk.values() if ISolution.providedBy(solution)] self.number_images = number_images self.has_images = number_images > 0 self.image_class = IMAGE_CLASS[number_images] self.risk_number = self.context.number lang = getattr(self.request, 'LANGUAGE', 'en') if "-" in lang: elems = lang.split("-") lang = "{0}_{1}".format(elems[0], elems[1].upper()) self.delete_confirmation = translate(_( u"Are you sure you want to delete this measure? This action can " u"not be reverted."), target_language=lang) self.override_confirmation = translate(_( u"The current text in the fields 'Action plan', 'Prevention plan' and " u"'Requirements' of this measure will be overwritten. This action cannot be " u"reverted. Are you sure you want to continue?"), target_language=lang) self.message_date_before = translate(_( u"error_validation_before_end_date", default=u"This date must be on or before the end date."), target_language=lang) self.message_date_after = translate(_( u"error_validation_after_start_date", default=u"This date must be on or after the start date."), target_language=lang) self.message_positive_number = translate(_( u"error_validation_positive_whole_number", default=u"This value must be a positive whole number."), target_language=lang) super(ActionPlanView, self).update()
def update(self): if redirectOnSurveyUpdate(self.request): return context = aq_inner(self.context) self.errors = {} if self.request.environ["REQUEST_METHOD"] == "POST": reply = self.request.form session = Session() errors = False reply["action_plans"] = [] new_plans = [] for i in range(0, len(reply['measure'])): # repoze.formapi treats an empty input for an int as a # validation error. measure = dict([p for p in reply['measure'][i].items() if p[1].strip()]) form = ActionPlanItemForm(params=measure) reply['action_plans'].append(measure) if not form.validate(): errors = True reply['action_plans'][-1]['errors'] = \ dict(form.errors._dict) if u'Start date is not before end date' in \ form.errors._messages: reply['action_plans'][-1]['errors'][ 'planning_start_date'] = [ u'Start date is not before end date'] continue if len(measure) > 2: new_plans.append(model.ActionPlan( action_plan=form.data["action_plan"], prevention_plan=form.data["prevention_plan"], requirements=form.data["requirements"], responsible=form.data["responsible"], budget=form.data["budget"], planning_start=self._fieldsToDate( form.data["planning_start_year"], form.data["planning_start_month"], form.data["planning_start_day"]), planning_end=self._fieldsToDate( form.data["planning_end_year"], form.data["planning_end_month"], form.data["planning_end_day"]), )) if errors: self.data = reply else: context.comment = reply.get("comment") context.priority = reply.get("priority") for plan in context.action_plans: session.delete(plan) context.action_plans.extend(new_plans) SessionManager.session.touch() if reply["next"] == "previous": next = FindPreviousQuestion( context, filter=self.question_filter) if next is None: # We ran out of questions, step back to intro page url = "%s/evaluation" \ % self.request.survey.absolute_url() self.request.response.redirect(url) return else: next = FindNextQuestion( context, filter=self.question_filter) if next is None: # We ran out of questions, proceed to the report url = "%s/report" % self.request.survey.absolute_url() self.request.response.redirect(url) return url = QuestionURL( self.request.survey, next, phase="actionplan") self.request.response.redirect(url) return else: if len(context.action_plans) == 0: context.action_plans.append(model.ActionPlan()) self.data = context self.risk = risk = self.request.survey.restrictedTraverse( context.zodb_path.split("/")) self.title = context.parent.title self.tree = getTreeData( self.request, context, filter=self.question_filter, phase="actionplan") self.solutions = [solution for solution in risk.values() if ISolution.providedBy(solution)] super(ActionPlanView, self).update()