Exemple #1
0
    def update(self):
        def css_class(language):
            css_attr = None
            if language == selected:
                css_attr = "selected"
            if language in translations:
                if css_attr:
                    css_attr = css_attr + " available"
                else:
                    css_attr = "available"
            return css_attr

        def language_name(language):
            return language.get("native", language.get("name"))

        translations = get_available_translations(self.context)
        if hasattr(self.context, "language"):
            translations[self.context.language] = None
        languages = get_all_languages()
        selected = normalize_lang(self.request.locale.getLocaleID())
        url = ui_utils.url.absoluteURL(getSite(), self.request)

        self.languages = sorted(
            [{
                "code": language,
                "flag": url + languages[language].get('flag', ''),
                "name": language_name(languages[language]),
                "css_class": css_class(language),
                "url": "%s/change-language?language=%s" % (url, language),
            } for language in languages],
            key=lambda l: l.get("code"))
Exemple #2
0
 def getMenuItems(self, context, request):
     """Return menu item entries in a TAL-friendly form."""
     _url = url.absoluteURL(context, request)
     if checkPermission("bungeni.translation.Add", context):
         language = get_language(context)
         available = get_available_translations(context)
         results = []
         for name, obj in get_all_languages().items():
             title = obj["name"]
             # skip the current language
             if name == language:
                 continue
             action_url = "%s/translate?language=%s" % (_url, name)
             extra = {
                 "id": "translation-action-%s" % name,
                 "separator": None,
                 "class": ""
             }
             translation_id = available.get(name)
             results.append(
                 dict(title=title,
                      description="",
                      action=action_url,
                      selected=translation_id is not None,
                      icon=None,
                      extra=extra,
                      submenu=None))
         return results
     else:
         return None
Exemple #3
0
    def update(self):
        
        def css_class(language):
            css_attr = None
            if language == selected:
                css_attr = 'selected'
            if language in translations:
                if css_attr:
                    css_attr = css_attr + ' available'
                else:
                    css_attr = 'available'
            return css_attr
        
        def language_name(language): 
            langname = language.get('native', None)
            if langname == None:
                langname = language.get('name')
            return langname

        translations = get_available_translations(self.context)
        if hasattr(self.context,'language'):
            translations[self.context.language] = None
        languages = get_all_languages()
        selected = normalize_lang(self.request.locale.getLocaleID())
        url = ui_utils.url.absoluteURL(getSite(), self.request)
        
        self.languages = [{
            'code': language,
            'flag': url+languages[language].get('flag', ''),
            'name': language_name(languages[language]),
            'css_class': css_class(language),
            'url': "%s/change-language?language=%s" % (url, language),
            } for language in languages]
Exemple #4
0
 def getMenuItems(self, context, request):
     """Return menu item entries in a TAL-friendly form."""
     _url = url.absoluteURL(context, request)
     if checkPermission("bungeni.translation.Add", context):
         language = get_language(context)
         available = get_available_translations(context)
         results = []
         for name, obj in get_all_languages().items():
             title = obj["name"]
             # skip the current language
             if name == language:
                 continue
             action_url = "%s/translate?language=%s" % (_url, name)
             extra = {
                 "id": "translation-action-%s" % name,
                 "separator": None,
                 "class": ""
             }
             translation_id = available.get(name)
             results.append(
                 dict(title=title,
                      description="",
                      action=action_url,
                      selected=translation_id is not None,
                      icon=None,
                      extra=extra,
                      submenu=None))
         return results
     else:
         return None
