Exemplo n.º 1
0
    def __call__(self, context):
        terms = []
        terms.append(SimpleVocabulary.createTerm(u'Català', 'ca', _(u'Català')))
        terms.append(SimpleVocabulary.createTerm(u'Castellà', 'es', _(u'Español')))
        terms.append(SimpleVocabulary.createTerm(u'English', 'en', _(u'English')))

        return SimpleVocabulary(terms)
Exemplo n.º 2
0
    def __call__(self, context):
        terms = []
        terms.append(SimpleVocabulary.createTerm(u'Català', 'ca',
                                                 _(u'Català')))
        terms.append(
            SimpleVocabulary.createTerm(u'Castellà', 'es', _(u'Español')))
        terms.append(
            SimpleVocabulary.createTerm(u'English', 'en', _(u'English')))

        return SimpleVocabulary(terms)
Exemplo n.º 3
0
class ITableQuickLinks(form.Schema):
    language = schema.Choice(
        title=_(u'Language'),
        required=True,
        vocabulary=u'plone.app.vocabularies.SupportedContentLanguages')
    text = schema.TextLine(title=_(u'Text'), required=False)
    link = schema.TextLine(title=_(u'Link'), required=False)
    icon = schema.TextLine(title=_(u'Font Awesome Icon'), required=False)
    new_window = schema.Bool(title=_(u'New window'),
                             required=False,
                             default=True)
Exemplo n.º 4
0
    def handleSave(self, action):
        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return
        self.applyChanges(data)

        if data.get('nonvisibles', False):
            """ Make users invisible in searches """
            maxclient, settings = getUtility(IMAXClient)()
            maxclient.setActor(settings.max_restricted_username)
            maxclient.setToken(settings.max_restricted_token)

            current_vips = maxclient.admin.security.get()
            current_vips = current_vips.get('roles').get('NonVisible', [])

            un_vip = [
                a for a in current_vips if a not in data.get('nonvisibles')
            ]
            for user in un_vip:
                maxclient.admin.security.roles['NonVisible'].users[
                    user].delete()

            make_vip = [
                vip for vip in data.get('nonvisibles')
                if vip not in current_vips
            ]

            for user in make_vip:
                maxclient.admin.security.roles['NonVisible'].users[user].post()

        if data.get('activate_sharedwithme', True):
            if api.portal.get_registry_record(
                    'genweb.controlpanel.core.IGenwebCoreControlPanelSettings.elasticsearch'
            ) is not None:
                portal = api.portal.get()
                if portal.portal_actions.object.local_roles.visible is False:
                    portal.portal_actions.object.local_roles.visible = True
                    transaction.commit()
            else:
                IStatusMessage(self.request).addStatusMessage(
                    _(u'Has marcat el comparteix pero falta la url del elasticsearch'
                      ), 'info')
        else:
            portal = api.portal.get()
            if portal.portal_actions.object.local_roles.visible is True:
                portal.portal_actions.object.local_roles.visible = False
                transaction.commit()

        IStatusMessage(self.request).addStatusMessage(_(u'Changes saved'),
                                                      'info')
        self.context.REQUEST.RESPONSE.redirect('@@ulearn-controlpanel')
Exemplo n.º 5
0
    def __call__(self, context):
        terms = []
        terms.append(
            SimpleVocabulary.createTerm(u'Darreres activitats',
                                        'darreres_activitats',
                                        _(u'Darreres activitats')))
        terms.append(
            SimpleVocabulary.createTerm(u'Activitats mes valorades',
                                        'activitats_mes_valorades',
                                        _(u'Activitats mes valorades')))
        terms.append(
            SimpleVocabulary.createTerm(u'Activitats destacades',
                                        'activitats_destacades',
                                        _(u'Activitats destacades')))

        return SimpleVocabulary(terms)
Exemplo n.º 6
0
    def render(self):
        pc = api.portal.get_tool(name='portal_catalog')
        communities = pc.searchResults(portal_type='ulearn.community')
        for community in communities:
            community = community.getObject()
            if 'discussion' not in community.objectIds():
                # Create the default discussion container and set title
                discussion = createContentInContainer(community, 'Folder', title='discussion', checkConstraints=False)
                discussion.setTitle(community.translate(_(u'Discussion')))

                discussion.setLayout('discussion_folder_view')

                alsoProvides(discussion, IDiscussionFolder)

                behavior = ISelectableConstrainTypes(discussion)
                behavior.setConstrainTypesMode(1)
                behavior.setLocallyAllowedTypes(('ulearn.discussion', 'Folder'))
                behavior.setImmediatelyAddableTypes(('ulearn.discussion', 'Folder'))

                # Blacklist the right column portlets on discussion
                right_manager = queryUtility(IPortletManager, name=u'plone.rightcolumn')
                blacklist = getMultiAdapter((discussion, right_manager), ILocalPortletAssignmentManager)
                blacklist.setBlacklistStatus(CONTEXT_CATEGORY, True)

                discussion.reindexObject()

                logger.info('Created discussion folder in {}'.format(community.absolute_url()))

        return 'Done.'
