def init_cached_languages(): """This method initializes the app cached translations""" global languages, lang_codes, lang_map del languages[:] del lang_codes[:] lang_map.clear() for lang in Language.all().order("-date"): logging.info("Generating cache for language %s" % lang.code) languages.append( { "id": lang.key().id(), "code": lang.code, "label": lang.label, "enabled_in_tool": lang.enabled_in_tool, "enabled_on_site": lang.enabled_on_site, } ) lang_codes = [i["code"] for i in languages] for lang in languages: lang_map[lang["code"].lower().replace("_", "-")] = lang["code"] lang_map[lang["code"].split("_")[0]] = lang["code"]
def post(self): """Create a new language and fill it with empty translations""" if not users.is_current_user_admin(): self.error(403) code = self.request.get('code') label = self.request.get('label') language = Language.all().filter('code =', code).get() if language is not None: self.error(500) else: language = Language(code=code, label=label, enabled_in_tool=False, enabled_on_site=False) for phrase in Phrase.all(): translation = Translation(phrase=phrase, text='') translation.put() language.translations.append(translation.key()) language.put() init_cached_languages() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('')
def post(self): """Deploy action""" json = {} for language in Language.all().filter('enabled_on_site =', True): logging.info("Buiding translation snapshot for " + language.code) translations = {} for key in language.translations: translation = db.get(key) translations[translation.phrase.text] = translation.text json[language.code] = translations logging.info("Encoding snapshot JSON") json = simplejson.dumps(json) logging.info("Switching active snapshot") active_snapshot = SnapshotMetadata.all().filter('active =', True).get() if active_snapshot: active_snapshot.active = False active_snapshot.save() metadata = SnapshotMetadata(active=True) metadata.put() content = SnapshotContent(metadata=metadata, json=json) content.put() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def post(self): """Deploy action""" json = {} for language in Language.all().filter('enabled_on_site =', True): logging.info("Buiding translation snapshot for " + language.code) translations = {} for key in language.translations: translation = db.get(key) translations[translation.phrase.text] = translation.text json[language.code] = translations logging.info("Encoding snapshot JSON") json = simplejson.dumps(json) logging.info("Switching active snapshot") active_snapshot = SnapshotMetadata.all().filter('active =', True).get() if active_snapshot: active_snapshot.active = False active_snapshot.save() metadata = SnapshotMetadata(active=True) metadata.put() content = SnapshotContent(metadata=metadata, json=json) content.put() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def post(self): """Post new suggestion""" lang_code = self.request.path.split('/')[-3] language = Language.all().filter('code =', lang_code).get() if language is None: self.error(404) user = get_current_youtify_user_model() if not (users.is_current_user_admin() or user.key() in language.leaders): self.error(403) translation_id = self.request.path.split('/')[-1] translation = Translation.get_by_id(int(translation_id)) if translation is None: self.error(404) translation.text = self.request.get('text') translation.save() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def post(self): """Deploy action""" json = {} for language in Language.all(): translations = {} for key in language.translations: translation = db.get(key) translations[translation.phrase.text] = translation.text json[language.code] = translations json = simplejson.dumps(json) active_snapshot = SnapshotMetadata.all().filter('active =', True).get() if active_snapshot: active_snapshot.active = False active_snapshot.save() metadata = SnapshotMetadata(active=True) metadata.put() content = SnapshotContent(metadata=metadata, json=json) content.put() init_cached_translations() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def get(self): lang_code = self.request.path.split("/")[-2] language = Language.all().filter("code =", lang_code).get() if language is None: self.error(404) json = [] for key in language.leaders: user = db.get(key) json.append({"id": user.key().id(), "name": user.google_user.nickname(), "email": user.google_user.email()}) self.response.headers["Content-Type"] = "application/json" self.response.out.write(simplejson.dumps(json))
def post(self): """Create a new phrase""" if not users.is_current_user_admin(): self.error(403) else: text = self.request.get('text') phrase = Phrase(text=text) phrase.put() for lang in Language.all(): translation = Translation(phrase=phrase, text='') translation.save() lang.translations.append(translation.key()) lang.save()
def post(self): """Create a new phrase""" if not users.is_current_user_admin(): self.error(403) else: text = self.request.get('text') phrase = Phrase(text=text) phrase.put() for lang in Language.all(): translation = Translation(phrase=phrase, text='') translation.save() lang.translations.append(translation.key()) lang.save()
def get(self): """Get all translations for a specific language""" lang_code = self.request.path.split("/")[-2] language = Language.all().filter("code =", lang_code).get() if language is None: self.error(404) json = [] translations = db.get(language.translations) for translation in translations: json.append( {"id": translation.key().id(), "original": translation.phrase.text, "translation": translation.text} ) self.response.headers["Content-Type"] = "application/json" self.response.out.write(simplejson.dumps(json))
def delete(self): """Remove a user from the list of leaders""" lang_code = self.request.path.split('/')[-3] user_id = self.request.path.split('/')[-1] language = Language.all().filter('code =', lang_code).get() user = YoutifyUser.get_by_id(int(user_id)) if language is None: self.error(404) if user is None: self.error(404) language.leaders.remove(user.key()) language.save() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def delete(self): """Remove a user from the list of leaders""" lang_code = self.request.path.split('/')[-3] user_id = self.request.path.split('/')[-1] language = Language.all().filter('code =', lang_code).get() user = YoutifyUser.get_by_id(int(user_id)) if language is None: self.error(404) if user is None: self.error(404) language.leaders.remove(user.key()) language.save() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def get(self): lang_code = self.request.path.split('/')[-2] language = Language.all().filter('code =', lang_code).get() if language is None: self.error(404) json = [] for key in language.leaders: user = db.get(key) json.append({ 'id': user.key().id(), 'name': user.google_user2.nickname(), 'email': user.google_user2.email(), }) self.response.headers['Content-Type'] = 'application/json' self.response.out.write(simplejson.dumps(json))
def get(self): lang_code = self.request.path.split('/')[-2] language = Language.all().filter('code =', lang_code).get() if language is None: self.error(404) json = [] for key in language.leaders: user = db.get(key) json.append({ 'id': user.key().id(), 'name': user.google_user2.nickname(), 'email': user.google_user2.email(), }) self.response.headers['Content-Type'] = 'application/json' self.response.out.write(simplejson.dumps(json))
def post(self): """Add a new leader for this language""" lang_code = self.request.path.split('/')[-2] language = Language.all().filter('code =', lang_code).get() user_id = self.request.get('user') if language is None: self.error(404) if user_id is None: self.error(400) user = YoutifyUser.get_by_id(int(user_id)) if user.key() not in language.leaders: language.leaders.append(user.key()) language.save() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def post(self): """Add a new leader for this language""" lang_code = self.request.path.split('/')[-2] language = Language.all().filter('code =', lang_code).get() user_id = self.request.get('user') if language is None: self.error(404) if user_id is None: self.error(400) user = YoutifyUser.get_by_id(int(user_id)) if user.key() not in language.leaders: language.leaders.append(user.key()) language.save() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def post(self): """Add a new leader for this language""" lang_code = self.request.path.split("/")[-2] language = Language.all().filter("code =", lang_code).get() user_id = self.request.get("user") if language is None: self.error(404) if user_id is None: self.error(400) user = YoutifyUser.get_by_id(int(user_id)) if user.key() not in language.leaders: language.leaders.append(user.key()) language.save() self.response.headers["Content-Type"] = "text/plain" self.response.out.write("success")
def get(self): """Get all translations for a specific language""" lang_code = self.request.path.split('/')[-2] language = Language.all().filter('code =', lang_code).get() if language is None: self.error(404) json = [] translations = db.get(language.translations) for translation in translations: try: json.append({ 'id': translation.key().id(), 'original': translation.phrase.text, 'translation': translation.text, }) except: translation.delete() self.response.headers['Content-Type'] = 'application/json' self.response.out.write(simplejson.dumps(json))
def get(self): """Get all translations for a specific language""" lang_code = self.request.path.split('/')[-2] language = Language.all().filter('code =', lang_code).get() if language is None: self.error(404) json = [] translations = db.get(language.translations) for translation in translations: try: json.append({ 'id': translation.key().id(), 'original': translation.phrase.text, 'translation': translation.text, }) except: translation.delete() self.response.headers['Content-Type'] = 'application/json' self.response.out.write(simplejson.dumps(json))
def delete(self): """Delete a specific phrase and all its translations""" if not users.is_current_user_admin(): self.error(403) phrase_id = self.request.path.split('/')[-1] phrase = Phrase.get_by_id(int(phrase_id)) if phrase: for lang in Language.all(): for translation in db.get(lang.translations): if translation.phrase.key() == phrase.key(): lang.translations.remove(translation.key()) translation.delete() lang.save() phrase.delete() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success'); else: self.error(404)
def delete(self): """Delete a specific phrase and all its translations""" if not users.is_current_user_admin(): self.error(403) phrase_id = self.request.path.split('/')[-1] phrase = Phrase.get_by_id(int(phrase_id)) if phrase: for lang in Language.all(): for translation in db.get(lang.translations): if translation.phrase.key() == phrase.key(): lang.translations.remove(translation.key()) translation.delete() lang.save() phrase.delete() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success') else: self.error(404)
def init_cached_languages(): """This method initializes the app cached translations""" global languages, lang_codes, lang_map del languages[:] del lang_codes[:] lang_map.clear() for lang in Language.all().order('-date'): logging.info("Generating cache for language %s" % lang.code) languages.append({ 'id': lang.key().id(), 'code': lang.code, 'label': lang.label, 'enabled_in_tool': lang.enabled_in_tool, 'enabled_on_site': lang.enabled_on_site, }) lang_codes = [i['code'] for i in languages] for lang in languages: lang_map[lang['code'].lower().replace('_', '-')] = lang['code'] lang_map[lang['code'].split('_')[0]] = lang['code']
def post(self): """Create a new language and fill it with empty translations""" if not users.is_current_user_admin(): self.error(403) code = self.request.get('code') label = self.request.get('label') language = Language.all().filter('code =', code).get() if language is not None: self.error(500) else: language = Language(code=code, label=label, enabled_in_tool=False, enabled_on_site=False) for phrase in Phrase.all(): translation = Translation(phrase=phrase, text='') translation.put() language.translations.append(translation.key()) language.put() init_cached_languages() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('')
def init_cached_languages(): """This method initializes the app cached translations""" global languages, lang_codes, lang_map del languages[:] del lang_codes[:] lang_map.clear() for lang in Language.all().order('-date'): logging.info("Generating cache for language %s" % lang.code) languages.append({ 'id': lang.key().id(), 'code': lang.code, 'label': lang.label, 'enabled_in_tool': lang.enabled_in_tool, 'enabled_on_site': lang.enabled_on_site, }) lang_codes = [i['code'] for i in languages] for lang in languages: lang_map[lang['code'].lower().replace('_', '-')] = lang['code'] lang_map[lang['code'].split('_')[0]] = lang['code']
def post(self): """Post new suggestion""" lang_code = self.request.path.split('/')[-3] language = Language.all().filter('code =', lang_code).get() if language is None: self.error(404) user = get_current_youtify_user_model() if not (users.is_current_user_admin() or user.key() in language.leaders): self.error(403) translation_id = self.request.path.split('/')[-1] translation = Translation.get_by_id(int(translation_id)) if translation is None: self.error(404) translation.text = self.request.get('text') translation.save() self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('success')
def get_leader_langs_for_user(youtify_user): ret = [] for language in Language.all(): if youtify_user.key() in language.leaders: ret.append(language.code) return ret
def get_leader_langs_for_user(youtify_user): ret = [] for language in Language.all(): if youtify_user.key() in language.leaders: ret.append(language.code) return ret