Exemplo n.º 1
0
 def getTipologiacontratto(self):
     """ ottengo le tipologie contrattuali"""
     tipologiecontrattuali = DisplayList()
     tipologiecontrattuali.add('', _(u'-- seleziona --'))
     for tipo in self.aq_parent.getElencotipologiecontrattuali():
         tipologiecontrattuali.add(tipo, tipo)
     return tipologiecontrattuali
Exemplo n.º 2
0
 def awardProceduresVocab(self):
     """ """
     award_procedures = DisplayList()
     award_procedures.add('', _(u'-- not specified --'))
     for award_procedure in self.aq_parent.getModalita_affidamento():
         award_procedures.add(award_procedure, award_procedure)
     return award_procedures
 def getProviderQuicksearch(self):
     """ return a DisplayList of all providers """
     provRes = self._validProviders()
     DL = DisplayList()
     for r in provRes:
         DL.add(r.UID, r.Title)
     return DL
Exemplo n.º 4
0
 def getDipartimento(self):
     """ ottengo la lista dei dipartimenti settata in pannello di configurazione formato DisplayList"""
     dipartimenti = DisplayList()
     dipartimenti.add('', _(u'-- seleziona --'))
     for dipartimento in self.aq_parent.getElencodipartimenti():
         dipartimenti.add(dipartimento, dipartimento)
     return dipartimenti
 def awardProceduresVocab(self):
     """ """
     award_procedures = DisplayList()
     award_procedures.add('', _(u'-- not specified --'))
     for award_procedure in self.aq_parent.getModalita_affidamento():
         award_procedures.add(award_procedure, award_procedure)
     return award_procedures
Exemplo n.º 6
0
 def getTipologiaprofilo(self):
     """ ottengo le tipologie di profilo in formato DisplayList"""
     tipiprofilo = DisplayList()
     tipiprofilo.add('', _(u'-- seleziona --'))
     for tipo in self.aq_parent.getElencotipologieprofilo():
         tipiprofilo.add(tipo, tipo)
     return tipiprofilo
 def officeVocab(self):
     """ """
     offices = DisplayList()
     offices.add('', _(u'-- not specified --'))
     for office in self.aq_parent.getElenco_uffici():
         offices.add(office, office)
     return offices
Exemplo n.º 8
0
 def getArchi(self):
     """ ottengo gli archi temporali in formato DisplayList"""
     archi = DisplayList()
     archi.add('', _(u'-- seleziona --'))
     for arco in self.aq_parent.getElencoarchi():
         archi.add(arco, arco)
     return archi
Exemplo n.º 9
0
    def getAtividades(self, id):
        listAtividade = DisplayList()
        if id != '':
            url = self.getURLWebservice()
            client = Client(url)
            filtro = client.factory.create('wsFiltros')

            if id == '1':
                self.idTipoServico = 1
                self.siglaTipoServico = "INFR"
            if id == '2':
                self.idTipoServico = 2
                self.siglaTipoServico = "CRTL"
            if id == '3':
                self.idTipoServico = 3
                self.siglaTipoServico = "SUST"
            if id == '4':
                self.idTipoServico = 4
                self.siglaTipoServico = "PLAN"

            filtro.tipoServico.id = self.idTipoServico
            filtro.tipoServico.sigla = self.siglaTipoServico
            search = client.service.consultarAtividades(filtro)

            if search:
                item = search.item
                for item in item:
                    listAtividade.add('', '')
                    atividade = item.listAtividade[0]
                    codAtividade = atividade.codigo
                    descAtividade = atividade.codigo + ' - ' + atividade.descricao
                    #self.descricaoAtividade = descAtividade
                    listAtividade.add(codAtividade, descAtividade)
            listAtividade = listAtividade.sortedByValue()
        return listAtividade
Exemplo n.º 10
0
    def getAtividades(self, id):
        listAtividade = DisplayList()
        if id != '':
            url = self.getURLWebservice()
            client = Client(url)
            filtro = client.factory.create('wsFiltros')

            if id == '1':
                self.idTipoServico = 1
                self.siglaTipoServico = "INFR"
            if id == '2':
                self.idTipoServico = 2
                self.siglaTipoServico = "CRTL"
            if id == '3':
                self.idTipoServico = 3
                self.siglaTipoServico = "SUST"
            if id == '4':
                self.idTipoServico = 4
                self.siglaTipoServico = "PLAN"

            filtro.tipoServico.id = self.idTipoServico
            filtro.tipoServico.sigla = self.siglaTipoServico
            search = client.service.consultarAtividades(filtro)

            if search:
                item = search.item
                for item in item:
                    listAtividade.add('', '')
                    atividade = item.listAtividade[0]
                    codAtividade = atividade.codigo
                    descAtividade = atividade.codigo + ' - ' + atividade.descricao
                    #self.descricaoAtividade = descAtividade
                    listAtividade.add(codAtividade, descAtividade)
            listAtividade = listAtividade.sortedByValue()
        return listAtividade