Exemplo n.º 7
0
 def get_communities(self):
     """ Gets the communities to show in the stats selectize dropdown
     """
     pc = api.portal.get_tool('portal_catalog')
     all_communities = [{'hash': 'all', 'title': _(u'Todas las comunidades')}]
     all_communities += [{'hash': community.community_hash, 'title': community.Title} for community in pc.searchResults(portal_type='ulearn.community')]
     return json.dumps(all_communities)
Exemplo n.º 8
0
    def handleSave(self, action):
        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return
        self.applyChanges(data)

        if data.get('nonvisibles', False):
            """ Make users invisible in searches """
            maxclient, settings = getUtility(IMAXClient)()
            maxclient.setActor(settings.max_restricted_username)
            maxclient.setToken(settings.max_restricted_token)

            current_vips = maxclient.admin.security.get()
            current_vips = current_vips.get('roles').get('NonVisible', [])

            un_vip = [a for a in current_vips if a not in data.get('nonvisibles')]
            for user in un_vip:
                maxclient.admin.security.roles['NonVisible'].users[user].delete()

            make_vip = [vip for vip in data.get('nonvisibles') if vip not in current_vips]

            for user in make_vip:
                maxclient.admin.security.roles['NonVisible'].users[user].post()

        if data.get('activate_sharedwithme', True):
            if api.portal.get_registry_record('genweb.controlpanel.core.IGenwebCoreControlPanelSettings.elasticsearch') is not None:
                portal = api.portal.get()
                if portal.portal_actions.object.local_roles.visible is False:
                    portal.portal_actions.object.local_roles.visible = True
                    transaction.commit()
            else:
                IStatusMessage(self.request).addStatusMessage(_(u'Has marcat el comparteix pero falta la url del elasticsearch'),
                                                              'info')
        else:
            portal = api.portal.get()
            if portal.portal_actions.object.local_roles.visible is True:
                portal.portal_actions.object.local_roles.visible = False
                transaction.commit()

        IStatusMessage(self.request).addStatusMessage(_(u'Changes saved'), 'info')
        self.context.REQUEST.RESPONSE.redirect('@@ulearn-controlpanel')
Exemplo n.º 9
0
class IReservaBBB(form.Schema):
    """ Form for BBB reservation - Paràmetres: Servidor, Data inici, Durada,
        Descripció, Creador, Carrega, Invitats Convidats, Invitats Moderadors,
        Language
        Retorna: ID Reserva (permesa), 0 (no permesa).

        http://corronco.upc.edu:8088/webservices/addReservationNotification.php?
        servidor =corronco&inici=2013-04-02-13&durada=13&carrega=10&descripcio=D
        escripcio&owner=u [email protected]&invite_rw=moderator1%40upcnet
        .es%2Cmoderator2%40upcnet.es&invite_ro=invited1%40upcnet.es%2Cinvited2%
        40gmail.com   --> exemple
    """

    nom_reunio = schema.TextLine(
        title=_(u'Nom de la reunió'),
        description=_(u'Indiqueu la descripció de la reunió virtual.'),
        required=True)

    start_date = schema.Datetime(
        title=_(u'Data d\'inici'),
        description=_(u'Indiqueu la data d\'inici de la reserva.'),
        required=True,
        default=datetime.now())

    durada = schema.Choice(title=_(u'Durada de la reunió'),
                           description=_(u'Indiqueu durada de la reunió.'),
                           values=range(1, 25),
                           required=True)

    invitats_convidats = schema.TextLine(
        title=_(u'Convidats moderadors'),
        description=_(
            u'Llista d\'emails dels convidats MODERADORS, separats per comes.'
        ),
        required=True)

    invitats_espectadors = schema.TextLine(
        title=_(u'Invitats espectadors'),
        description=_(
            u'Llista d\'emails dels convidats ESPECTADORS, separats per comes.'
        ),
        required=False)
Exemplo n.º 10
0
 def get_communities(self):
     """ Gets the communities to show in the stats selectize dropdown
     """
     pc = api.portal.get_tool('portal_catalog')
     all_communities = [{
         'hash': 'all',
         'title': _(u'Todas las comunidades')
     }]
     all_communities += [{
         'hash': community.community_hash,
         'title': community.Title
     } for community in pc.searchResults(portal_type='ulearn.community')]
     return json.dumps(all_communities)
