コード例 #1
0
class LoginAlerts(Viewlet):
    viewletmanager(Top)
    order(15)
    context(LoginRoot)
    layer(DefaultLayer)

    template = get_template('messages.pt', __file__)
コード例 #2
0
class Quizz5PDF(Quizz5PDF):
    uvclight.layer(IVBGTheme)

    def frontpage(self, parts):
        crit_style = self.crit_style()
        parts.append(Paragraph(u'Auswertungsbericht', styles['Heading1']))
        parts.append(
            Paragraph(
                u'„Gut gestaltete Arbeitsbedingungen“ – Psychische Belastung erfassen',
                styles['Heading2']))
        fp = FRONTPAGE % (self.context.course.company.name,
                          self.context.course.title,
                          self.context.startdate.strftime('%d.%m.%Y'),
                          self.context.enddate.strftime('%d.%m.%Y'),
                          crit_style, self.request.form.get('total', ''),
                          datetime.datetime.now().strftime('%d.%m.%Y'))
        parts.append(Paragraph(fp.strip(), styles['Normal']))
        parts.append(PageBreak())
        return None

    def headerfooter(self, canvas, doc):
        canvas.setFont("Helvetica", 9)
        canvas.drawString(1 * cm, 2 * cm, u"Gut gestaltete Arbeitsbedingungen")
        canvas.drawString(1 * cm, 1.6 * cm,
                          u"Psychische Belastungen online erfassen")
        canvas.drawString(1 * cm, 1.2 * cm, u"Ein Programm der VBG")
        canvas.drawString(15 * cm, 2 * cm, u"Grundlage der Befragung:")
        canvas.drawString(15 * cm, 1.6 * cm, u"FBGU-Fragebogen")
        canvas.setFont("Helvetica", 12)
コード例 #3
0
class Navigation(uvclight.ViewletManager):
    uvclight.name('navigation')
    uvclight.layer(IVBGTheme)
    uvclight.context(uvclight.Interface)

    def application_url(self):
        return self.view.application_url()
コード例 #4
0
class Unauthorized(Page):
    layer(DefaultLayer)
    template = get_template('unauthorized.pt', __file__)
    message = None

    def set_message(self, message):
        self.message = message
コード例 #5
0
class BF(uvclight.Page):
    uvclight.name('bf')
    uvclight.context(interface.Interface)
    uvclight.layer(IVBGTheme)
    uvclight.auth.require('zope.Public')

    template = get_template('bf.cpt')
コード例 #6
0
class CreateCompany(CreateCompany):
    uvclight.layer(IVBGTheme)
    label = u'Unternehmen anlegen <a href="" data-toggle="modal" data-target="#myModal"> <span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span></a>'

    fields = uvclight.Fields(ICompany).select('name', 'exp_db', 'type',
                                              'employees')
    fields['exp_db'].mode = "blockradio"
コード例 #7
0
class PDF_WAI(PDF_WAI):
    uvclight.layer(IVBGTheme)

    def headerfooter(self, canvas, doc):
        action = self.request.form.get('action')
        canvas.setFont("Helvetica", 9)
        canvas.drawString(1 * cm, 2 * cm,
                          u"Gemeinsam zu gesunden Arbeitsbedingungen")
        canvas.drawString(1 * cm, 1.6 * cm,
                          u"Psychische Belastungen online erfassen")
        canvas.drawString(1 * cm, 1.2 * cm, u"Ein Programm der VBG")
        if doc.page >= 3 or action == "wai":
            canvas.drawString(18 * cm, 2 * cm, u"Grundlage der Befragung")
            canvas.drawString(18 * cm, 1.6 * cm, u"Work Ability Index (WAI)")
            canvas.drawString(18 * cm, 1.2 * cm, u"Ilmarinen, Tuomi")

        else:
            canvas.drawString(
                18 * cm, 2 * cm,
                u"Grundlage der Befragung: KFZA - Kurzfragebogen")
            canvas.drawString(18 * cm, 1.6 * cm, u"zur Arbeitsanalyse")
            canvas.drawString(18 * cm, 1.2 * cm,
                              u"Prümper, J., Hartmannsgruber, K. & Frese, M")
        canvas.line(0.5 * cm, 2.5 * cm, 26 * cm, 2.5 * cm)
        canvas.setFont("Helvetica", 12)