Exemplo n.º 11
0
 def officeVocab(self):
     """ """
     offices = DisplayList()
     offices.add('', _(u'-- not specified --'))
     for office in self.aq_parent.getElenco_uffici():
         offices.add(office, office)
     return offices
Exemplo n.º 12
0
    def vocNumeroAppuntamenti(self):
        """
        """
        res = DisplayList()
        for x in range(0, 21):
            res.add(str(x), str(x))

        return res
Exemplo n.º 13
0
 def getElencoTipologie(self):
     """ restituisce l'elenco delle tipologie sulla folder padre
     """
     elenco_tipologie = DisplayList()
     items = self.getPrenotazioniFolder().getTipologia()
     for item in items:
         elenco_tipologie.add(item, item)
     return elenco_tipologie
Exemplo n.º 14
0
 def getSubjectList(self):
     """See interface"""
     pc = getToolByName(self, 'portal_catalog')
     vals = pc.uniqueValuesFor('Subject')
     result = DisplayList()
     for v in vals:
         result.add(v, v)
     return result
Exemplo n.º 15
0
 def getElencoTipologie(self):
     """ restituisce l'elenco delle tipologie sulla folder padre
     """
     elenco_tipologie = DisplayList()
     items = self.getPrenotazioniFolder().getTipologia()
     for item in items:
         elenco_tipologie.add(item, item)
     return elenco_tipologie
Exemplo n.º 16
0
    def vocNumeroAppuntamenti(self):
        """
        """
        res = DisplayList()
        for x in range(0, 21):
            res.add(str(x), str(x))

        return res
Exemplo n.º 17
0
 def getSubjectList(self):
     """See interface"""
     pc = getToolByName(self, 'portal_catalog')
     vals = pc.uniqueValuesFor('Subject')
     result = DisplayList()
     for v in vals:
         result.add(v, v)
     return result
Exemplo n.º 18
0
    def getAvailableCategories(self):
        """
        """
        from Products.Archetypes.utils import DisplayList

        dl = DisplayList()
        dl.add("derniere-minute", u"Dernières minutes")
        dl.add("promotion", u"Promotion")
        return dl
Exemplo n.º 19
0
Arquivo: course.py Projeto: dtgit/ecec
 def getDivisionsVocab(self):
     """ Get the list of current divisions and return it as a vocabulary. """
     path = {'query':('/'), }
     brains = self.portal_catalog.searchResults(path=path, Type='Division', sort_on='sortable_title')
     dl = DisplayList()
     dl.add('None', 'None')
     for brain in brains:
         if brain.getId != self.aq_parent.id:
             dl.add(brain.getId, brain.Title)
     return dl
Exemplo n.º 20
0
 def getAvailableCategories(self):
     """ """
     pv = getToolByName(self, 'portal_vocabularies')
     VOCAB = pv.get('provider_category')
     if VOCAB:
         dl = VOCAB.getDisplayList(self)
     else:
         dl = DisplayList()
         dl.add('nocat', 'No specific category')
     return dl
    def getDisplayList(self, instance):
        """Returns a object of class DisplayList as defined in Products.Archetypes.utils.

        The instance of the content class is given as parameter.
        The list is sorted accordingly to the sortMethod chosen.
        """
        dl = DisplayList()
        vdict=self.getVocabularyDict(instance)
        for key in self.getSortedKeys():
            dl.add(key,vdict[key])
        return dl
Exemplo n.º 22
0
    def __call__(self, context):
        # do some hardcoding...
        seach_types = [('OSH_Link', _(u'OSH Link')), ('News Item', _(u'News')),
                       ('Event', _(u'Event')),
                       ('Publication', _(u'Publication')),
                       ('CaseStudy', _(u'Case Study'))]
        DL = DisplayList()
        for st in seach_types:
            DL.add(st[0], st[1])

        return DL
Exemplo n.º 23
0
    def getDisplayList(self, instance):
        """Returns a object of class DisplayList as defined in
        Products.Archetypes.utils.

        The instance of the content class is given as parameter.
        The list is sorted accordingly to the sortMethod chosen.
        """
        dl = DisplayList()
        vdict = self.getVocabularyDict(instance)
        for key in self.getSortedKeys(instance):
            dl.add(key, vdict[key])
        return dl
