FIxes in i18n for use gettext

This commit is contained in:
Antonio de la Rosa 2025-03-20 15:29:38 +01:00
parent bd3b9f2b3b
commit 464754f5d3
6 changed files with 30 additions and 141 deletions

View file

@ -1,6 +1,6 @@
#from paramecio import wsgi_app
from paramecio.libraries.i18n import I18n
from paramecio.libraries.i18n import I18n, PGetText
from paramecio.libraries.mtemplates import env_theme, PTemplate
from paramecio.modules.admin2.models.admin import UserAdmin2, LoginTries2, PrivilegesModule2
from paramecio.libraries.db.webmodel import WebModel
@ -28,6 +28,10 @@ admin_app.install(check_login)
env=env_theme(__file__)
t=PTemplate(env)
gtext=PGetText(__file__)
_=gtext.gettext
usermodel=UserAdmin2()
usermodel.create_forms()

View file

@ -2,7 +2,7 @@ from paramecio.modules.admin2.models.admin import UserAdmin2
from paramecio.modules.admin2.app import admin_app
from paramecio.modules.admin2.libraries.config import modules_admin, modules_admin_icons
from paramecio.libraries.mtemplates import PTemplate, env_theme
from paramecio.libraries.i18n import I18n
from paramecio.libraries.i18n import I18n, PGetText
import paramecio.modules.admin2.libraries.i18n as i18n_lang
import os
#from paramecio.libraries.lists import SimpleList
@ -23,6 +23,11 @@ t=PTemplate(env)
i18n=I18n('admin2')
gtext=PGetText(__file__)
_=gtext.gettext
#t.env.directories=admin_t.env.directories
"""
tpl_path=os.path.dirname(__file__).replace('/admin', '')+'/templates/admin'
@ -32,9 +37,9 @@ if t.env.directories[1]!=tpl_path:
"""
#modules_admin.append(['menu_users', 'people-circle', True])
modules_admin.append(['admin_app.admin_users', 'people-circle', ['admin_app.admin_permissions']])
modules_admin['admin_app.admin_users']=[_('Admin users'), 'people-circle', ['admin_app.admin_permissions']]
modules_admin_icons.append('<symbol id="people-circle" viewBox="0 0 16 16"><path d="M11 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"/><path fill-rule="evenodd" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm8-7a7 7 0 0 0-5.468 11.37C3.242 11.226 4.805 10 8 10s4.757 1.225 5.468 2.37A7 7 0 0 0 8 1z"/></symbol>')
modules_admin_icons['admin_app.admin_users']='<symbol id="people-circle" viewBox="0 0 16 16"><path d="M11 6a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"/><path fill-rule="evenodd" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm8-7a7 7 0 0 0-5.468 11.37C3.242 11.226 4.805 10 8 10s4.757 1.225 5.468 2.37A7 7 0 0 0 8 1z"/></symbol>'
@admin_app.get('/ausers', name="admin_app.admin_users")
@admin_app.post('/ausers', name="admin_app.admin_users")
@ -104,7 +109,7 @@ def admin_permissions(user_id, session={}):
priv.fields['module'].name_form=SelectForm
arr_modules={v[0]:i18n.clang('admin2', v[0], v[0]) for v in modules_admin}
arr_modules={k:v[0] for k, v in modules_admin.items()}
priv.fields['user_id'].name_form=HiddenForm

View file

@ -4,7 +4,7 @@
# ['Name of module admin', 'name_function_for_url_for', 'xml-icon']
modules_admin=[]
modules_admin={}
modules_admin_icons=[]
modules_admin_icons={}

View file

