def handle_save(obj, event, transition='publish'): sp = transaction.savepoint() """ Erzeugt die Exporte fuer die Kinder-Unfallanzeige """ ####import pdb; pdb.set_trace() try: obj_state = uvcsite.workflow.basic_workflow.WorkflowState(obj) if obj_state.getState() != 1: principal = event.principal pdf_pfad = xml_pfad = getDaleDir() if (obj.behandlung == 'Versand'): # PDF Erstellen fnPDF = generateFilename(pdf_pfad, obj.principal.id, obj.__name__, 'pdf') mypdf = getMultiAdapter((obj, event.request), name=u'kipdf') mypdf.create(fn=fnPDF) # XML Erstellen fnXML = generateFilename(xml_pfad, obj.principal.id, obj.__name__, 'dale.xml') mydale = getMultiAdapter((obj, event.request), name=u'kixml') mydale.update(filename=fnXML) mydale.base_file.close() IWorkflowInfo(obj).fireTransition(transition) ####grokcore.message.send(u'Vielen Dank, Ihre Unfallanzeige wurde gespeichert und versendet!') else: ####grokcore.message.send(u'Vielen Dank, Ihre Unfallanzeige wurde als Entwurf \ #### gespeichert. Sie können zu \ #### einem beliebigen Zeitpunkt mit der Bearbeitung fortfahren.') pass else: grokcore.message.send(u'Ihre Unfallanzeige wurde bereits versendet und befindet sich in dem Verzeichnis der Unfallanzeigen.') except StandardError: sp.rollback() IWorkflowInfo(obj).fireTransition('progress') uvcsite.logger.exception("Achtung FEHLER")
def handle_save(obj, event, transition='sent'): sp = transaction.savepoint() account = getAccount(obj) try: if obj.principal.id == 'zope.anybody': email = account.email message = MES send_mail( "*****@*****.**", [email], "Sie haben neue Nachrichten!", message, ) else: grunddaten = account.getGrundDaten() nname = grunddaten['iknam1'].strip() vname = grunddaten['iknam2'].strip() PRStatistik(obj.principal.id, 'ENachricht', '004050') Nachricht_pdf(obj, nname, vname, tmp=None) send(u'Vielen Dank, Ihre Nachricht wurde gesendet.') IWorkflowInfo(obj).fireTransition(transition) except StandardError as exc: uvcsite.logger.exception("Achtung FEHLER") sp.rollback() IWorkflowInfo(obj).fireTransition('progress')
def handle_save(obj, event, transition='publish'): sp = transaction.savepoint() try: betreff = obj.title nachrichtentext = obj.message fname = None filename = None if hasattr(obj.attachment, 'data'): ntf = tempfile.NamedTemporaryFile() ntf.write(obj.attachment.data) ntf.seek(0) fname = ntf.name filename = obj.attachment.filename um = getUtility(IUserManagement) link = "%s?form.field.access_token=%s" % (grok.url( event.request, obj, 'add'), TokenAuthenticationPlugin.generate_token()) link = link.replace('https://schule-login.ukh.de', 'http://10.64.54.12:7787/app') f_adr = "*****@*****.**" hf = getHomeFolder(obj) # Servicetelefon !!!! if event.principal.id == "servicetelefon-0": f_adr = "*****@*****.**" body = BODYR % (nachrichtentext) antwortto = um.getUser(hf.__name__).get('email').strip() to = [ antwortto, ] # Schule #if event.principal.id != "servicetelefon-0": else: to = [ '*****@*****.**', ] sdat = event.principal.getAdresse() adrz1 = sdat['iknam1'].strip() + ' ' + sdat['iknam2'].strip() adrz2 = sdat['ikstr'].strip() ### + ' ' + sdat['iknam2'].strip() adrz3 = str(sdat['enrplz']).strip() + ' ' + sdat['ikhort'].strip() body = BODY % (adrz1, adrz2, adrz3, nachrichtentext, link) to = [ '*****@*****.**', ] filename = remove_accents(filename) send_mail( f_adr, to, u"Anfrage Schulportal %s" % betreff, #u"Anfrage Schulportal: " + str(betreff), body=body, file=fname, filename=filename) IWorkflowInfo(obj).fireTransition(transition) send(u'Vielen Dank, Ihre Nachricht wurde gesendet.', type='message', name='session') except StandardError: sp.rollback() # IWorkflowInfo(obj).fireTransition('progress') uvcsite.logger.exception("Achtung FEHLER")
def worker(): print '################################################################' print 'Start...' print '################################################################' uvcsite = root['app'] component.hooks.setSite(uvcsite) hfm = component.getUtility(IHomeFolderManager).homeFolderBase for homefolder in hfm.values(): #for item in homefolder: # print item if 'Sunfallanzeigen' in homefolder: for item in homefolder['Sunfallanzeigen'].values(): #pid = str(item.principal.id) #print pid #print IWorkflowState(item).getState() if IWorkflowState(item).getState() == 2: print '################################################################' print 'Fehlerhafte Unfallanzeige gefunden:' print "%s/%s" % (homefolder.__name__, item.title) print '################################################################' print 'Bitte Dokument anschauen und Fehler beheben !' print 'Dann Code der Nachverarbeitung aendern:' print '1. Dokument neu erstellen und versenden, NICHT fixen !!!' print '2. Dokument fixen, OHNE Erstellung !!!' print '################################################################' ##### Status: 0 = Nur schauen, was laeuft falsch ##### 1 = Dokument neu erstellen ##### 2 = Dokument fixen (Status gesendet) ##### Nachfolgenden Status setzen: status = 0 # <----- Dort: 0, 1 oder 2 if status == 0: print "-----> Es wurde noch keine Aktion ausgeführt" print "Status: ", status elif status == 1: modprincipal = item.principal alsoProvides(modprincipal, MoE) event_obj = geteventobject(modprincipal) try: grok.notify(AfterSaveEvent(item, event_obj)) except InvalidTransitionError: print "-----> Dokumente wurden erstellt, Status umstellen zum fixen !!!" print "Status: ", status except Exception, e: print e pass elif status == 2: IWorkflowInfo(item).fireTransition('fix') print "-----> Dokumente gefixt !!!" print " Status umstellen auf --> 0 <--" print "Status: ", status print 'FIX of object %s' % item
def handle_save(obj, event): sp = transaction.savepoint() wf = IWorkflowInfo(obj) try: 1 / 0 if True: wf.fireTransition('review') uvcsite.log('add Document in state review') else: pdf = zope.component.getMultiAdapter((obj, event.request), name=u"pdf") pdf.create(fn="/tmp/kk/%s.pdf" % (obj.__name__)) wf.fireTransition('publish') except StandardError, e: sp.rollback() wf.fireTransition('progress') uvcsite.logger.exception("ES IST EIN FEHLER AUFGETRETEN") uvcsite.log('simpleaddon', e.__doc__)
def add_published(self, id, **data): new_entry = RestructuredTextEntry(**data) self.context['entries'][id] = new_entry IWorkflowInfo(new_entry).fireTransition('create') IWorkflowInfo(new_entry).fireTransitionToward(interfaces.PUBLISHED) self.redirect(self.url(self.context))
def add(self, id, **data): new_entry = RestructuredTextEntry(**data) self.context['entries'][id] = new_entry IWorkflowInfo(new_entry).fireTransition('create') self.redirect(self.url(self.context))
def fix(self): return IWorkflowInfo(self.context).fireTransition('fix')
def progress(self): return IWorkflowInfo(self.context).fireTransition('progress')
def add(self, content): AddMessage.add(self, content) IWorkflowInfo(self.context).fireTransition('reply')
def fireAutomatic(self): for version in self.getVersionsWithAutomaticTransitions(): IWorkflowInfo(version).fireAutomatic()
def retract(self, **data): self.applyData(self.context, **data) IWorkflowInfo(self.context).fireTransitionToward(interfaces.CREATED) self.redirect(self.url(self.context))
def update(self): if self.request.method != 'POST': raise NotImplementedError('This method is only allowed in POST') IWorkflowInfo(self.context).fireTransition('read')
def publish(self, **data): self.applyData(self.context, **data) IWorkflowInfo(self.context).fireTransitionToward(interfaces.PUBLISHED) self.redirect(self.url(self.context))
def initializeWorkflow(content, event): IWorkflowInfo(content).fireTransition('create')
def publish(self): return IWorkflowInfo(self.context).fireTransition('publish')