Exemple #5
0
 def render(self, template=None):
     if template is None:
         template = self.template
     if (not checkPermission(u"bungeni.sitting.Add", self.context)) or \
         (IBusinessSectionLayer.providedBy(self.request)):
         self.edit = False
     else:
         self.edit = True
     session = Session()
     venues = session.query(domain.Venue).all()
     languages = get_all_languages()
     session.close()
     #defaults to english
     self.display_language = 'en'
     if self.request.get('I18N_LANGUAGES'):
         self.display_language = self.request.get('I18N_LANGUAGES')
     #html is hardcoded in here because doing it in the template
     #would have been a colossal pain
     #TODO: FIX THIS
     s = '<div class="dhx_cal_ltext" style="height:90px;">'
     s += '<table>'
     s += '<tr><td>Venue</td><td><select id="select_sitting_venue">'
     for venue in venues:
         s += '<option value="' + str(
             venue.venue_id) + '">' + venue.short_name + '</option>'
     s += '</select></td></tr>'
     s += '<tr><td>Language</td><td><select id="select_sitting_lang">'
     for lang in languages:
         if lang == 'en':
             s += '<option value="' + lang + '" selected>' + lang + '</option>'
         else:
             s += '<option value="' + lang + '">' + lang + '</option>'
     s += '</select></td></tr></table></div>'
     self.sitting_details_form = s
     return template()
    def update(self):
        def css_class(language):
            css_attr = None
            if language == selected:
                css_attr = "selected"
            if language in translations:
                if css_attr:
                    css_attr = css_attr + " available"
                else:
                    css_attr = "available"
            return css_attr

        def language_name(language):
            return language.get("native", language.get("name"))

        translations = get_available_translations(self.context)
        if hasattr(self.context, "language"):
            translations[self.context.language] = None
        languages = get_all_languages()
        selected = normalize_lang(self.request.locale.getLocaleID())
        url = ui_utils.url.absoluteURL(getSite(), self.request)

        self.languages = sorted(
            [
                {
                    "code": language,
                    "flag": url + languages[language].get("flag", ""),
                    "name": language_name(languages[language]),
                    "css_class": css_class(language),
                    "url": "%s/change-language?language=%s" % (url, language),
                }
                for language in languages
            ],
            key=lambda l: l.get("code"),
        )
 def render(self, template=None):
     if template is None:
         template = self.template
     if (not checkPermission(u"bungeni.sitting.Add", self.context)) or \
         (IBusinessSectionLayer.providedBy(self.request)):
         self.edit = False
     else:
         self.edit = True
     session = Session()
     venues = session.query(domain.Venue).all()
     languages = get_all_languages()
     session.close()
     self.display_language = get_default_language()
     if self.request.get("I18N_LANGUAGE"):
         self.display_language = self.request.get("I18N_LANGUAGE")
     #html is hardcoded in here because doing it in the template
     #would have been a colossal pain
     #TODO: FIX THIS
     s = '<div class="dhx_cal_ltext" style="height:90px;">' 
     s += '<table>'
     s += '<tr><td>Venue</td><td><select id="select_sitting_venue">'
     for venue in venues:
         s += '<option value="'+str(venue.venue_id)+'">'+venue.short_name+'</option>'
     s += '</select></td></tr>'
     s += '<tr><td>Language</td><td><select id="select_sitting_lang">'
     for lang in languages:
         if lang == 'en':
             s += '<option value="'+lang+'" selected>'+lang+'</option>'
         else:
             s += '<option value="'+lang+'">'+lang+'</option>'
     s += '</select></td></tr></table></div>'
     self.sitting_details_form = s
     return template()