Exemplo n.º 24
0
 def getCategoria(self):
     catalog = getToolByName(self, 'portal_catalog')
     categorias = catalog(portal_type='MJCategoria',
                        sort_on='id',)
     listCategorias = DisplayList()
     if categorias:
         listCategorias.add('', '')
         for i in categorias:
             categoria = i.Title
             cor = i.cor_categoria
             listCategorias.add(cor, categoria)
     return listCategorias
Exemplo n.º 25
0
 def getNaceList(self):
     """See interface"""
     result = DisplayList()
     pv = getToolByName(self, 'portal_vocabularies')
     VOCAB = getattr(pv, 'NACE', None)
     if not VOCAB:
         return result
     vd = VOCAB.getVocabularyDict(self)
     result = DisplayList()
     for k in vd.keys():
         result.add(k, vd[k][0])
     return result
Exemplo n.º 26
0
 def getNaceList(self):
     """See interface"""
     result = DisplayList()
     pv = getToolByName(self, 'portal_vocabularies')
     VOCAB = getattr(pv, 'NACE', None)
     if not VOCAB:
         return result
     vd = VOCAB.getVocabularyDict(self)
     result = DisplayList()
     for k in vd.keys():
         result.add(k, vd[k][0])
     return result
Exemplo n.º 27
0
    def getCountryList(self):
        """See interface"""
        result = DisplayList()
        pv = getToolByName(self, 'portal_vocabularies')
        VOCAB = getattr(pv, 'Country', None)
        if not VOCAB:
            return result
        vd = VOCAB.getVocabularyDict(self)

        for k in vd.keys():
            result.add('_%s' % k, '-- %s --' % vd[k][0])
            for r in vd[k][1].keys():
                result.add(r, vd[k][1][r][0])
        return result
Exemplo n.º 28
0
 def getSearchKeywordsFromResults(self, results):
     keywords = self.getUniqueKeywordsFromResults(results)
     results_len = len(results)
     for key, count in keywords.items():
         if count == results_len:
             del keywords[key]
     keywords = keywords.keys()
     keywords.sort()
     result = DisplayList()
     if len(keywords):
         result.add('', '[no keywords]', msgid='label_no_keywords')
     for item in keywords:
         result.add(item, item)
     return result
Exemplo n.º 29
0
    def getCountryList(self):
        """See interface"""
        result = DisplayList()
        pv = getToolByName(self, 'portal_vocabularies')
        VOCAB = getattr(pv, 'Country', None)
        if not VOCAB:
            return result
        vd = VOCAB.getVocabularyDict(self)

        for k in vd.keys():
            result.add('_%s' % k, '-- %s --' % vd[k][0])
            for r in vd[k][1].keys():
                result.add(r, vd[k][1][r][0])
        return result
Exemplo n.º 30
0
 def getCategoria(self):
     catalog = getToolByName(self, 'portal_catalog')
     categorias = catalog(
         portal_type='MJCategoria',
         sort_on='id',
     )
     listCategorias = DisplayList()
     if categorias:
         listCategorias.add('', '')
         for i in categorias:
             categoria = i.Title
             cor = i.cor_categoria
             listCategorias.add(cor, categoria)
     return listCategorias
 def getSearchKeywordsFromResults(self, results):
     keywords = self.getUniqueKeywordsFromResults(results)
     results_len = len(results)
     for key, count in keywords.items():
         if count == results_len:
             del keywords[key]
     keywords = keywords.keys()
     keywords.sort()
     result = DisplayList()
     if len(keywords):
         result.add('', '[no keywords]', msgid='label_no_keywords')
     for item in keywords:
         result.add(item, item)
     return result
Exemplo n.º 32
0
    def __call__(self, context):
        pc = getToolByName(context, 'portal_catalog')
        pvt = getToolByName(context, 'portal_vocabularies', '')
        VOCAB = getattr(pvt, 'Subcategory', '')
        vd = VOCAB.getVocabularyDict(context)
        vocab_keys = vd.keys()
        subjects = pc.uniqueValuesFor('Subject')

        # get translation of subject from the vocabulary Subcategory
        DL = DisplayList()
        for subj in subjects:
            if subj in vocab_keys:
                trans = vd[subj][0] or subj
                DL.add(subj, trans)
        return DL
Exemplo n.º 33
0
 def getVocabulary(self):
     """return the possible answers formatted as vocabulary"""
     question = self.getCurrentQuestion()
     if (question):
         qr = self.getQuestionResultForQuestion(question)
         suggestedAnswerIds = (qr.getSuggestedAnswer())
         idl = DisplayList()
         ans = question.getAnswerDisplay().values()
    
         for id in suggestedAnswerIds:
             idl.add(id, ans[int(id)])
         return Vocabulary(idl, self, None)
     else:
         '''bad error no open question'''
         return ''