コード例 #8
0
class Alerts(Viewlet):
    viewletmanager(Top)
    order(15)
    context(GateKeeper)
    layer(DefaultLayer)

    template = get_template('messages.pt', __file__)
コード例 #9
0
class FlashMessages(uvclight.Viewlet):
    uvclight.order(2)
    uvclight.layer(IVBGTheme)
    uvclight.viewletmanager(managers.IAboveContent)
    template = uvclight.get_template('flash.cpt', __file__)

    def update(self):
        self.messages = [msg.message for msg in receive()]
コード例 #10
0
class GatekeeperIndex(Page):
    name('index')
    context(GateKeeper)
    layer(DefaultLayer)

    template = get_template('entrance.pt', __file__)

    def update(self):
        self.portals = list(self.context.get_portals(self.request))
コード例 #11
0
class ContextualMenuDisplay(Viewlet):
    viewletmanager(Top)
    order(20)
    layer(DefaultLayer)

    def update(self):
        self.menu = ContextualActions(self.context, self.request, self.view)
        self.menu.update()

    def render(self):
        return self.menu.render()
コード例 #12
0
class ExampleText(ExampleText):
    uvclight.layer(IVBGTheme)

    @property
    def template(self):
        template = "example_text.pt"
        if self.context.strategy == "fixed":
            template = "example_text_fixed.pt"
        if self.context.quizz_type == 'Zebra':
            template = "zebra_example_text.pt"
        return get_template(template)
コード例 #13
0
class GateLayout(Layout):
    context(Interface)
    layer(DefaultLayer)

    title = u"Gatekeeper"
    template = get_template('layout.pt', __file__)

    def __call__(self, content, **namespace):
        styles.need()
        namespace['user'] = self.request.environment.get('REMOTE_USER')
        namespace['gatekeeper_messages'] = list(receive())
        return Layout.__call__(self, content, **namespace)
コード例 #14
0
class FooterViewlet(MenuViewlet):
    uvclight.viewletmanager(managers.IFooter)
    uvclight.layer(IVBGTheme)
    uvclight.order(20)

    menu = menus.PersonalMenu
    template = get_template('footer.cpt')

    def getFooter(self):
        menu = menus.FooterMenu(self.context, self.request, self.view)
        menu.update()
        return menu.entries
コード例 #15
0
class Disable(PersonalMenuViewlet):
    uvclight.name('personalmenuviewlet')
    uvclight.layer(IVBGTheme)

    def available(self):
        return False

    def update(self):
        pass
    
    def render(self):
        return u''
コード例 #16
0
class DocumentActionsViewlet(MenuViewlet):
    uvclight.viewletmanager(managers.IAboveContent)
    uvclight.layer(IVBGTheme)
    uvclight.order(20)

    template = get_template('documentactionstemplate.cpt')
    name = u'Aktion'
    id = u'documentactionsviewlet'

    def update(self):
        self.menu = menus.DocumentActionsMenu(
            self.context, self.request, self.view)
        self.menu.update()
コード例 #17
0
class AdminIndex(Page):
    name('index')
    context(AdminRoot)
    layer(DefaultLayer)

    template = get_template('admin.pt', __file__)

    def update(self):
        self.links = ({
            'title':
            _(u"Messages management", default="Messages management"),
            'url':
            get_absolute_url(self.context.messages, self.request),
        }, )
コード例 #18
0
class Layout(uvclight.Layout):
    uvclight.context(Interface)
    uvclight.layer(IVBGTheme)

    base = "/"
    template = get_template('layout.cpt')

    def __call__(self, content, **ns):
        vbgcss.need()
        vbgjs.need()
        site = uvclight.getSite()
        self.title = getattr(site, 'title', 'UVCLight')
        if 'view' in ns:
            if hasattr(ns['view'], 'title'):
                self.title = getattr(ns['view'], 'title', u'UVCLight')
        return uvclight.Layout.__call__(self, content, **ns)