Exemplo n.º 11
0
    def get_user_info_for_display(self):
        user_properties_utility = getUtility(ICatalogFactory, name='user_properties')

        extender_name = api.portal.get_registry_record('genweb.controlpanel.core.IGenwebCoreControlPanelSettings.user_properties_extender')

        rendered_properties = []
        if extender_name in [a[0] for a in getUtilitiesFor(ICatalogFactory)]:
            extended_user_properties_utility = getUtility(ICatalogFactory, name=extender_name)
            for prop in extended_user_properties_utility.profile_properties:
                rendered_properties.append(dict(
                    name=_(prop),
                    value=self.user_info.getProperty(prop, '')
                ))
            return rendered_properties
        else:
            # If it's not extended, then return the simple set of data we know
            # about the user using also the profile_properties field
            for prop in user_properties_utility.profile_properties:
                rendered_properties.append(dict(
                    name=_(prop),
                    value=self.user_info.getProperty(prop, '')
                ))
            return rendered_properties
Exemplo n.º 12
0
    def render(self):
        pc = api.portal.get_tool(name='portal_catalog')
        communities = pc.searchResults(portal_type='ulearn.community')

        text = []
        for community in communities:
            community = community.getObject()
            media_folder = community.media

            behavior = ISelectableConstrainTypes(media_folder)
            behavior.setConstrainTypesMode(1)
            behavior.setLocallyAllowedTypes(('Image', 'ulearn.video', 'Folder'))
            behavior.setImmediatelyAddableTypes(('Image', 'ulearn.video', 'Folder'))

            if media_folder.title != 'Media':
                media_folder.setTitle(community.translate(_(u'Media')))

            text.append('Added type video to {}\n'.format(community.absolute_url()))
        return ''.join(text)
Exemplo n.º 13
0
    def render(self):
        pc = api.portal.get_tool(name='portal_catalog')
        communities = pc.searchResults(portal_type='ulearn.community')

        text = []
        for community in communities:
            community = community.getObject()
            media_folder = community.media

            behavior = ISelectableConstrainTypes(media_folder)
            behavior.setConstrainTypesMode(1)
            behavior.setLocallyAllowedTypes(
                ('Image', 'ulearn.video', 'Folder'))
            behavior.setImmediatelyAddableTypes(
                ('Image', 'ulearn.video', 'Folder'))

            if media_folder.title != 'Media':
                media_folder.setTitle(community.translate(_(u'Media')))

            text.append('Added type video to {}\n'.format(
                community.absolute_url()))
        return ''.join(text)
Exemplo n.º 14
0
    def render(self):
        pc = api.portal.get_tool(name='portal_catalog')
        communities = pc.searchResults(portal_type='ulearn.community')
        for community in communities:
            community = community.getObject()
            if 'discussion' not in community.objectIds():
                # Create the default discussion container and set title
                discussion = createContentInContainer(community,
                                                      'Folder',
                                                      title='discussion',
                                                      checkConstraints=False)
                discussion.setTitle(community.translate(_(u'Discussion')))

                discussion.setLayout('discussion_folder_view')

                alsoProvides(discussion, IDiscussionFolder)

                behavior = ISelectableConstrainTypes(discussion)
                behavior.setConstrainTypesMode(1)
                behavior.setLocallyAllowedTypes(
                    ('ulearn.discussion', 'Folder'))
                behavior.setImmediatelyAddableTypes(
                    ('ulearn.discussion', 'Folder'))

                # Blacklist the right column portlets on discussion
                right_manager = queryUtility(IPortletManager,
                                             name=u'plone.rightcolumn')
                blacklist = getMultiAdapter((discussion, right_manager),
                                            ILocalPortletAssignmentManager)
                blacklist.setBlacklistStatus(CONTEXT_CATEGORY, True)

                discussion.reindexObject()

                logger.info('Created discussion folder in {}'.format(
                    community.absolute_url()))

        return 'Done.'