Exemplo n.º 34
0
 def getCategoria(self):
     catalog = getToolByName(self, 'portal_catalog')
     categorias = catalog(portal_type='SimpleVocabularyTerm',
                          sort_on='id',
                          review_state='published')
     listCategorias = DisplayList()
     if categorias:
         listCategorias.add('', '')
         for i in categorias:
             categoria = i.Title
             id = i.id
             #cor = i.cor_categoria
             #listCategorias.add(cor, categoria)
             listCategorias.add(id, categoria)
     return listCategorias
Exemplo n.º 35
0
    def vocOreInizio(self):
        """
        """
        hours = ['07', '08', '09', '10', '11', '12', '13',
                 '14', '15', '16', '17', '18', '19', '20']
        minutes = ['00', '15', '30', '45']

        res = DisplayList()
        res.add('0', '--:--')
        for hour in hours:
            for minute in minutes:
                time = hour + ':' + minute
                index_time = hour + minute
                res.add(index_time, time)

        return res
Exemplo n.º 36
0
    def vocOreInizio(self):
        """
        """
        hours = [
            '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17',
            '18', '19', '20'
        ]
        minutes = ['00', '15', '30', '45']

        res = DisplayList()
        res.add('', '--:--')
        for hour in hours:
            for minute in minutes:
                time = hour + ':' + minute
                index_time = hour + minute
                res.add(index_time, time)

        return res
 def getSiteMembers(self, *args, **kw):
     """
     For use when members are authors, return a DisplayList of members
     Alternative to 'getMembers' if 'no reference' must not be empty
     (to work around a bug in the 'Records' packager)
     """
     pas=getToolByName(self.context, "acl_users")
     results=pas.searchUsers(**(True and dict(sort_by='userid') ))
     results = dict([(result["userid"], result) for result in results]).values()
     dl = DisplayList()
     #zzz todo: Make this translateable, how?
     dl.add('',"Select a site member")
     for r in results:
         title = r['title']
         if title=="":
             title=r['userid']
         dl.add(r['userid'],title)
     return dl
Exemplo n.º 38
0
 def getSiteMembers(self, *args, **kw):
     """
     For use when members are authors, return a DisplayList of members
     Alternative to 'getMembers' if 'no reference' must not be empty
     (to work around a bug in the 'Records' packager)
     """
     pas = getToolByName(self.context, "acl_users")
     results = pas.searchUsers(**(True and dict(sort_by='userid')))
     results = dict([(result["userid"], result)
                     for result in results]).values()
     dl = DisplayList()
     #zzz todo: Make this translateable, how?
     dl.add('', "Select a site member")
     for r in results:
         title = r['title']
         if title == "":
             title = r['userid']
         dl.add(r['userid'], title)
     return dl
Exemplo n.º 39
0
 def normVocabulary(self):
     normTypes = DisplayList()
     normTypes.add('', _(u'-- not specified --'))
     for normType in self.aq_parent.getNorma_o_titolo():
         normTypes.add(normType, normType)
     normTypes.add('other', _(u'other'))
     return normTypes
Exemplo n.º 40
0
 def normVocabulary(self):
     normTypes = DisplayList()
     normTypes.add('', _(u'-- not specified --'))
     for normType in self.aq_parent.getNorma_o_titolo():
         normTypes.add(normType, normType)
     normTypes.add('other', _(u'other'))
     return normTypes
Exemplo n.º 41
0
 def getComplexidades(self, id):
     listComplexidade = DisplayList()
     if id != '' and id != 'null':
         try:
             url = self.getURLWebservice()
             client = Client(url)
             filtro = client.factory.create('wsFiltros')
             filtro.tipoServico.id = self.idTipoServico
             filtro.tipoServico.sigla = self.siglaTipoServico
             filtro.codigoAtividade = id
             search = client.service.consultarAtividades(filtro)
             complexidades = search.item[0].listAtividade[0].listComplexidade
             if complexidades.__len__() > 0:
                 for complexidade in complexidades:
                     quantidade = str(complexidade.quantidade)
                     descricao = getattr(complexidade, 'descricao', '')
                     nome = complexidade.nome + ' - ' + descricao + ' - ' + quantidade + 'HST'
                     listComplexidade.add(quantidade, nome)
             return listComplexidade
         except:
             return listComplexidade
     return listComplexidade