@ -44,7 +44,7 @@ lang_selected=session['lang']
<symbol id="home" viewBox="0 0 16 16">
<path d="M8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4.5a.5.5 0 0 0 .5-.5v-4h2v4a.5.5 0 0 0 .5.5H14a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146zM2.5 14V7.707l5.5-5.5 5.5 5.5V14H10v-4a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5v4H2.5z"/>
</symbol>
%for module_icon in modules_admin_icons:
%for module_icon in modules_admin_icons.values():
${module_icon|n}
@ -77,18 +77,18 @@ lang_selected=session['lang']
<nav id="menu" class="nav-collapse">
<ul>
<li class="menu_title"><%block name="applications"><i class="fa fa-gear" aria-hidden="true"></i>${tlang('Applications')}</li></%block>
% for module in modules_admin:
% for module, mod_v in modules_admin.items():
<li>
% if module[0] in session['modules']:
% if len(module)>2 and type(module[2]).__name__=='str':
% if module in session['modules']:
% if len(mod_v)>2 and type(mod_v[2]).__name__=='str':
<div class="father_admin">
<svg class="bi me-2" width="16" height="16"><use xlink:href="#${module[1]}"></use></svg>
${i18n.clang('admin2', module[0], module[0])}
<svg class="bi me-2" width="16" height="16"><use xlink:href="#${mod_v[1]}"></use></svg>
${mod_v[0]}
</div>
% else:
<a href="${url_for(module[0])}" class="${'selected_menu' if module[0]==module_selected else ''}">
<svg class="bi me-2" width="16" height="16"><use xlink:href="#${module[1]}"></use></svg>
${i18n.clang('admin2', module[0], module[0])}
<a href="${url_for(module)}" class="${'selected_menu' if module==module_selected else ''}">
<svg class="bi me-2" width="16" height="16"><use xlink:href="#${mod_v[1]}"></use></svg>
${mod_v[0]}
</a>
% endif
% endif

View file

@ -1,123 +0,0 @@
<%
from parameciofast.modules.fastadmin.libraries.config import modules_admin, modules_admin_icons
from parameciofast.libraries.i18n import I18n
i18n=I18n('fastadmin')
%>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>${title}</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<link rel="stylesheet" href="${make_media_url('css/layout.css', 'fastadmin')}" type="text/css" media="all" />
<%block name="css">
</%block>
<%block name="header_js">
</%block>
</head>
<body data-bs-theme="dark">
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
<symbol id="home" viewBox="0 0 16 16">
<path d="M8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4.5a.5.5 0 0 0 .5-.5v-4h2v4a.5.5 0 0 0 .5.5H14a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146zM2.5 14V7.707l5.5-5.5 5.5 5.5V14H10v-4a.5.5 0 0 0-.5-.5h-3a.5.5 0 0 0-.5.5v4H2.5z"/>
</symbol>
%for module_icon in modules_admin_icons:
${module_icon|n}
%endfor
</svg>
<div class="loader-div" id="loader-div" style="display:none;">
<span class="loader">
<span></span>
<span></span>
</span>
</div>
<main>
<div class="container-fluid">
<div id="header_dashboard" class="row pt-3 pb-3">
<div class="col-sm-6 m-0 d-flex align-content-center flex-wrap align-self-center">
<h2 class="text-left ms-4 mt-0 mt-0 p-0" id="form_title">${tlang('Dashboard')}</h2>
</div>
</div>
<div class="row">
<div class="col-sm-2 p-3 m-0 text-white bg-dark" style="height:91vh;">
<!--<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-white text-decoration-none">
<svg class="bi me-2" width="40" height="32"><use xlink:href="#bootstrap"></use></svg>
<span class="fs-4">Sidebar</span>
</a>-->
<hr>
<!--<ul class="nav nav-pills flex-column mb-auto">
<li>
<a href="#" class="nav-link active text-white">
<svg class="bi me-2" width="16" height="16"><use xlink:href="#speedometer2"></use></svg>
${tlang('Dashboard')}
</a>
</li>
</ul>-->
% for module in modules_admin:
<ul class="nav nav-pills flex-column mb-auto">
<li>
<a href="${url_for(module[0])}" class="nav-link text-white menu_item ${'active' if module[0]==module_selected else ''}" id="menu_${module[0]}">
<svg class="bi me-2" width="16" height="16"><use xlink:href="#${module[1]}"></use></svg>
${i18n.clang('fastadmin', module[0], module[0])}
</a>
</li>
</ul>
% endfor
<hr>
</div>
<div class="col-sm m-2 pt-3" style="">
<%block name="content">
<div class="card">
<div class="card-header bg-primary bg-gradient">
${tlang('Welcome to admin')}
</div>
<div class="card-body">
<p>${tlang('This is the admin section of your site.')}</p>
</div>
</div>
</%block>
</div>
</div>
</main>
</div>
<footer class="footer m-0 p-0">
</footer>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js" integrity="sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy" crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
<script>
document.documentElement.setAttribute('data-bs-theme','dark');
setTimeout(function () {
$('#loader-div').fadeOut(2000);
}, 1000);
$('.menu_item').hover( function (e) {
if($(this).hasClass('active')) {
$(this).removeClass('active');
} else {
$(this).addClass('active');
}
});
</script>
<%block name="js">
</%block>
</body>
</html>