Exemplo n.º 15
0
    def handleApply(self, action):
        portal = getSite()
        pm = getToolByName(portal, 'portal_membership')
        lt = getToolByName(portal, 'portal_languages')

        userid = pm.getAuthenticatedMember()

        user_email = userid.getProperty('email', '')

        if not user_email:
            IStatusMessage(self.request).addStatusMessage(
                _(u'La reunió no es pot crear perquè l\'usuari no te informat la adreca de correu electrònic.'
                  ), u'error')
            self.request.response.redirect(portal.absolute_url())

        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return

        str_start_date = data.get('start_date').isoformat().replace('T',
                                                                    '-')[:-6]
        str_invitats_convidats = data.get('invitats_convidats',
                                          '').replace(' ', '')

        # Guard because the invitats_espectadors field is not required
        if data.get('invitats_espectadors', False):
            str_invitats_espectadors = data.get('invitats_espectadors',
                                                '').replace(' ', '')
        else:
            str_invitats_espectadors = ''

        guests = data.get('invitats_convidats')
        session_load = len(guests.split(','))

        payload = dict(servidor=BBB_SERVER,
                       inici=str_start_date,
                       durada=data.get('durada'),
                       carrega=session_load,
                       descripcio=data.get('nom_reunio'),
                       owner=user_email,
                       invite_rw=str_invitats_convidats,
                       invite_ro=str_invitats_espectadors,
                       lang=lt.getDefaultLanguage())

        req = requests.post(BBB_ENDPOINT, data=payload)

        try:
            # Redirect back to the front page with a status message
            if int(req.text) > 0:
                IStatusMessage(self.request).addStatusMessage(
                    _(u'La reunió virtual ha estat creada.'), u'info')
            else:
                IStatusMessage(self.request).addStatusMessage(
                    _(u'Hi ha hagut algun problema i la reunió virtual no ha estat creada.'
                      ), u'info')
        except:
            IStatusMessage(self.request).addStatusMessage(
                _(u'Hi ha hagut algun problema i la reunió virtual no ha estat creada.'
                  ), u'info')

        self.request.response.redirect(portal.absolute_url())
Exemplo n.º 16
0
 def get_communities(self):
     all_communities = [{'hash': 'all', 'title': _(u'Todas las comunidades')}]
     all_communities += [{'hash': community.community_hash, 'title': community.Title} for community in self.catalog.searchResults(portal_type='ulearn.community')]
     return json.dumps(all_communities)
Exemplo n.º 17
0
class IUlearnUserSchema(Interface):
    """ Redefinition of all the fields because of the ordering """

    fullname = schema.TextLine(
        title=_(u'label_full_name', default=u'Full Name'),
        description=_(u'help_full_name_creation',
                      default=u'Enter full name, e.g. John Smith.'),
        required=True)

    email = schema.ASCIILine(title=_(u'label_email', default=u'E-mail'),
                             description=u'',
                             required=True,
                             constraint=checkEmailAddress)

    home_page = schema.TextLine(
        title=_(u'label_homepage', default=u'Home page'),
        description=_(
            u'help_homepage',
            default=_(
                u'The URL for your external home page, if you have one.')),
        required=False)

    description = schema.Text(
        title=_(u'label_biography', default=u'Biography'),
        description=_(u'help_biography',
                      default=u'A short overview of who you are and what you '
                      'do. Will be displayed on your author page, linked '
                      'from the items you create.'),
        required=False)

    location = schema.TextLine(title=_(u'label_location', default=u'Location'),
                               description=_(
                                   u'help_location',
                                   default=u'Your location - either city and '
                                   'country - or in a company setting, where '
                                   'your office is located.'),
                               required=False)

    portrait = FileUpload(
        title=_(u'label_portrait', default=u'Portrait'),
        description=_(u'help_portrait',
                      default=u'To add or change the portrait: click the '
                      '"Browse" button; select a picture of yourself. '
                      'Recommended image size is 75 pixels wide by 100 '
                      'pixels tall.'),
        required=False)

    pdelete = schema.Bool(title=_(u'label_delete_portrait',
                                  default=u'Delete Portrait'),
                          description=u'',
                          required=False)

    twitter_username = schema.TextLine(
        title=_(u'label_twitter', default=u'Twitter username'),
        description=_(u'help_twitter',
                      default=u'Fill in your Twitter username.'),
        required=False,
    )

    ubicacio = schema.TextLine(
        title=_(u'label_ubicacio', default=u'Ubicació'),
        description=_(u'help_ubicacio',
                      default=u'Equip, Àrea / Companyia / Departament'),
        required=False,
    )

    telefon = schema.TextLine(
        title=_(u'label_telefon', default=u'Telèfon'),
        description=_(u'help_telefon', default=u'Contacte telefònic'),
        required=False,
    )

    language = schema.Choice(
        title=_(u'label_language', default=u'Language'),
        description=_(
            u'help_language',
            default=
            _(u'Aquest és l\'idioma de l\'espai, que es configura quan el paquet es reinstala.'
              )),
        required=False,
        vocabulary=u"plone.app.vocabularies.SupportedContentLanguages",
    )