Exemplo n.º 42
0
 def getComplexidades(self, id):
     listComplexidade = DisplayList()
     if id != '' and id != 'null':
         try:
             url = self.getURLWebservice()
             client = Client(url)
             filtro = client.factory.create('wsFiltros')
             filtro.tipoServico.id = self.idTipoServico
             filtro.tipoServico.sigla = self.siglaTipoServico
             filtro.codigoAtividade = id
             search = client.service.consultarAtividades(filtro)
             complexidades = search.item[0].listAtividade[
                 0].listComplexidade
             if complexidades.__len__() > 0:
                 for complexidade in complexidades:
                     quantidade = str(complexidade.quantidade)
                     descricao = getattr(complexidade, 'descricao', '')
                     nome = complexidade.nome + ' - ' + descricao + ' - ' + quantidade + 'HST'
                     listComplexidade.add(quantidade, nome)
             return listComplexidade
         except:
             return listComplexidade
     return listComplexidade
Exemplo n.º 43
0
class FormGenTool(UniqueObject, SimpleItem):
    """ FormGenTool manages site-wide PloneFormGen settings """

    id = 'formgen_tool'
    meta_type= 'PloneFormGen Tool'
    title = 'PloneFormGen Settings'
    plone_tool = True
    security = ClassSecurityInfo()


    def __init__(self):
        self._initStringValidators()


    security.declarePrivate('_initStringValidators')
    def _initStringValidators(self):
        """ Initialize string validators from config
        """

        self.stringValidators = {}
        self.stringValidatorsDL = DisplayList()
        self.stringValidatorsDL.add('vocabulary_none_text', u'None')

        for kwa in config.stringValidators:
            id = kwa['id']

            title = kwa.get('title', id)
            i18nid = kwa.get('i18nid', title)

            errmsg = kwa.get('errmsg', 'Validation failed: %s' % id)
            errid = kwa.get('errid', errmsg)
            errmsg = _(errid, errmsg)

            validatorId = 'pfgv_%s' % id
            self.stringValidators[id] = {
                'title'  : title,
                'i18nid' : i18nid,
                'errmsg' : errmsg,
                'errid'  : errid,
                # 'revalid': revalid,
                'id'     : validatorId,
                }

            self.stringValidatorsDL.add( id, title, msgid=i18nid )


    def getStringValidatorsDL(self):
        """ return a display list of string validators
        """

        if not getattr(self, 'stringValidators', False):
            # on-demand migration from PFG < 1.2
            self._initStringValidators()

        # self._initStringValidators()

        return self.stringValidatorsDL


    security.declarePrivate('getFromPropSheet')
    def getFromPropSheet(self, propid, default):
        """ find a property value in the property sheet
            with a fallback """

        res = default
        ppTool = getToolByName(self, 'portal_properties')
        psheet = getattr(ppTool, config.PROPERTY_SHEET_NAME, None)
        if psheet is not None:
            res = psheet.getProperty(propid, res)
        return res


    security.declareProtected(ManagePortal, 'setDefault')
    def setDefault(self, propid, default):
        """ change a property in the portal_properties sheet """

        ppTool = getToolByName(self, 'portal_properties')
        psheet = getattr(ppTool, config.PROPERTY_SHEET_NAME)
        psheet.manage_changeProperties( **{propid : default} )


    security.declareProtected(ManagePortal, 'getPfgPermissions')
    def getPfgPermissions(self):
        """ get permissions in use by PFG """

        return self.getFromPropSheet('permissions_used', config.pfgPermitList)


    security.declareProtected(ModifyPortalContent, 'getDefaultMailTemplateBody')
    def getDefaultMailTemplateBody(self):
        """ get the site's default mail adapter mail body template """

        return self.getFromPropSheet('mail_template', config.DEFAULT_MAILTEMPLATE_BODY)


    security.declareProtected(ModifyPortalContent, 'getDefaultMailRecipient')
    def getDefaultMailRecipient(self):
        """ get the site's default mail adapter recipient """

        return self.getFromPropSheet('mail_recipient_email', '')


    security.declareProtected(ModifyPortalContent, 'getDefaultMailCC')
    def getDefaultMailCC(self):
        """ get the site's default mail cc """

        return self.getFromPropSheet('mail_cc_recipients', [])


    security.declareProtected(ModifyPortalContent, 'getDefaultMailBCC')
    def getDefaultMailBCC(self):
        """ get the site's default mail cc """

        return self.getFromPropSheet('mail_bcc_recipients', [])


    security.declareProtected(ModifyPortalContent, 'getDefaultMailRecipientName')
    def getDefaultMailRecipientName(self):
        """ get the site's default mail adapter recipient name """

        return self.getFromPropSheet('mail_recipient_name', '')


    security.declareProtected(ModifyPortalContent, 'getDefaultMailBodyType')
    def getDefaultMailBodyType(self):
        """ get the site's default mail adapter mail body template """

        return self.getFromPropSheet('mail_body_type', 'html')


    security.declareProtected(ModifyPortalContent, 'getCSVDelimiter')
    def getCSVDelimiter(self):
        """ get the site's default csv delimiter for data export """

        return self.getFromPropSheet('csv_delimiter', ',')


    security.declareProtected(ModifyPortalContent, 'getDefaultMailXInfo')
    def getDefaultMailXInfo(self):
        """ get the site's default mail adapter xinfo headers """

        return self.getFromPropSheet('mail_xinfo_headers', config.XINFO_DEFAULT)


    security.declareProtected(ModifyPortalContent, 'getDefaultMailAddHdrs')
    def getDefaultMailAddHdrs(self):
        """ get the site's default mail adapter additional headers """

        return self.getFromPropSheet('mail_add_headers', [])


    security.declareProtected(ManagePortal, 'rolesForPermission')
    def rolesForPermission(self, permit):
        """
         return list of roles for permission,
         ready to use in permissions configlet
        """

        portal=getToolByName(self, 'portal_url').getPortalObject()

        livePermits = rolesForPermissionOn(permit, portal)
        myPermits = list(self.getPfgPermissions())
        index = myPermits.index(permit)
        rpos = 0
        res = []
        for role in portal.rolesOfPermission(permit):
            name = role['name']
            if name not in ['Anonymous', 'Authenticated']:
                id = "p%dr%d" % (index, rpos)
                if name in livePermits:
                    checked = 'CHECKED'
                else:
                    checked = None
                res.append( {'label':name, 'id':id, 'checked':checked,} )
            rpos += 1
        return res


    security.declareProtected(ManagePortal, 'setRolePermits')
    def setRolePermits(self, REQUEST):
        """
        Set role/permissions on portal based on REQUEST.form.
        For use in configlet.
        """

        portal=getToolByName(self, 'portal_url').getPortalObject()
        permits = list(self.getPfgPermissions())

        # build list of roles selected in form
        for index in range(0, len(permits)):
            permit = permits[index]
            # look to see if there is a marker for permit
            # in the form. That makes sure we don't set unintended
            # permissions.
            if REQUEST.form.get(permit, '0') == '1':
                allRoles = portal.rolesOfPermission(permit)
                rpos = 0
                roles = []
                for rpos in range(0, len(allRoles)):
                    id = "p%dr%d" % (index, rpos)
                    if REQUEST.form.get(id, '0') == '1':
                        roles.append(allRoles[rpos]['name'])
                # set role permissions
                portal.manage_permission(permit, roles)
