Esempio n. 1
0
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")
Esempio n. 2
0
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')
Esempio n. 3
0
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")
Esempio n. 4
0
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
Esempio n. 5
0
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__)
Esempio n. 6
0
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__)
Esempio n. 7
0
 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))
Esempio n. 8
0
 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))
Esempio n. 9
0
 def fix(self):
     return IWorkflowInfo(self.context).fireTransition('fix')
Esempio n. 10
0
 def progress(self):
     return IWorkflowInfo(self.context).fireTransition('progress')
Esempio n. 11
0
 def add(self, content):
     AddMessage.add(self, content)
     IWorkflowInfo(self.context).fireTransition('reply')
Esempio n. 12
0
 def fireAutomatic(self):
     for version in self.getVersionsWithAutomaticTransitions():
         IWorkflowInfo(version).fireAutomatic()
Esempio n. 13
0
 def retract(self, **data):
     self.applyData(self.context, **data)
     IWorkflowInfo(self.context).fireTransitionToward(interfaces.CREATED)
     self.redirect(self.url(self.context))
Esempio n. 14
0
 def update(self):
     if self.request.method != 'POST':
         raise NotImplementedError('This method is only allowed in POST')
     IWorkflowInfo(self.context).fireTransition('read')
Esempio n. 15
0
 def publish(self, **data):
     self.applyData(self.context, **data)
     IWorkflowInfo(self.context).fireTransitionToward(interfaces.PUBLISHED)
     self.redirect(self.url(self.context))
Esempio n. 16
0
def initializeWorkflow(content, event):
    IWorkflowInfo(content).fireTransition('create')
Esempio n. 17
0
 def publish(self):
     return IWorkflowInfo(self.context).fireTransition('publish')