def __call__(self): jsondata = self.request.get(REQUEST_KEY) data = encode_after_json(json.loads(jsondata)) committee = Oguid.parse(data['committee_oguid']).resolve_object() proposal_oguid = Oguid.parse(data['proposal_oguid']) proposal = meeting_service().fetch_proposal_by_oguid(proposal_oguid) with elevated_privileges(): submitted_proposal = SubmittedProposal.create(proposal, committee) # XXX use Transporter API? collector = getMultiAdapter((submitted_proposal,), IDataCollector, name='field-data') data['field-data']['ISubmittedProposal'] = data['field-data'].pop( 'IProposal') collector.insert(data['field-data']) # XXX fix data types in transporter submitted_proposal.date_of_submission = date.today() # sync data to proposal after inserting field data submitted_proposal.sync_model(proposal_model=proposal) submitted_proposal.create_proposal_document( filename=data['file']['filename'], content_type=data['file']['contentType'].encode('utf-8'), data=base64.decodestring(data['file']['data'])) history_data = advancedjson.loads(self.request.get('history_data')) IHistory(submitted_proposal).append_record( u'submitted', uuid=history_data['uuid']) self.request.response.setHeader("Content-type", "application/json") return json.dumps( {'path': '/'.join(submitted_proposal.getPhysicalPath())})
def __call__(self): jsondata = self.request.get(REQUEST_KEY) data = encode_after_json(json.loads(jsondata)) committee = Oguid.parse(data['committee_oguid']).resolve_object() proposal_oguid = Oguid.parse(data['proposal_oguid']) proposal = meeting_service().fetch_proposal_by_oguid(proposal_oguid) with elevated_privileges(): submitted_proposal = SubmittedProposal.create(proposal, committee) # XXX use Transporter API? collector = getMultiAdapter((submitted_proposal, ), IDataCollector, name='field-data') data['field-data']['ISubmittedProposal'] = data['field-data'].pop( 'IProposal') collector.insert(data['field-data']) # XXX fix data types in transporter submitted_proposal.date_of_submission = date.today() # sync data to proposal after inserting field data submitted_proposal.sync_model(proposal_model=proposal) submitted_proposal.create_proposal_document( filename=data['file']['filename'], content_type=data['file']['contentType'].encode('utf-8'), data=base64.decodestring(data['file']['data'])) history_data = advancedjson.loads(self.request.get('history_data')) IHistory(submitted_proposal).append_record( u'submitted', uuid=history_data['uuid']) self.request.response.setHeader("Content-type", "application/json") return json.dumps( {'path': '/'.join(submitted_proposal.getPhysicalPath())})
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 receive(self): document = super(RecieveSubmittedDocumentView, self).receive() history_data = advancedjson.loads(self.request.get('history_data')) with elevated_privileges(): IHistory(self.context).append_record( u'document_submitted', document_title=document.title, submitted_version=history_data['submitted_version'], uuid=history_data['uuid']) activity = advancedjson.loads(self.request.get('activity')) if activity['record_activity']: ProposalDocumentSubmittedActivity(self.context, self.request, document.title).record() ILockable(document).lock(MEETING_SUBMITTED_LOCK) return document
def receive(self): document = super(RecieveSubmittedDocumentView, self).receive() history_data = advancedjson.loads(self.request.get('history_data')) with elevated_privileges(): IHistory(self.context).append_record( u'document_submitted', document_title=document.title, submitted_version=history_data['submitted_version'], uuid=history_data['uuid'] ) ILockable(document).lock(MEETING_SUBMITTED_LOCK) return document
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)
def __call__(self): if not self.context.is_submitted_document(): raise NoSubmittedDocument() if self.context.is_checked_out(): raise Unauthorized() submitted_proposal = aq_parent(aq_inner(self.context)) history_data = advancedjson.loads(self.request.get('history_data')) with elevated_privileges(): transporter = Transporter() transporter.update(self.context, self.request) IHistory(submitted_proposal).append_record( u'document_updated', document_title=self.context.title, submitted_version=history_data['submitted_version'], uuid=history_data['uuid']) ProposalDocumentUpdatedActivity( submitted_proposal, self.request, self.context.title, history_data['submitted_version']).record() portal_path = '/'.join(api.portal.get().getPhysicalPath()) intids = getUtility(IIntIds) comment = translate(_( u"Updated with a newer docment version from proposal's " "dossier."), context=self.request) Versioner(self.context).create_version(comment) data = { 'path': '/'.join(self.context.getPhysicalPath())[len(portal_path) + 1:], 'intid': intids.queryId(self.context) } # Set correct content type for JSON response self.request.response.setHeader("Content-type", "application/json") return json.dumps(data)
def __call__(self): if not self.context.is_submitted_document(): raise NoSubmittedDocument() if self.context.is_checked_out(): raise Unauthorized() submitted_proposal = aq_parent(aq_inner(self.context)) history_data = advancedjson.loads(self.request.get('history_data')) with elevated_privileges(): transporter = Transporter() transporter.update(self.context, self.request) IHistory(submitted_proposal).append_record( u'document_updated', document_title=self.context.title, submitted_version=history_data['submitted_version'], uuid=history_data['uuid'] ) portal_path = '/'.join(api.portal.get().getPhysicalPath()) intids = getUtility(IIntIds) comment = translate( _(u"Updated with a newer docment version from proposal's " "dossier."), context=self.request) Versioner(self.context).create_version(comment) data = { 'path': '/'.join(self.context.getPhysicalPath())[ len(portal_path) + 1:], 'intid': intids.queryId(self.context) } # Set correct content type for JSON response self.request.response.setHeader("Content-type", "application/json") return json.dumps(data)