Exemplo n.º 44
0
from Products.Archetypes.utils import DisplayList

ADD_CONTENT_PERMISSION = 'Add FinanceFields content'
PROJECTNAME = "FinanceFields"
GLOBALS = globals()
I18N_DOMAIN = 'plone_accounting'
SKINS_DIR = 'skins'

from AccessControl import allow_module
allow_module('Products.FinanceFields.config')
allow_module('Products.FinanceFields.Money')

from Currency import CURRENCIES

l = DisplayList()
for cur in CURRENCIES.values():
    symbol = cur.int_currency_symbol
    l.add(symbol, symbol, symbol)
l._itor.sort()
CURRENCY_DISPLAY_LIST = l
Exemplo n.º 45
0
class FormGenTool(UniqueObject, SimpleItem): 
    """ FormGenTool manages site-wide PloneFormGen settings """ 

    id = 'formgen_tool'
    meta_type= 'PloneFormGen Tool' 
    title = 'PloneFormGen Settings'
    plone_tool = True
    security = ClassSecurityInfo()
    

    def __init__(self):
        self._initStringValidators()

    
    security.declarePrivate('_initStringValidators')
    def _initStringValidators(self):
        """ Initialize string validators from config
        """

        self.stringValidators = {}
        self.stringValidatorsDL = DisplayList()
        self.stringValidatorsDL.add('vocabulary_none_text', u'None')

        for kwa in config.stringValidators:
            id = kwa['id']    

            title = kwa.get('title', id)
            i18nid = kwa.get('i18nid', title)

            errmsg = kwa.get('errmsg', 'Validation failed: %s' % id)
            errid = kwa.get('errid', errmsg)
            if HAS_PLONE25:
                errmsg = _(errid, errmsg)

            validatorId = 'pfgv_%s' % id
            self.stringValidators[id] = {
                'title'  : title,
                'i18nid' : i18nid,
                'errmsg' : errmsg,
                'errid'  : errid,
                # 'revalid': revalid,
                'id'     : validatorId,
                }
            
            self.stringValidatorsDL.add( id, title, msgid=i18nid )


    def getStringValidatorsDL(self):
        """ return a display list of string validators
        """

        if not getattr(self, 'stringValidators', False):
            # on-demand migration from PFG < 1.2
            self._initStringValidators()

        # self._initStringValidators()

        return self.stringValidatorsDL


    security.declarePrivate('getFromPropSheet')
    def getFromPropSheet(self, propid, default):
        """ find a property value in the property sheet
            with a fallback """
    
        res = default
        ppTool = getToolByName(self, 'portal_properties')       
        psheet = getattr(ppTool, config.PROPERTY_SHEET_NAME, None)
        if psheet is not None:
            res = psheet.getProperty(propid, res)
        return res


    security.declareProtected(ManagePortal, 'setDefault')
    def setDefault(self, propid, default):
        """ change a property in the portal_properties sheet """
        
        ppTool = getToolByName(self, 'portal_properties')       
        psheet = getattr(ppTool, config.PROPERTY_SHEET_NAME)
        psheet.manage_changeProperties( **{propid : default} )        

        
    security.declareProtected(ManagePortal, 'getPfgPermissions')
    def getPfgPermissions(self):
        """ get permissions in use by PFG """

        return self.getFromPropSheet('permissions_used', config.pfgPermitList)


    security.declareProtected(ModifyPortalContent, 'getDefaultMailTemplateBody')
    def getDefaultMailTemplateBody(self):
        """ get the site's default mail adapter mail body template """
        
        return self.getFromPropSheet('mail_template', config.DEFAULT_MAILTEMPLATE_BODY)


    security.declareProtected(ModifyPortalContent, 'getDefaultMailRecipient')
    def getDefaultMailRecipient(self):
        """ get the site's default mail adapter recipient """
        
        return self.getFromPropSheet('mail_recipient_email', '')


    security.declareProtected(ModifyPortalContent, 'getDefaultMailCC')
    def getDefaultMailCC(self):
        """ get the site's default mail cc """
        
        return self.getFromPropSheet('mail_cc_recipients', [])


    security.declareProtected(ModifyPortalContent, 'getDefaultMailBCC')
    def getDefaultMailBCC(self):
        """ get the site's default mail cc """
        
        return self.getFromPropSheet('mail_bcc_recipients', [])


    security.declareProtected(ModifyPortalContent, 'getDefaultMailRecipientName')
    def getDefaultMailRecipientName(self):
        """ get the site's default mail adapter recipient name """
        
        return self.getFromPropSheet('mail_recipient_name', '')


    security.declareProtected(ModifyPortalContent, 'getDefaultMailBodyType')
    def getDefaultMailBodyType(self):
        """ get the site's default mail adapter mail body template """
        
        return self.getFromPropSheet('mail_body_type', 'html')


    security.declareProtected(ModifyPortalContent, 'getDefaultMailXInfo')
    def getDefaultMailXInfo(self):
        """ get the site's default mail adapter xinfo headers """
        
        return self.getFromPropSheet('mail_xinfo_headers', config.XINFO_DEFAULT)


    security.declareProtected(ModifyPortalContent, 'getDefaultMailAddHdrs')
    def getDefaultMailAddHdrs(self):
        """ get the site's default mail adapter additional headers """
        
        return self.getFromPropSheet('mail_add_headers', [])


    security.declareProtected(ManagePortal, 'rolesForPermission')
    def rolesForPermission(self, permit):
        """
         return list of roles for permission,
         ready to use in permissions configlet
        """

        portal=getToolByName(self, 'portal_url').getPortalObject()

        livePermits = rolesForPermissionOn(permit, portal)
        myPermits = list(self.getPfgPermissions())
        index = myPermits.index(permit)
        rpos = 0
        res = []
        for role in portal.rolesOfPermission(permit):
            name = role['name']
            if name not in ['Anonymous', 'Authenticated']:
                id = "p%dr%d" % (index, rpos)
                if name in livePermits:
                    checked = 'CHECKED'
                else:
                    checked = None
                res.append( {'label':name, 'id':id, 'checked':checked,} )
            rpos += 1
        return res


    security.declareProtected(ManagePortal, 'setRolePermits')
    def setRolePermits(self, REQUEST):
        """
        Set role/permissions on portal based on REQUEST.form.
        For use in configlet.
        """
        
        portal=getToolByName(self, 'portal_url').getPortalObject()
        permits = list(self.getPfgPermissions())

        # build list of roles selected in form
        for index in range(0, len(permits)):
            permit = permits[index]
            # look to see if there is a marker for permit
            # in the form. That makes sure we don't set unintended
            # permissions.
            if REQUEST.form.get(permit, '0') == '1':
                allRoles = portal.rolesOfPermission(permit)
                rpos = 0
                roles = []
                for rpos in range(0, len(allRoles)):
                    id = "p%dr%d" % (index, rpos)
                    if REQUEST.form.get(id, '0') == '1':
                        roles.append(allRoles[rpos]['name'])
                # set role permissions
                portal.manage_permission(permit, roles)            