Exemplo n.º 18
0
class IVideoEmbed(form.Schema):
    """ The video embed schema """

    video_url = schema.TextLine(title=_(u'video_url'),
                                description=_(u'video_url_description'),
                                required=True)
Exemplo n.º 19
0
class reservaBBB(form.SchemaForm):
    grok.name('addBBBReservation')
    grok.context(IPloneSiteRoot)
    grok.require('genweb.member')

    schema = IReservaBBB
    ignoreContext = True

    label = _(u'Create new meeting space')

    def update(self):
        super(reservaBBB, self).update()
        self.request.set('disable_border', True)
        self.request.set('disable_plone.rightcolumn', True)
        self.actions['save'].addClass('context')
        self.actions['cancel'].addClass('standalone')

    @button.buttonAndHandler(_(u'Save'), name='save')
    def handleApply(self, action):
        portal = getSite()
        pm = getToolByName(portal, 'portal_membership')
        lt = getToolByName(portal, 'portal_languages')

        userid = pm.getAuthenticatedMember()

        user_email = userid.getProperty('email', '')

        if not user_email:
            IStatusMessage(self.request).addStatusMessage(
                _(u'La reunió no es pot crear perquè l\'usuari no te informat la adreca de correu electrònic.'
                  ), u'error')
            self.request.response.redirect(portal.absolute_url())

        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return

        str_start_date = data.get('start_date').isoformat().replace('T',
                                                                    '-')[:-6]
        str_invitats_convidats = data.get('invitats_convidats',
                                          '').replace(' ', '')

        # Guard because the invitats_espectadors field is not required
        if data.get('invitats_espectadors', False):
            str_invitats_espectadors = data.get('invitats_espectadors',
                                                '').replace(' ', '')
        else:
            str_invitats_espectadors = ''

        guests = data.get('invitats_convidats')
        session_load = len(guests.split(','))

        payload = dict(servidor=BBB_SERVER,
                       inici=str_start_date,
                       durada=data.get('durada'),
                       carrega=session_load,
                       descripcio=data.get('nom_reunio'),
                       owner=user_email,
                       invite_rw=str_invitats_convidats,
                       invite_ro=str_invitats_espectadors,
                       lang=lt.getDefaultLanguage())

        req = requests.post(BBB_ENDPOINT, data=payload)

        try:
            # Redirect back to the front page with a status message
            if int(req.text) > 0:
                IStatusMessage(self.request).addStatusMessage(
                    _(u'La reunió virtual ha estat creada.'), u'info')
            else:
                IStatusMessage(self.request).addStatusMessage(
                    _(u'Hi ha hagut algun problema i la reunió virtual no ha estat creada.'
                      ), u'info')
        except:
            IStatusMessage(self.request).addStatusMessage(
                _(u'Hi ha hagut algun problema i la reunió virtual no ha estat creada.'
                  ), u'info')

        self.request.response.redirect(portal.absolute_url())

    @button.buttonAndHandler(_(u'Cancel'), name='cancel')
    def cancel(self, action):
        IStatusMessage(self.request).addStatusMessage(_(u'Edit cancelled.'),
                                                      type='info')
        self.request.response.redirect(self.context.absolute_url())
        return ''
Exemplo n.º 20
0
 def handleCancel(self, action):
     IStatusMessage(self.request).addStatusMessage(_(u'Edit cancelled'),
                                                   'info')
     self.request.response.redirect('%s/%s' % (self.context.absolute_url(),
                                               self.control_panel_view))
