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 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
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]
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()
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, )
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 )
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()
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 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()