Exemplo n.º 46
0
    def getGeoCoverageVocabulary(self, content_instance=None, field=None):
        """ Get geo coverage vocabulary
        """
        vocab = getUtility(IVocabularyFactory,
                           name=u"eea.soer.vocab.NUTSRegions")
        indent = u''
        parent = []
        displayList = DisplayList()

        displayList.add(u'', u'Select a region (required)')
        displayList.add(u'bio', u'-- Bio geo regions --')
        displayList.add(u'alpine', u'Alpine')
        displayList.add(u'carpathian', u'Carpathian')
        displayList.add(u'baltic', u'Baltic')
        displayList.add(u'countries', u'-- Countries --')
        for region in vocab.countries():
            current = region.subject.strip()
            displayList.add(current, region.nuts_name.first.strip())

        displayList.add(u'nuts', u'-- NUTS Regions --')
        for region in vocab.resources():
            current = region.subject.strip()
            if not current.startswith(
                    'http://rdfdata.eionet.europa.eu/ramon/nuts2008/'):
                continue

            if region.nuts_partOf.first:
                if region.nuts_partOf.first.subject.strip() not in parent:
                    indent += u'.'
                    parent.append(region.nuts_partOf.first.subject.strip())
                else:
                    while region.nuts_partOf.first.subject.strip() != \
                                                                  parent[-1]:
                        parent = parent[:-1]
                        indent = indent[:-1]

            elif parent:
                indent = u''
                parent = []
            title = u'%s %s' % (indent, region.nuts_name.first.strip())
            displayList.add(current, title)

        return displayList
