Esempio n. 1
0
    def message(self):
        params = self.request.form
        dataInici = None
        dataFi = None
        if 'dataInici' in params:
            dataInici = params['dataInici']
            dataInici = self.context.toLocalizedTime(dataInici)
        if 'dataFi' in params:
            dataFi = params['dataFi']
            dataFi = self.context.toLocalizedTime(dataFi)

        if dataInici and dataFi:
            return _(
                "El termini per realitzar sol·licituds per aquesta prestació és del $dataInici al ${dataFi}.",
                mapping={
                    "dataFi": dataFi,
                    "dataInici": dataInici
                })
        elif dataInici and not dataFi:
            return _(
                "El termini per realitzar sol·licituds per aquesta prestació comença el ${dataInici}.",
                mapping={"dataInici": dataInici})
        elif dataFi:
            return _(
                "El termini per realitzar sol·licituds per aquesta prestació va finalitzar el ${dataFi}.",
                mapping={"dataFi": dataFi})
        return _('No es poden realitzar sol·licituds per aquesta prestació.')
Esempio n. 2
0
class IGN6UrlHelperForm(Interface):
    """Define the fields for the link builder form"""

    equipResolutor = schema.TextLine(
                title=_(u"Equip resolutor"),
                description=_(u"Equip encarregat de resoldre el tiquet."),
                required=False
                )
    producte = schema.TextLine(
                title=_(u"Codi del producte/servei"),
                description=_(u"Identificador del producte/servei al gestor."),
                required=False
                )
    subservei = schema.TextLine(
                title=_(u"Codi del subservei"),
                description=_(u"Identificador del subservei al gestor."),
                required=False
                )
    dataInici = schema.Date(
                title=_(u"Data d'inici"),
                description=_(u"Data en la que es podrà comenaçar a sol·licitar el servei."),
                required=False
                )
    dataFi = schema.Date(
                title=_(u"Data fi"),
                description=_(u"Data del darrer dia que es podrà sol·licitar el servei."),
                required=False
                )
Esempio n. 3
0
class HelperAltaForm(form.Form, SOABrowserView):

    fields = field.Fields(IGN6UrlHelperForm)
    label = _(u"Nou enllaç d'alta de tiquet al GN6")
    description = _(
        u"Utilitza els camps per generar un nou enllaç que permeti crear un tiquet predefint al gestor de serveis."
    )

    ignoreContext = True

    def updateWidgets(self):
        # Comprovem que l'usuari té permisos d'edició a la carpeta arrel
        form.Form.updateWidgets(self)
        if not self.havePermissionAtRoot():
            self._error(_('No tens permissos per accedir aquest recurs'))
            self._redirect()

    @button.buttonAndHandler(_(u"Crea l'enllaç"))
    def creaLink(self, action):
        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return
        params = ''
        sep = ''
        for key in data:
            if data[key] is not None:
                params += sep + key + "=" + str(data[key])
                sep = '&'

        desti = 'gn6-helper-alta-view?' + params
        self.request.response.redirect(desti)
Esempio n. 4
0
    def message(self):
        params = self.request.form
        dataInici = None
        dataFi = None
        if 'dataInici' in params:
            dataInici = params['dataInici']
            dataInici = self.context.toLocalizedTime(dataInici)
        if 'dataFi' in params:
            dataFi = params['dataFi']
            dataFi = self.context.toLocalizedTime(dataFi)

        if dataInici and dataFi:
            return _("El termini per realitzar sol·licituds per aquesta prestació és del $dataInici al ${dataFi}.",
                mapping={"dataFi": dataFi, "dataInici": dataInici})
        elif dataInici and not dataFi:
            return _("El termini per realitzar sol·licituds per aquesta prestació comença el ${dataInici}.",
                mapping={"dataInici": dataInici})
        elif dataFi:
            return _("El termini per realitzar sol·licituds per aquesta prestació va finalitzar el ${dataFi}.",
                mapping={"dataFi": dataFi})
        return _('No es poden realitzar sol·licituds per aquesta prestació.')
Esempio n. 5
0
class IGN6DadesAltaForm(IGN6UrlHelperForm):
    """Define the fields where the user inputs the contents for a new tiquet"""

    assumpte = schema.TextLine(
                title=_(u"Assumpte"),
                description=_(u"Descripció curta de la raó de la sol·licitud."),
                )
    descripcio = schema.Text(
                title=_(u"Descripció"),
                description=_(u"Descripció detallada de la raó de la sol·licitud.")
                )

    annexe = schema.Bytes(
                title=_(u'Annexe'),
                description=_(u"Fitxer que s'afegirà com annexe a la sol·licitud. Podreu annexar més arxius, un cop creat el tiquet, des del gestor e-serveiscbl."),
                required=False
                )

    redirect = schema.Text(
                title=_(u"Redirect"),
                description=_(u"Url a la que es retornarà en cas d'èxit.")
                )