Exemple #8
0
    def getMenuItems(self, context, request):
        """Return menu item entries in a TAL-friendly form."""
        url = ui_url.absoluteURL(context, request)
        if checkPermission("bungeni.translation.Add", context):
            language = get_language(context)
            available = get_available_translations(context)
            results = []
            for name, obj in get_all_languages().items():
                title = obj['name']
                
                # skip the current language
                if name == language:
                    continue

                translation_id = available.get(name)
                selected = translation_id is not None

                action_url = url + '/translate?language=%s' % name

                extra = {'id': 'translation-action-%s' % name,
                         'separator': None,
                         'class': ''}
                
                results.append(
                    dict(title=title,
                         description="",
                         action=action_url,
                         selected=selected,
                         icon=None,
                         extra=extra,
                         submenu=None))
                         
            return results
        else:
            return None
    def setUpWidgets(self, ignore_request=False):
        languages = get_all_languages()
        self.form_fields = filterFields(self.context, self.form_fields)

        # do not display empty form fields
        omit_names = []
        for f in self.form_fields:
            val = getattr(self.context, f.__name__)
            if val is None:
                omit_names.append(f.__name__)
        self.form_fields = self.form_fields.omit(*omit_names)
        context = self.context
        if ITranslatable.providedBy(self.context):
            lang = self.request.locale.getLocaleID()
            try:
                translation = get_translation_for(self.context, lang)
            except:
                translation = []
            if (
                not translation
                and getattr(self.context, "language", None)
                and getattr(self.context, "language", None) != lang
            ):
                supported_lang = languages.get(lang)
                if supported_lang:
                    langname = supported_lang.get("native", None)
                    if langname == None:
                        langname = supported_lang.get("name")
                    self.status = translate(
                        _(u"This content is not yet translated into" + " $language", mapping={"language": langname}),
                        domain="bungeni",
                        context=self.request,
                    )
            context = copy(removeSecurityProxy(self.context))
            for field_translation in translation:
                setattr(context, field_translation.field_name, field_translation.field_text)
        self.widgets = form.setUpEditWidgets(
            self.form_fields,
            "",
            context,
            self.request,
            adapters=self.adapters,
            for_display=True,
            ignore_request=ignore_request,
        )
Exemple #10
0
    def setUpWidgets(self, ignore_request=False):
        languages = get_all_languages()
        self.form_fields = filterFields(self.context, self.form_fields)

        #do not display empty form fields
        omit_names = []
        for f in self.form_fields:
            val = getattr(self.context, f.__name__)
            if val is None:
                omit_names.append(f.__name__)
        self.form_fields = self.form_fields.omit(*omit_names)
        context = self.context
        if ITranslatable.providedBy(self.context):
            lang = self.request.locale.getLocaleID()
            try:
                translation = get_translation_for(self.context, lang)
            except:
                translation = []
            if (not translation and
                getattr(self.context, "language", None) and
                getattr(self.context, "language", None) != lang
            ):
                supported_lang = languages.get(lang)
                if supported_lang:
                    langname = supported_lang.get("native", None)
                    if langname == None:
                        langname = supported_lang.get("name")
                    self.status = translate(
                        _(u"This content is not yet translated into" +\
                            " $language",
                            mapping={"language": langname}),
                        domain="bungeni",
                        context=self.request
                    )
            context = copy(removeSecurityProxy(self.context))
            for field_translation in translation:
                setattr(context, field_translation.field_name,
                        field_translation.field_text)
        self.widgets = form.setUpEditWidgets(
            self.form_fields, "" , context, self.request,
            adapters=self.adapters,
            for_display=True,
            ignore_request=ignore_request
        )
