def static_page(slug): # 1- load static_pages.json # 2- search the slug # 3- render appropiate md file (including language....) slugs = {} aux_text = '' basedir = os.path.abspath(os.path.dirname(__file__)) data_file = os.path.join(basedir, 'static/js/large.js') with open(os.path.join(basedir, 'static/staticpages/static_pages.json'), encoding="utf-8") as file: slugs = json.load(file) if slugs: with open(os.path.join( basedir, 'static/staticpages/' + get_locale() + '/' + slugs[slug][get_locale()]["url"]), 'r', encoding="utf-8") as file: aux_text = file.read() file.close() markdown = mistune.Markdown() aux_text = markdown(aux_text) return render_template('iroko_theme/static_pages.html', title=slugs[slug][get_locale()]["title"], text=aux_text)
def test_get_locale_querystring(app): """Test getting locales from the querystring.""" app.config['I18N_LANGUAGES'] = [('da', 'Danish'), ('en', 'English'), ('es', 'Spanish')] InvenioI18N(app) with app.test_request_context('/?ln=da'): assert 'da' == get_locale() with app.test_request_context('/?ln=en'): assert 'en' == get_locale() with app.test_request_context('/?ln=es'): assert 'es' == get_locale()
def test_get_locale_headers(app): """Test getting locale from the headers of the request.""" app.config['I18N_LANGUAGES'] = [('da', 'Danish'), ('en', 'English'), ('es', 'Spanish')] InvenioI18N(app) with app.test_request_context(headers=[('Accept-Language', 'da')]): assert 'da' == get_locale() with app.test_request_context(headers=[('Accept-Language', 'en')]): assert 'en' == get_locale() with app.test_request_context(headers=[('Accept-Language', 'es')]): assert 'es' == get_locale()
def ev(): try: locale = get_locale() except: log.error('Exception in get_locale. Are you sure that you have added invenio_i18n to api_apps?') raise return f'{fld}.{locale}'
def test_get_locale_default(app): """Test getting locale by default.""" app.config['I18N_LANGUAGES'] = [('da', 'Danish'), ('en', 'English'), ('es', 'Spanish')] InvenioI18N(app) with app.test_request_context(): assert 'en' == get_locale()
def test_get_locale_querystring(app): """Test getting locales from the querystring.""" app.config["I18N_LANGUAGES"] = [ ("da", "Danish"), ("en", "English"), ("es", "Spanish"), ] InvenioI18N(app) with app.test_request_context("/?ln=da"): assert "da" == get_locale() with app.test_request_context("/?ln=en"): assert "en" == get_locale() with app.test_request_context("/?ln=es"): assert "es" == get_locale()
def test_get_locale_headers(app): """Test getting locale from the headers of the request.""" app.config["I18N_LANGUAGES"] = [ ("da", "Danish"), ("en", "English"), ("es", "Spanish"), ] InvenioI18N(app) with app.test_request_context(headers=[("Accept-Language", "da")]): assert "da" == get_locale() with app.test_request_context(headers=[("Accept-Language", "en")]): assert "en" == get_locale() with app.test_request_context(headers=[("Accept-Language", "es")]): assert "es" == get_locale()
def index(form=None): # # print(USERPROFILES_EXTEND_SECURITY_FORMS) """Simplistic front page view.""" # vocabularies = Vocabulary.query.all() # vocab_stats = [] # vocab_stats.append({'records':get_record_count()}) # records = get_record_count() # sources = IrokoAggs.getAggrs("source.name", 50000) # vocab_stats.append({'sources':str(len(sources))}) # # authors = IrokoAggs.getAggrs("creators.name",50000) # ## print('authors'+str(authors)) # vocab_stats.append({'authors':str(len(authors))}) # TODO: cuando se vaya a escribir el json es agregarle la opcion w y # ensure_ascii=False para que las tildes y demas se pongan bien texts = {} with open(current_app.config['INIT_STATIC_JSON_PATH'] + '/' + get_locale() + '/texts.json', encoding="utf-8") as file: texts = json.load(file) faqs = {} if 'faq' in texts.keys(): faqs = texts['faq'] # texts = '' # with open(current_app.config['INIT_STATIC_JSON_PATH']+'/'+get_locale()+'/faqs.md', # 'r') as file: # texts = file.read() # file.close() # markdown = mistune.Markdown() # faqs = markdown(texts) # keywords = IrokoAggs.getAggrs("keywords",50000) # ## print('keywords'+str(keywords)) # vocab_stats.append({'Keywords':str(len(keywords))}) # # for vocab in vocabularies: # vocab_stats.append({vocab.identifier:str(Term.query.filter_by( # vocabulary_id=vocab.identifier).count())}) if not form: form = ContactForm() if form.validate_on_submit(): # print('Mensaje enviado') pass return render_template( current_app.config['THEME_FRONTPAGE_TEMPLATE'], vocabularies=None, vocab_stats=None, faqs=faqs, form=form, records=None, )
def test_get_locale_session(app): """Test getting locales from the current session.""" app.config['I18N_LANGUAGES'] = [('da', 'Danish'), ('en', 'English'), ('es', 'Spanish')] app.secret_key = 'secret key' InvenioI18N(app) with app.test_request_context(): session['language'] = 'da' assert 'da' == get_locale() with app.test_request_context(): session['language'] = 'en' assert 'en' == get_locale() with app.test_request_context(): session['language'] = 'es' assert 'es' == get_locale()
def test_get_locale_anonymous_user(app): """Test anonymous user locale selection by default.""" app.secret_key = 'secret key' login_manager = LoginManager() login_manager.init_app(app) login_manager.login_view = 'login' InvenioI18N(app) with app.test_request_context(): assert 'en' == get_locale()
def __init__(self, *args, **kwargs): super(InclusionForm, self).__init__() requeriments = {} choices = [] with open(current_app.config['INIT_STATIC_JSON_PATH'] + '/' + get_locale() + '/inclusion_requeriments.json') as file: requeriments = json.load(file) for item in requeriments: choices.append((item, requeriments[item])) self.requeriments.choices = choices
def test_get_locale_anonymous_user(app): """Test anonymous user locale selection by default.""" app.secret_key = "secret key" login_manager = LoginManager() login_manager.init_app(app) login_manager.login_view = "login" login_manager.user_loader(lambda id_: {}) InvenioI18N(app) with app.test_request_context(): assert "en" == get_locale()
def test_get_locale_default(app): """Test getting locale by default.""" app.config["I18N_LANGUAGES"] = [ ("da", "Danish"), ("en", "English"), ("es", "Spanish"), ] InvenioI18N(app) with app.test_request_context(): assert "en" == get_locale()
def test_get_locale_session(app): """Test getting locales from the current session.""" app.config["I18N_LANGUAGES"] = [ ("da", "Danish"), ("en", "English"), ("es", "Spanish"), ] app.secret_key = "secret key" InvenioI18N(app) with app.test_request_context(): session["language"] = "da" assert "da" == get_locale() with app.test_request_context(): session["language"] = "en" assert "en" == get_locale() with app.test_request_context(): session["language"] = "es" assert "es" == get_locale()
def test_get_locale_user_settings(app): """Test getting locales from the user settings.""" app.config['I18N_LANGUAGES'] = [('da', 'Danish'), ('en', 'English'), ('es', 'Spanish')] app.secret_key = 'secret key' login_manager = LoginManager() login_manager.init_app(app) login_manager.login_view = 'login' InvenioI18N(app) with app.test_request_context(): login_user(FakeUser('da')) assert 'da' == get_locale() with app.test_request_context(): login_user(FakeUser('en')) assert 'en' == get_locale() with app.test_request_context(): login_user(FakeUser('es')) assert 'es' == get_locale()
def test_get_locale_user_settings(app): """Test getting locales from the user settings.""" app.config["I18N_LANGUAGES"] = [ ("da", "Danish"), ("en", "English"), ("es", "Spanish"), ] app.secret_key = "secret key" login_manager = LoginManager() login_manager.init_app(app) login_manager.login_view = "login" InvenioI18N(app) with app.test_request_context(): login_user(FakeUser("da")) assert "da" == get_locale() with app.test_request_context(): login_user(FakeUser("en")) assert "en" == get_locale() with app.test_request_context(): login_user(FakeUser("es")) assert "es" == get_locale()
def send_contact_email(name, email, user_message): language = get_locale().upper() client_ip = request.environ.get('HTTP_X_REAL_IP', request.remote_addr) send_email( 'message from sceiba', sender=current_app.config['SECURITY_EMAIL_SENDER'], # recipients=current_app.config['ADMINS'], recipients=email, text_body=render_template('iroko_theme/email/contact_email.txt', name=name, email=email, user_message=user_message, language=language, ip=client_ip), html_body=render_template('iroko_theme/email/contact_email.html', name=name, email=email, user_message=user_message, language=language, ip=client_ip))