Exemplo n.º 47
0
    def getGeoCoverageVocabulary(self, content_instance=None, field=None):
        """ Get geo coverage vocabulary
        """
        vocab = getUtility(IVocabularyFactory,
                           name=u"eea.soer.vocab.NUTSRegions")
        indent = u''
        parent = []
        displayList = DisplayList()

        displayList.add(u'', u'Select a region (required)')
        displayList.add(u'bio', u'-- Bio geo regions --')
        displayList.add(u'alpine', u'Alpine')
        displayList.add(u'carpathian', u'Carpathian')
        displayList.add(u'baltic', u'Baltic')
        displayList.add(u'countries', u'-- Countries --')
        for region in vocab.countries():
            current = region.subject.strip()
            displayList.add(current, region.nuts_name.first.strip())

        displayList.add(u'nuts', u'-- NUTS Regions --')
        for region in vocab.resources():
            current = region.subject.strip()
            if not current.startswith(
                          'http://rdfdata.eionet.europa.eu/ramon/nuts2008/'):
                continue

            if region.nuts_partOf.first:
                if region.nuts_partOf.first.subject.strip() not in parent:
                    indent += u'.'
                    parent.append(region.nuts_partOf.first.subject.strip())
                else:
                    while region.nuts_partOf.first.subject.strip() != \
                                                                  parent[-1]:
                        parent = parent[:-1]
                        indent = indent[:-1]

            elif parent:
                indent = u''
                parent = []
            title = u'%s %s' % (indent, region.nuts_name.first.strip())
            displayList.add(current, title)

        return displayList
Exemplo n.º 48
0
 def getAvailableCountries(self):
     """ """
     dl = DisplayList()
     for k, v in AVAILABLE_COUNTRIES:
         dl.add(k, v)
     return dl
Exemplo n.º 49
0
def create_dl(elems):
    dl = DisplayList()
    for elem in elems:
        dl.add(key=elem[0], value=elem[1], msgid=elem[1])
    return dl
Exemplo n.º 50
0
 def amountTypeVocab(self):
     amountTypes = DisplayList()
     amountTypes.add('', _(u'-- not specified --'))
     for amountType in self.aq_parent.getNatura_importo():
         amountTypes.add(amountType, amountType)
     return amountTypes
Exemplo n.º 51
0
 def amountTypeVocab(self):
     amountTypes = DisplayList()
     amountTypes.add('', _(u'-- not specified --'))
     for amountType in self.aq_parent.getNatura_importo():
         amountTypes.add(amountType, amountType)
     return amountTypes