Exemple #11
0
 def render(self, template=None):
     need("dhtmlxscheduler")
     need("dhtmlxscheduler-recurring")
     if template is None:
         template = self.template
     if (not checkPermission(u"bungeni.sitting.Add", self.context)) or \
         (IBusinessSectionLayer.providedBy(self.request)):
         self.edit = False
     else:
         self.edit = True
     session = Session()
     venues = session.query(domain.Venue).all()
     languages = get_all_languages()
     # !+SESSION_CLOSE(taras.sterch, july-2011) there is no need to close the
     # session. Transaction manager will take care of this. Hope it does not
     # brake anything.
     #session.close()
     self.display_language = get_default_language()
     if self.request.get("I18N_LANGUAGE"):
         self.display_language = self.request.get("I18N_LANGUAGE")
     #html is hardcoded in here because doing it in the template
     #would have been a colossal pain
     #TODO: FIX THIS
     s = '<div class="dhx_cal_ltext" style="height:90px;">'
     s += '<table>'
     s += '<tr><td>Venue</td><td><select id="select_sitting_venue">'
     for venue in venues:
         s += '<option value="' + str(
             venue.venue_id) + '">' + venue.short_name + '</option>'
     s += '</select></td></tr>'
     s += '<tr><td>Language</td><td><select id="select_sitting_lang">'
     for lang in languages:
         if lang == 'en':
             s += '<option value="' + lang + '" selected>' + lang + '</option>'
         else:
             s += '<option value="' + lang + '">' + lang + '</option>'
     s += '</select></td></tr></table></div>'
     self.sitting_details_form = s
     return template()
 def render(self, template=None):
     need("dhtmlxscheduler")
     need("dhtmlxscheduler-recurring")
     if template is None:
         template = self.template
     if (not checkPermission(u"bungeni.sitting.Add", self.context)) or \
         (IBusinessSectionLayer.providedBy(self.request)):
         self.edit = False
     else:
         self.edit = True
     session = Session()
     venues = session.query(domain.Venue).all()
     languages = get_all_languages()
     # !+SESSION_CLOSE(taras.sterch, july-2011) there is no need to close the 
     # session. Transaction manager will take care of this. Hope it does not 
     # brake anything.
     #session.close()
     self.display_language = get_default_language()
     if self.request.get("I18N_LANGUAGE"):
         self.display_language = self.request.get("I18N_LANGUAGE")
     #html is hardcoded in here because doing it in the template
     #would have been a colossal pain
     #TODO: FIX THIS
     s = '<div class="dhx_cal_ltext" style="height:90px;">' 
     s += '<table>'
     s += '<tr><td>Venue</td><td><select id="select_sitting_venue">'
     for venue in venues:
         s += '<option value="'+str(venue.venue_id)+'">'+venue.short_name+'</option>'
     s += '</select></td></tr>'
     s += '<tr><td>Language</td><td><select id="select_sitting_lang">'
     for lang in languages:
         if lang == 'en':
             s += '<option value="'+lang+'" selected>'+lang+'</option>'
         else:
             s += '<option value="'+lang+'">'+lang+'</option>'
     s += '</select></td></tr></table></div>'
     self.sitting_details_form = s
     return template()
Exemple #13
0
    def getMenuItems(self, context, request):
        """Return menu item entries in a TAL-friendly form."""
        url = ui_url.absoluteURL(context, request)
        if checkPermission("bungeni.translation.Add", context):
            language = get_language(context)
            available = get_available_translations(context)
            results = []
            for name, obj in get_all_languages().items():
                title = obj['name']

                # skip the current language
                if name == language:
                    continue

                translation_id = available.get(name)
                selected = translation_id is not None

                action_url = url + '/translate?language=%s' % name

                extra = {
                    'id': 'translation-action-%s' % name,
                    'separator': None,
                    'class': ''
                }

                results.append(
                    dict(title=title,
                         description="",
                         action=action_url,
                         selected=selected,
                         icon=None,
                         extra=extra,
                         submenu=None))

            return results
        else:
            return None
Exemple #14
0
 def render(self, template=None):
     if template is None:
         template = self.template
     if checkPermission(u"bungeni.sitting.Add", self.context):
         self.edit = True
     else:
         self.edit = False
     session = Session()
     venues = session.query(domain.Venue).all()
     languages = get_all_languages()
     sitting_types = session.query(domain.SittingType).all()
     session.close()
     self.display_language = 'en'
     if self.request.get('I18N_LANGUAGES'):
         self.display_language = self.request.get('I18N_LANGUAGES')
     s = '<div class="dhx_cal_ltext" style="height:90px;">'
     s += '<table><tr><td>Sitting Type</td><td><select id="select_sitting_type">'
     for sitting_type in sitting_types:
         s += '<option value="' + str(
             sitting_type.sitting_type_id
         ) + '">' + sitting_type.sitting_type + '</option>'
     s += '</select></td></tr>'
     s += '<tr><td>Venue</td><td><select id="select_sitting_venue">'
     for venue in venues:
         s += '<option value="' + str(
             venue.venue_id) + '">' + venue.short_name + '</option>'
     s += '</select></td></tr>'
     s += '<tr><td>Language</td><td><select id="select_sitting_lang">'
     for lang in languages:
         if lang == 'en':
             s += '<option value="' + lang + '" selected>' + lang + '</option>'
         else:
             s += '<option value="' + lang + '">' + lang + '</option>'
     s += '</select></td></tr></table></div>'
     self.sitting_details_form = s
     return template()