Exemplo n.º 21
0
class UlearnControlPanelSettingsForm(controlpanel.RegistryEditForm):
    """ Ulearn settings form """

    schema = IUlearnControlPanelSettings
    id = 'UlearnControlPanelSettingsForm'
    label = _(u'Ulearn settings')
    description = _(u'help_ulearn_settings_editform',
                    default=_(u'uLearn configuration registry.'))

    def updateFields(self):
        super(UlearnControlPanelSettingsForm, self).updateFields()

    def updateWidgets(self):
        super(UlearnControlPanelSettingsForm, self).updateWidgets()

    @button.buttonAndHandler(_('Save'), name=None)
    def handleSave(self, action):
        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return
        self.applyChanges(data)

        if data.get('nonvisibles', False):
            """ Make users invisible in searches """
            maxclient, settings = getUtility(IMAXClient)()
            maxclient.setActor(settings.max_restricted_username)
            maxclient.setToken(settings.max_restricted_token)

            current_vips = maxclient.admin.security.get()
            current_vips = current_vips.get('roles').get('NonVisible', [])

            un_vip = [
                a for a in current_vips if a not in data.get('nonvisibles')
            ]
            for user in un_vip:
                maxclient.admin.security.roles['NonVisible'].users[
                    user].delete()

            make_vip = [
                vip for vip in data.get('nonvisibles')
                if vip not in current_vips
            ]

            for user in make_vip:
                maxclient.admin.security.roles['NonVisible'].users[user].post()

        if data.get('activate_sharedwithme', True):
            if api.portal.get_registry_record(
                    'genweb.controlpanel.core.IGenwebCoreControlPanelSettings.elasticsearch'
            ) is not None:
                portal = api.portal.get()
                if portal.portal_actions.object.local_roles.visible is False:
                    portal.portal_actions.object.local_roles.visible = True
                    transaction.commit()
            else:
                IStatusMessage(self.request).addStatusMessage(
                    _(u'Has marcat el comparteix pero falta la url del elasticsearch'
                      ), 'info')
        else:
            portal = api.portal.get()
            if portal.portal_actions.object.local_roles.visible is True:
                portal.portal_actions.object.local_roles.visible = False
                transaction.commit()

        IStatusMessage(self.request).addStatusMessage(_(u'Changes saved'),
                                                      'info')
        self.context.REQUEST.RESPONSE.redirect('@@ulearn-controlpanel')

    @button.buttonAndHandler(_('Cancel'), name='cancel')
    def handleCancel(self, action):
        IStatusMessage(self.request).addStatusMessage(_(u'Edit cancelled'),
                                                      'info')
        self.request.response.redirect(
            '%s/%s' % (self.context.absolute_url(), self.control_panel_view))
Exemplo n.º 22
0
    def __call__(self, context):
        terms = []
        terms.append(SimpleVocabulary.createTerm(u'Darreres activitats', 'darreres_activitats', _(u'Darreres activitats')))
        terms.append(SimpleVocabulary.createTerm(u'Activitats mes valorades', 'activitats_mes_valorades', _(u'Activitats mes valorades')))
        terms.append(SimpleVocabulary.createTerm(u'Activitats destacades', 'activitats_destacades', _(u'Activitats destacades')))

        return SimpleVocabulary(terms)
Exemplo n.º 23
0
 def handleCancel(self, action):
     IStatusMessage(self.request).addStatusMessage(_(u'Edit cancelled'),
                                                   'info')
     self.request.response.redirect(
         '%s/%s' % (self.context.absolute_url(), self.control_panel_view))
Exemplo n.º 24
0
class ILiteralQuickLinks(form.Schema):
    language = schema.Choice(
        title=_(u'Language'),
        required=True,
        vocabulary=u'plone.app.vocabularies.SupportedContentLanguages')
    text = schema.TextLine(title=_(u'Text'), required=False)