コード例 #19
0
class PDFPL(PDFPL):
    uvclight.layer(IVBGTheme)

    def headerfooter(self, canvas, doc):
        canvas.setFont("Helvetica", 9)
        canvas.drawString(1 * cm, 2 * cm,
                          u"Gemeinsam zu gesunden Arbeitsbedingungen")
        canvas.drawString(1 * cm, 1.6 * cm,
                          u"Psychische Belastungen online erfassen")
        canvas.drawString(1 * cm, 1.2 * cm, u"Ein Programm der VBG")
        canvas.drawString(18 * cm, 2 * cm,
                          u"Grundlage der Befragung:  Prüfliste Psychische")
        canvas.drawString(18 * cm, 1.6 * cm, u"Belastung")
        canvas.drawString(18 * cm, 1.2 * cm,
                          u"Unfallversicherung Bund und Bahn")
        canvas.line(0.5 * cm, 2.5 * cm, 26 * cm, 2.5 * cm)
コード例 #20
0
class GeneratePDF(GeneratePDF):
    uvclight.layer(IVBGTheme)

    def headerfooter(self, canvas, doc):
        canvas.setFont("Helvetica", 9)
        canvas.drawString(1 * cm, 2 * cm,
                          u"Gemeinsam zu gesunden Arbeitsbedingungen")
        canvas.drawString(1 * cm, 1.6 * cm,
                          u"Psychische Belastungen online erfassen")
        canvas.drawString(1 * cm, 1.2 * cm, u"Ein Programm der VBG")
        canvas.drawString(18 * cm, 2 * cm,
                          u"Grundlage der Befragung: KFZA - Kurzfragebogen")
        canvas.drawString(18 * cm, 1.6 * cm, u"zur Arbeitsanalyse")
        canvas.drawString(18 * cm, 1.2 * cm,
                          u"Prümper, J., Hartmannsgruber, K. & Frese, M")
        canvas.line(0.5 * cm, 2.5 * cm, 26 * cm, 2.5 * cm)
        canvas.setFont("Helvetica", 12)
コード例 #21
0
class LetterEmailer(DownloadLetter):
    uvclight.name('downloadletter')
    uvclight.layer(IVBGTheme)

    fields = DownloadLetter.fields + uvclight.Fields(IEmailer)
    fields['emails'].interface = IEmailer  # TEMPORARY FIX
    actions = DownloadLetter.actions + Actions(
        EmailAction('Serienbrief per Mail versenden'))

    label = u"Serienbrief erstellen <a href='' data-toggle='modal' data-target='#myModal'> <span class='glyphicon glyphicon-question-sign' aria-hidden='       true'></span> </a>"

    def update(self):
        DE = DEFAULT % (
            self.context.startdate.strftime('%d.%m.%Y'),
            self.context.enddate.strftime('%d.%m.%Y'),
        )
        defaults = Letter(DE, emails=None)
        self.setContentData(ObjectDataManager(defaults))
コード例 #22
0
class KontaktForm(uvclight.Form):
    uvclight.name('kontakt')
    uvclight.context(interface.Interface)
    uvclight.layer(IVBGTheme)
    uvclight.auth.require('zope.Public')

    fields = uvclight.Fields(IKontaktForm)

    label = u"Kontakt"
    description = u"Hier haben Sie die Möglichkeit uns themenspezifische Nachrichten zukommen zu lassen"

    @uvclight.action('Abbrechen')
    def handle_save(self):
        self.redirect(self.application_url())

    @uvclight.action('Senden')
    def handle_save(self):
        data, errors = self.extractData()
        if errors:
            self.flash('Es sind Fehler aufgetreten')
            return
        from nva.psyquizz.emailer import ENCODING
        config = self.context.configuration
        subject_choices = self.fields['subject'].getChoices(self)
        item = subject_choices.getTerm(data['subject'])
        subject = item.title
        email, suf = item.token.split('_')

        tpl = config.resources.get_template('contact.tpl')
        emailer = self.context.configuration.emailer
        # {'message': u'fsadff', 'email': u'*****@*****.**', 'subject': '1'}
        title = "Anfrage!".encode(ENCODING)
        #email = data['email']
        data['encoding'] = ENCODING
        data['subject'] = subject
        with config.emailer as sender:
            mail = config.emailer.prepare_from_template(
                tpl, email, title, data)
            sender(email, mail.as_string())
        self.flash('Ihre Anfrage wurde versendet.')
        self.redirect(self.application_url())
