def __call__(self): text = self.request.get('text') if self.is_already_done(): return ok_response(self.request) change_task_workflow_state(self.context, self.transition, text=text) return ok_response(self.request)
def __call__(self): self._check_internal_request() transition = self.request.get('transition') text = self.request.get('text') if self._is_already_done(transition, text): return ok_response(self.request) self._update(transition, text) return ok_response(self.request)
def render(self): if self.is_already_accepted(): return ok_response() text = self.request.get("text") successor_oguid = self.request.get("successor_oguid") center = notification_center() center.remove_task_responsible(self.context, self.context.responsible) accept_task_with_response(self.context, text, successor_oguid=successor_oguid) return ok_response()
def __call__(self): data = self.request.get('data', None) assert data is not None, 'Bad request: no delivery data found' data = json.loads(data) if self.is_already_delivered(data): return ok_response() mtool = getToolByName(self.context, 'portal_membership') member = mtool.getAuthenticatedMember() if not member.checkPermission('Add portal content', self.context): raise Unauthorized() # Set the "X-CREATING-SUCCESSOR" flag for preventing the event # handler from creating additional responses per added document. self.request.set('X-CREATING-SUCCESSOR', True) # Create the delivered documents: transporter = Transporter() documents = [] message = _( u'version_message_resolved_task', default=u'Document copied from task (task resolved)') if data.get( 'transition') == 'task-transition-in-progress-tested-and-closed': message = _( u'version_message_closed_task', default=u'Document copied from task (task closed)') for item in data['documents']: doc = transporter.create(item, self.context) Versioner(doc).set_custom_initial_version_comment(message) # append `RE:` prefix to the document title doc.title = '%s: %s' % ( translate( _(u'answer_prefix', default=u'RE'), context=self.context.REQUEST), doc.title) documents.append(doc) notify(ObjectAddedEvent(doc)) # Change workflow state of predecessor task: util.change_task_workflow_state( self.context, data['transition'], text=data['text'], added_object=documents) return ok_response()
def render(self): data = self.request.get('data', None) assert data is not None, 'Bad request: no delivery data found' data = json.loads(data) if self.is_already_delivered(data): return ok_response() mtool = getToolByName(self.context, 'portal_membership') member = mtool.getAuthenticatedMember() if not member.checkPermission('Add portal content', self.context): raise Unauthorized() # Set the "X-CREATING-SUCCESSOR" flag for preventing the event # handler from creating additional responses per added document. self.request.set('X-CREATING-SUCCESSOR', True) # Create the delivered documents: transporter = Transporter() documents = [] message = _( u'version_message_resolved_task', default=u'Document copied from task (task resolved)') if data.get( 'transition') == 'task-transition-in-progress-tested-and-closed': message = _( u'version_message_closed_task', default=u'Document copied from task (task closed)') with CustomInitialVersionMessage(message, self.context.REQUEST): for item in data['documents']: doc = transporter.create(item, self.context) # append `RE:` prefix to the document title doc.title = '%s: %s' % ( translate( _(u'answer_prefix', default=u'RE'), context=self.context.REQUEST), doc.title) documents.append(doc) notify(ObjectAddedEvent(doc)) # Change workflow state of predecessor task: util.change_task_workflow_state( self.context, data['transition'], text=data['text'], added_object=documents) return ok_response()
def __call__(self): if self.is_already_accepted(): return ok_response() text = safe_unicode(self.request.get('text')) successor_oguid = self.request.get('successor_oguid') center = notification_center() center.remove_task_responsible(self.context, self.context.responsible) accept_task_with_response(self.context, text, successor_oguid=successor_oguid) return ok_response()
def __call__(self): if self.is_already_accepted(): return ok_response() text = self.request.get('text') successor_oguid = self.request.get('successor_oguid') center = notification_center() center.remove_task_responsible(self.context, self.context.responsible) accept_task_with_response(self.context, text, successor_oguid=successor_oguid) return ok_response()
def render(self): # Set correct content type for response self.request.response.setHeader("Content-type", "text/plain") ee_session_status = self.request.form.get('status', 'UNKNOWN') file_upload = self.request.form.get('upload') if not file_upload: return "FAILED: No file uploaded" file_data = file_upload.read() blackbox_dir = os.environ.get('BLACKBOX_DIR', 'var/blackbox') blackbox_dir = os.path.abspath(blackbox_dir) if not os.path.isdir(blackbox_dir): mkdir_p(blackbox_dir) timestamp = datetime.today().strftime("%Y-%m-%d_%H-%M-%S") filename = "blackbox-%s.zip" % timestamp path = os.path.join(blackbox_dir, filename) outfile = open(path, 'w') outfile.write(file_data) outfile.close() logger.info("Blackbox from EE session (status: %s) saved to %s" % ( ee_session_status, path)) return ok_response()
def __call__(self): data = advancedjson.loads(self.request.get('data')) timestamp = data['timestamp'] data = data['data'] IHistory(self.context).receive_record(timestamp, data) return ok_response(self.request)
def __call__(self): jsondata = self.request.get('data-set') key = self.request.get('key') data = json.loads(jsondata) getUtility(IWizardDataStorage).update(key, data) return ok_response()
def __call__(self): rawdata = self.request.get('responses') data = json.loads(rawdata) transporter = IResponseTransporter(self.context) current_data = json.loads(transporter.extract_responses()) if current_data == data: # In case of a conflict error while committing on the # source admin_unit this view is called twice or more. If the # current_data and data maches, it is not the first # request and we are in conflict resolution. Thus for not # duplicating responses we abort with "OK" (since we have # already this exact task in a earlier request). return ok_response(self.request) transporter.create_responses(data) return ok_response(self.request)
def __call__(self): if self.is_already_accepted(): return ok_response() text = safe_unicode(self.request.get('text')) successor_oguid = self.request.get('successor_oguid') center = notification_center() center.remove_task_responsible(self.context, self.context.responsible) # Remove task reminders of potential responsibles reminders = self.context.get_reminders_of_potential_responsibles() for userid in reminders.keys(): self.context.clear_reminder(user_id=userid) accept_task_with_response(self.context, text, successor_oguid=successor_oguid) return ok_response()
def render(self): new_deadline = self.request.get('new_deadline', None) new_deadline = date.fromordinal(int(new_deadline)) text = self.request.get('text', u'') transition = self.request.get('transition') IDeadlineModifier(self.context).update_deadline( new_deadline, text, transition) return ok_response()
def render(self): self.check_internal_request() transition = self.request.get("transition") text = self.request.get("text") responsible = self.request.get("responsible") responsible_client = self.request.get("responsible_client") if self.is_already_done(transition, text): return ok_response(self.request) wftool = getToolByName(self.context, "portal_workflow") # change workflow state before = wftool.getInfoFor(self.context, "review_state") before = wftool.getTitleForStateOnType(before, self.context.Type()) wftool.doActionFor(self.context, transition) after = wftool.getInfoFor(self.context, "review_state") after = wftool.getTitleForStateOnType(after, self.context.Type()) # create response response = add_simple_response(self.context, transition=transition, text=text) if responsible and responsible is not "None": # special handling for reassign response.add_change( "responsible", _(u"label_responsible", default=u"Responsible"), ITask(self.context).responsible, responsible, ) ITask(self.context).responsible_client = responsible_client ITask(self.context).responsible = responsible notify(ObjectModifiedEvent(self.context)) response.add_change("review_state", _(u"Issue state"), before, after) return ok_response(self.request)
def __call__(self): if self.is_already_done(): return ok_response() mtool = getToolByName(self.context, 'portal_membership') member = mtool.getAuthenticatedMember() if not member.checkPermission('Add portal content', self.context): raise Unauthorized() successor_oguid = self.request.get('successor_oguid') transition = self.request.get('transition') response_text = self.request.get('response_text') if transition: change_task_workflow_state(self.context, transition, text=response_text, successor_oguid=successor_oguid) IYearfolderStorer(self.context).store_in_yearfolder() return ok_response()
def __call__(self): data = advancedjson.loads(self.request.get('data')) text = data['text'] with elevated_privileges(): with as_internal_workflow_transition(): api.content.transition( obj=self.context, transition='proposal-transition-reject') IHistory(self.context).append_record( u'rejected', text=text) ProposalRejectedActivity(self.context, self.request).record() self.context.date_of_submission = None return ok_response(self.request)
def __call__(self): alsoProvides(self.request, IDisableCSRFProtection) # internal request data = advancedjson.loads(self.request.get('data')) meeting_id = data['meeting_id'] with elevated_privileges(): with as_internal_workflow_transition(): api.content.transition( obj=self.context, transition='proposal-transition-unschedule') IHistory(self.context).append_record( u'remove_scheduled', meeting_id=meeting_id) ProposalRemovedFromScheduleActivity( self.context, self.request, meeting_id).record() return ok_response(self.request)