Esempio n. 6
0
 def updateWidgets(self):
     # Comprovem que l'usuari té permisos d'edició a la carpeta arrel
     form.Form.updateWidgets(self)
     if not self.havePermissionAtRoot():
         self._error(_('No tens permissos per accedir aquest recurs'))
         self._redirect()
Esempio n. 7
0
class DadesAltaForm(form.Form, AltaTiquet):

    #Routa de la pàgina de servei no disponible (mirar configure.zml)
    NO_DISPONIBLE = '/gn6-no-disponible'

    fields = field.Fields(IGN6DadesAltaForm)
    # Aquet formulari no té titol (label)
    label = _(u"Creació d'una nova sol·licitud")
    # TODO millora: desar el nom del gestor en una property
    description = _(
        u"Omple els camps amb la informació de la sol·licitud. A partir d'aquesta és crearà un nou tiquet al gestor e-serveiscbl"
    )

    ignoreContext = True

    def _getDateFromImputOrToday(self, id):
        """ Obte el paremetre id de la petició i el tracta com una data separada
         per '-', tal com la retorna z3c.form. Si no troba el parametre et retornar
         el valor per defecte z3c
         """
        if id in self.request.form:
            dts = self.request.form[id].split('-')
            data = date(int(dts[0]), int(dts[1]), int(dts[2]))
        else:
            data = date.today()
        return data

    def _getUriNoDisponible(self):
        uri = self.context.portal_url() + self.NO_DISPONIBLE
        # Volem filtrar els parametres de la petició i obtenir només les dates
        param_list = ['dataInici', 'dataFi']
        params = []
        for param in param_list:
            if param in self.request.form:
                params.append(param + '=' + self.request.form[param])
        # Unim els parametres de la llista amb &
        params = '&'.join(params)
        # Si hi havia algun parametre els afegim a la uri
        if params != '':
            uri += '?' + params
        return uri

    def updateWidgets(self):
        """ Ocultar camps a l'usuari final
        """
        # L'usuari esta identificat?
        if not self._get_user():
            came_from = self.request.getURL()
            self.request.response.redirect(self.context.portal_url() +
                                           '/login?came_from=' + came_from)
            return
        # Validació del periode
        dataInici = self._getDateFromImputOrToday('dataInici')
        dataFi = self._getDateFromImputOrToday('dataFi')
        if dataInici > date.today() or dataFi < date.today():
            # Redirigim a la pàgina no disponible
            self.request.response.redirect(self._getUriNoDisponible())
            return
        form.Form.updateWidgets(self)

        # Amagem alguns camps
        self.widgets['dataInici'].mode = interfaces.HIDDEN_MODE
        self.widgets['dataFi'].mode = interfaces.HIDDEN_MODE
        del self.widgets['dataInici']
        del self.widgets['dataFi']
        link_fields = ['equipResolutor', 'producte', 'subservei']
        for a in link_fields:
            if a in self.request.form:
                self.widgets[a].value = self.request.form[a]
            self.widgets[a].mode = interfaces.HIDDEN_MODE

        self.widgets['redirect'].mode = interfaces.HIDDEN_MODE
        if self.widgets['redirect'].value == '':
            self.widgets['redirect'].value = self._get_redirect()

    @button.buttonAndHandler(_(u"Envia"))
    def envia(self, action):
        data, errors = self.extractData()

        if errors:
            self.status = self.formErrorsMessage
            return

        annexe = None

        # Comprovem si hi ha cap annexe
        if data['annexe'] is not None:
            # Obtenim el nom del fitxer i el contingut
            annexe = {
                'name': util.extractFileName(self, 'form-widgets-annexe'),
                'data': data.pop('annexe')
            }

        # Cridem a l'alta
        result = self.alta(data, annexe)

        # Procesem resultats
        self.status = result['message']
        if result['code'] == self.OK:
            self.context.plone_utils.addPortalMessage(result['message'],
                                                      'info')
            self._redirect()
            return ''
Esempio n. 8
0
 def updateWidgets(self):
     # Comprovem que l'usuari té permisos d'edició a la carpeta arrel
     form.Form.updateWidgets(self)
     if not self.havePermissionAtRoot():
         self._error(_('No tens permissos per accedir aquest recurs'))
         self._redirect()