コード例 #23
0
class MessagesIndex(TableForm):
    name('index')
    context(MessagesRoot)
    layer(DefaultLayer)

    ignoreRequest = False
    ignoreContent = False
    postOnly = True
    mode = DISPLAY
    css_class = "table table-striped table-condensed"

    actions = Actions(DeleteEntry(_('Delete')))

    @property
    def tableFields(self):
        fields = Fields(IMessage)
        fields['id'].mode = 'link'
        return fields

    def getItems(self):
        return list(self.context)
コード例 #24
0
class EditForm(Form):
    """A very generic add form.
    """
    name('index')
    title(_(u"edit_message", default=u"Edit message"))
    require('zope.Public')
    context(Message)
    layer(DefaultLayer)
    
    ignoreContent = False
    ignoreRequest = True
    fields = Fields(IMessage)
    dataValidators = [InvariantsValidation]

    @property
    def action_url(self):
        return self.request.url

    def updateForm(self):
        gkdate.need()
        self.fields['enable'].strict_format = '%d/%m/%Y %H:%M'
        self.fields['disable'].strict_format = '%d/%m/%Y %H:%M'
        Form.updateForm(self)

    @action(_(u"Update"))
    def Update(self):
        data, errors = self.extractData()
        if errors:
            self.submissionError = errors
            return FAILURE

        session = self.context.__parent__.session
        apply_data_event(self.fields, self.context, data)
        session.add(self.context)

        send(_(u"Your contents get updated."))
        url = get_absolute_url(self.context, self.request)
        return SuccessMarker('Updated', True, url=url)
コード例 #25
0
class NavigationMenuViewlet(MenuViewlet):
    uvclight.viewletmanager(Navigation)
    uvclight.layer(IVBGTheme)
    uvclight.order(30)

    menu = menus.NavigationMenu
    template = get_template('navigationtemplate.cpt')

    id = u'globalmenuviewlet'

    def getNavigation(self):
        menu = menus.NavigationMenu(self.context, self.request, self.view)
        menu.update()
        return menu.entries

    def getUser(self):
        menu = menus.UserMenu(self.context, self.request, self.view)
        menu.update()
        return menu.entries

    def getRenderableItems(self):
       return list()

    def getQuicklinks(self):
        menu = menus.Quicklinks(self.context, self.request, self.view)
        menu.update()
        return menu.entries

    def getPersonal(self):
        menu = menus.PersonalMenu(self.context, self.request, self.view)
        menu.update()
        return menu.entries

    def isAuth(self):
        if hasattr(self.request, 'principal'):
            if self.request.principal.id != 'user.unauthenticated':
                return True
        return False
コード例 #26
0
class AddForm(Form):
    """A very generic add form.
    """
    name('add')
    title(_(u"add_message", default=_(u"Add message")))
    require('zope.Public')
    context(MessagesRoot)
    layer(DefaultLayer)
    
    fields = Fields(IMessage).omit('id')
    dataValidators = [InvariantsValidation]

    @property
    def action_url(self):
        return self.request.url

    def updateForm(self):
        gkdate.need()
        self.fields['enable'].strict_format = '%d/%m/%y %H:%M'
        self.fields['disable'].strict_format = '%d/%m/%y %H:%M'
        Form.updateForm(self)

    @action(_(u"Add"))
    def add(self):
        data, errors = self.extractData()
        if errors:
            return FAILURE

        if data['activation'] != ON_DATES:
            del data['enable']
            del data['disable']

        item = self.context.model(**data)
        self.context.add(item)
        send(_(u"Content created."))
        url = get_absolute_url(self.context, self.request)
        return SuccessMarker('Created', True, url=url)
コード例 #27
0
class AnonIndex(AnonIndex):
    uvclight.layer(IVBGTheme)
    template = get_template('anon_index_new.pt')
コード例 #28
0
class AccountHomepage(AccountHomepage):
    uvclight.layer(IVBGTheme)
    template = get_template('frontpage.pt')
コード例 #29
0
class Footer(uvclight.ViewletManager):
    uvclight.name('footer')
    uvclight.layer(IVBGTheme)
    uvclight.context(uvclight.Interface)
    uvclight.implements(managers.IFooter)
コード例 #30
0
class BelowContent(uvclight.ViewletManager):
    uvclight.name('below-body')
    uvclight.layer(IVBGTheme)
    uvclight.context(uvclight.Interface)
    uvclight.implements(managers.IBelowContent)