Exemplo n.º 25
0
class IUlearnControlPanelSettings(model.Schema):
    """ Global Ulearn settings. This describes records stored in the
    configuration registry and obtainable via plone.registry.
    """

    model.fieldset('General',
                   _(u'General'),
                   fields=[
                       'campus_url', 'library_url', 'people_literal',
                       'threshold_winwin1', 'threshold_winwin2',
                       'threshold_winwin3', 'stats_button', 'info_servei',
                       'activate_news', 'activate_sharedwithme',
                       'buttonbar_selected'
                   ])

    model.fieldset('Specific',
                   _(u'Specific'),
                   fields=[
                       'main_color', 'secondary_color', 'background_property',
                       'background_color', 'buttons_color_primary',
                       'buttons_color_secondary', 'maxui_form_bg',
                       'alt_gradient_start_color', 'alt_gradient_end_color',
                       'color_community_closed',
                       'color_community_organizative', 'color_community_open'
                   ])

    model.fieldset('Visibility', _(u'Visibility'), fields=['nonvisibles'])

    model.fieldset(
        'Quick Links',
        _(u'QuickLinks'),
        fields=['quicklinks_literal', 'quicklinks_icon', 'quicklinks_table'])

    model.fieldset('UPCnet only',
                   _(u'UPCnet only'),
                   fields=[
                       'language', 'activity_view', 'url_forget_password',
                       'show_news_in_app'
                   ])

    campus_url = schema.TextLine(
        title=_(u'campus_url', default=_(u'URL del campus')),
        description=_(
            u'help_campus_url',
            default=_(
                u'Afegiu la URL del campus associat a aquestes comunitats.')),
        required=False,
        default=u'',
    )

    library_url = schema.TextLine(
        title=_(u'library_url', default=_(u'URL de la biblioteca')),
        description=_(
            u'help_library_url',
            default=
            _(u'Afegiu la URL de la biblioteca associada a aquestes comunitats.'
              )),
        required=False,
        default=u'',
    )

    threshold_winwin1 = schema.TextLine(
        title=_(u'llindar_winwin1', default=_(u'Llindar del winwin 1')),
        description=_(u'help_llindar_winwin1',
                      default=_(u'Aquest és el llindar del winwin #1.')),
        required=False,
        default=u'50',
    )

    threshold_winwin2 = schema.TextLine(
        title=_(u'llindar_winwin2', default=_(u'Llindar del winwin 2')),
        description=_(u'help_llindar_winwin2',
                      default=_(u'Aquest és el llindar del winwin #2.')),
        required=False,
        default=u'100',
    )

    threshold_winwin3 = schema.TextLine(
        title=_(u'llindar_winwin3', default=_(u'Llindar del winwin 3')),
        description=_(u'help_llindar_winwin3',
                      default=_(u'Aquest és el llindar del winwin #3.')),
        required=False,
        default=u'500',
    )

    stats_button = schema.Bool(
        title=_(u'stats_button',
                default=_(u"Mostrar botó d'accés a estadístiques diàries")),
        description=_(
            u'help_stats_button',
            default=
            _(u"Mostra o no el botó d'accés a estadístiques diàries a stats/activity i stats/chats"
              )),
        required=False,
        default=False,
    )

    info_servei = schema.TextLine(
        title=_(u'info_servei', default=_(u'Informació del servei')),
        description=_(u'help_info_servei',
                      default=_(u'Aquest és l\'enllaç al servei.')),
        required=False,
    )

    activate_news = schema.Bool(
        title=_(u'activate_news',
                default=_(u"Mostra les noticies a les que estic subscrit")),
        description=_(
            u'help_activate_news',
            default=
            _(u"Mostra o no el botó de Noticies a la tile central de les comunitats"
              )),
        required=False,
        default=False,
    )

    activate_sharedwithme = schema.Bool(
        title=_(u'activate_sharedwithme',
                default=_(u"Mostra el que hi ha compartit amb mi")),
        description=_(
            u'help_activate_sharedwithme',
            default=
            _(u"Mostra o no el botó del que hi ha compartit amb mi i el que hi ha compartit a les comunitats"
              )),
        required=False,
        default=False,
    )

    buttonbar_selected = schema.Choice(
        title=_(u'buttonbar_selected'),
        description=_(u'Select the active button in the button bar.'),
        values=['stream', 'news', 'mycommunities', 'sharedwithme'],
        required=True,
        default='stream')

    main_color = schema.TextLine(
        title=_(u'main_color', default=_(u'Color principal')),
        description=_(u'help_main_color',
                      default=_(u'Aquest és el color principal de l\'espai.')),
        required=True,
        default=u'#f58d3d',
    )

    secondary_color = schema.TextLine(
        title=_(u'secondary_color', default=_(u'Color secundari')),
        description=_(u'help_secondary_color',
                      default=_(u'Aquest és el color secundari de l\'espai.')),
        required=True,
        default=u'#f58d3d',
    )

    maxui_form_bg = schema.TextLine(
        title=_(u'maxui_form_bg',
                default=_(u'Color del fons del widget de MAX.')),
        description=_(
            u'help_maxui_form_bg',
            default=_(u'Aquest és el color del fons del widget de MAX.')),
        required=True,
        default=u'#34495c',
    )

    alt_gradient_start_color = schema.TextLine(
        title=_(u'alt_gradient_start_color',
                default=_(u'Color inicial dels gradients.')),
        description=_(
            u'help_alt_gradient_start_color',
            default=_(u'Aquest és el color inicial dels gradients.')),
        required=True,
        default=u'#f58d3d',
    )

    alt_gradient_end_color = schema.TextLine(
        title=_(u'alt_gradient_end_color',
                default=_(u'Color final dels gradients')),
        description=_(u'help_alt_gradient_end_color',
                      default=_(u'Aquest és el color final dels gradients.')),
        required=True,
        default=u'#f58d3d',
    )

    background_property = schema.TextLine(
        title=_(u'background_property',
                default=_(u'Propietat de fons global')),
        description=_(
            u'help_background_property',
            default=_(u'Aquest és la propietat de CSS de background.')),
        required=True,
        default=u'transparent',
    )

    background_color = schema.TextLine(
        title=_(u'background_color', default=_(u'Color de fons global')),
        description=_(
            u'help_background_color',
            default=
            _(u'Aquest és el color de fons global o la propietat corresponent.'
              )),
        required=True,
        default=u'#eae9e4',
    )

    buttons_color_primary = schema.TextLine(
        title=_(u'buttons_color_primary',
                default=_(u'Color primari dels botons')),
        description=_(u'help_buttons_color_primary',
                      default=_(u'Aquest és el color primari dels botons.')),
        required=True,
        default=u'#34495E',
    )

    buttons_color_secondary = schema.TextLine(
        title=_(u'buttons_color_secondary',
                default=_(u'Color secundari dels botons')),
        description=_(u'help_buttons_color_secondary',
                      default=_(u'Aquest és el color secundari dels botons.')),
        required=True,
        default=u'#34495E',
    )

    color_community_closed = schema.TextLine(
        title=_(u'color_community_closed',
                default=_(u'Color comunitat tancada')),
        description=_(
            u'help_color_community_closed',
            default=_(u'Aquest és el color per les comunitats tancades.')),
        required=True,
        default=u'#f58d3d',
    )

    color_community_organizative = schema.TextLine(
        title=_(u'color_community_organizative',
                default=_(u'Color comunitat organitzativa')),
        description=_(
            u'help_color_community_organizative',
            default=_(
                u'Aquest és el color per les comunitats organitzatives.')),
        required=True,
        default=u'#b5c035',
    )

    color_community_open = schema.TextLine(
        title=_(u'color_community_open', default=_(u'Color comunitat oberta')),
        description=_(
            u'help_color_community_open',
            default=_(u'Aquest és el color per les comunitats obertes.')),
        required=True,
        default=u'#888888',
    )

    dexterity.write_permission(language='zope2.ViewManagementScreens')
    language = schema.Choice(
        title=_(u'language', default=_(u'Idioma de l\'espai')),
        description=_(
            u'help_language',
            default=
            _(u'Aquest és l\'idioma de l\'espai, que es configura quan el paquet es reinstala.'
              )),
        required=True,
        values=['ca', 'es', 'en'],
        default='es',
    )

    form.widget(nonvisibles=Select2MAXUserInputFieldWidget)
    nonvisibles = schema.List(
        title=_(u'no_visibles'),
        description=
        _(u'Llista amb les persones que no han de sortir a les cerques i que tenen accés restringit per les demés persones.'
          ),
        value_type=schema.TextLine(),
        required=False,
        default=[])

    people_literal = schema.Choice(
        title=_(u'people_literal'),
        description=
        _(u'Literals que identifiquen als usuaris de les comunitats i les seves aportacions.'
          ),
        values=['thinnkers', 'persones', 'participants'],
        required=False,
        default='persones')

    form.widget(quicklinks_literal=DataGridFieldFactory)
    quicklinks_literal = schema.List(
        title=_(u'Text Quick Links'),
        description=_(u'help_quicklinks_table'),
        value_type=DictRow(schema=ILiteralQuickLinks))

    quicklinks_icon = schema.TextLine(
        title=_(u'quicklinks_icon', default='icon-link'),
        description=_(
            u'help_quicklinks_icon',
            default=_(
                u'Afegiu la icona del Font Awesome que voleu que es mostri')),
        required=False,
        default=u'',
    )

    form.widget(quicklinks_table=DataGridFieldFactory)
    quicklinks_table = schema.List(title=_(u'QuickLinks'),
                                   description=_(u'help_quicklinks_literal'),
                                   value_type=DictRow(schema=ITableQuickLinks))

    activity_view = schema.Choice(title=_(u'activity_view'),
                                  description=_(u'help_activity_view'),
                                  vocabulary=u'ulearn.core.activity_view',
                                  required=True,
                                  default=_(u'Darreres activitats'))

    url_forget_password = schema.TextLine(
        title=_(u'url_forget_password',
                default=_(u'URL contrasenya oblidada')),
        description=_(
            u'help_url_forget_password',
            default=
            _(u'Url per defecte: "/mail_password_form?userid=". Per a dominis externs indiqueu la url completa, "http://www.domini.cat"'
              )),
        required=True,
        default=_(u'/mail_password_form?userid='))

    show_news_in_app = schema.Bool(
        title=_(u'show_news_in_app', default=_(u"Show News Items in App")),
        description=_(
            u'help_show_news_in_app',
            default=
            _(u"If selected, then gives the option to show the News Items in Mobile App."
              )),
        required=False,
        default=False,
    )
Exemplo n.º 26
0
 def get_posts_literal(self):
     literal = api.portal.get_registry_record(name='ulearn.core.controlpanel.IUlearnControlPanelSettings.people_literal')
     if literal == 'thinnkers':
         return 'thinnkins'
     else:
         return _(u'entrades')
Exemplo n.º 27
0
 def cancel(self, action):
     IStatusMessage(self.request).addStatusMessage(_(u'Edit cancelled.'),
                                                   type='info')
     self.request.response.redirect(self.context.absolute_url())
     return ''