diff --git a/README.md b/README.md index 12d2bbca80..b1117729b7 100644 --- a/README.md +++ b/README.md @@ -148,9 +148,15 @@ Mémo pour développeurs: séquence re-création d'une base: flask import-scodoc7-users flask import-scodoc7-dept STID SCOSTID +Si la base utilisée pour les dev n'est plus en phase avec les scripts de +migration, utiliser les commandes `flask db history`et `flask db stamp`pour se +positionner à la bonne étape. + # Paquet debian 11 -Les scripts associés au paquet Debian (.deb) sont dans `tools/debian`. +Les scripts associés au paquet Debian (.deb) sont dans `tools/debian`. Le plus +important est `postinst`qui se charge de configurer le système (install ou +upgrade de scodoc9). La préparation d'une release se fait à l'aide du script `tools/build_release.sh`. diff --git a/app/__init__.py b/app/__init__.py index a913f57ec5..33fbd23a51 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -32,7 +32,7 @@ db = SQLAlchemy() migrate = Migrate(compare_type=True) login = LoginManager() login.login_view = "auth.login" -login.login_message = "Please log in to access this page." +login.login_message = "Identifiez-vous pour accéder à cette page." mail = Mail() bootstrap = Bootstrap() moment = Moment() @@ -353,4 +353,4 @@ from app.scodoc import sco_cache # click.echo( # "Warning: user database not initialized !\n (use: flask user-db-init)" # ) -# admin = None \ No newline at end of file +# admin = None diff --git a/app/auth/forms.py b/app/auth/forms.py index e374781776..143f655461 100644 --- a/app/auth/forms.py +++ b/app/auth/forms.py @@ -16,20 +16,20 @@ _l = _ class LoginForm(FlaskForm): - user_name = StringField(_l("Username"), validators=[DataRequired()]) - password = PasswordField(_l("Password"), validators=[DataRequired()]) - remember_me = BooleanField(_l("Remember Me")) - submit = SubmitField(_l("Sign In")) + user_name = StringField(_l("Nom d'utilisateur"), validators=[DataRequired()]) + password = PasswordField(_l("Mot de passe"), validators=[DataRequired()]) + remember_me = BooleanField(_l("mémoriser la connexion")) + submit = SubmitField(_l("Suivant")) class UserCreationForm(FlaskForm): - user_name = StringField(_l("Username"), validators=[DataRequired()]) + user_name = StringField(_l("Nom d'utilisateur"), validators=[DataRequired()]) email = StringField(_l("Email"), validators=[DataRequired(), Email()]) - password = PasswordField(_l("Password"), validators=[DataRequired()]) + password = PasswordField(_l("Mot de passe"), validators=[DataRequired()]) password2 = PasswordField( - _l("Repeat Password"), validators=[DataRequired(), EqualTo("password")] + _l("Répéter"), validators=[DataRequired(), EqualTo("password")] ) - submit = SubmitField(_l("Register")) + submit = SubmitField(_l("Inscrire")) def validate_user_name(self, user_name): user = User.query.filter_by(user_name=user_name.data).first() @@ -48,9 +48,9 @@ class ResetPasswordRequestForm(FlaskForm): class ResetPasswordForm(FlaskForm): - password = PasswordField(_l("Password"), validators=[DataRequired()]) + password = PasswordField(_l("Mot de passe"), validators=[DataRequired()]) password2 = PasswordField( - _l("Repeat Password"), validators=[DataRequired(), EqualTo("password")] + _l("Répéter"), validators=[DataRequired(), EqualTo("password")] ) submit = SubmitField(_l("Request Password Reset")) diff --git a/app/auth/routes.py b/app/auth/routes.py index 7b1712f00b..b4d107c2ae 100644 --- a/app/auth/routes.py +++ b/app/auth/routes.py @@ -38,7 +38,7 @@ def login(): user = User.query.filter_by(user_name=form.user_name.data).first() if user is None or not user.check_password(form.password.data): current_app.logger.info("login: invalid (%s)", form.user_name.data) - flash(_("Invalid user name or password")) + flash(_("Nom ou mot de passe invalide")) return redirect(url_for("auth.login")) login_user(user, remember=form.remember_me.data) current_app.logger.info("login: success (%s)", form.user_name.data) @@ -95,7 +95,7 @@ def reset_password_request(): current_app.logger.info( "reset_password_request: for unkown user '{}'".format(form.email.data) ) - flash(_("Check your email for the instructions to reset your password")) + flash(_("Voir les instructions enoyez par mail")) return redirect(url_for("auth.login")) return render_template( "auth/reset_password_request.html", title=_("Reset Password"), form=form diff --git a/app/scodoc/html_sidebar.py b/app/scodoc/html_sidebar.py index 5ec2ae26b4..dc0b12959f 100644 --- a/app/scodoc/html_sidebar.py +++ b/app/scodoc/html_sidebar.py @@ -152,10 +152,10 @@ def sidebar(): # Logo H.append( f"""
diff --git a/app/scodoc/sco_users.py b/app/scodoc/sco_users.py index f7eee67311..53437cbe72 100644 --- a/app/scodoc/sco_users.py +++ b/app/scodoc/sco_users.py @@ -258,6 +258,7 @@ def user_info(user_name_or_id=None, user=None): info = u.to_dict() else: info = None + user_name = "inconnu" else: info = user.to_dict() user_name = user.user_name diff --git a/app/static/css/scodoc.css b/app/static/css/scodoc.css index 47019d941b..ef9df0da52 100644 --- a/app/static/css/scodoc.css +++ b/app/static/css/scodoc.css @@ -2614,7 +2614,8 @@ div.maindiv { margin: 1em; } ul.main { - list-style-type: square; + list-style-type: square; + margin-top: 1em; } ul.main li { diff --git a/app/templates/about.html b/app/templates/about.html new file mode 100644 index 0000000000..2dc506915d --- /dev/null +++ b/app/templates/about.html @@ -0,0 +1,25 @@ +{% extends 'base.html' %} +{% import 'bootstrap/wtf.html' as wtf %} + +{% block app_content %} + +© Emmanuel Viennet 2021
+ +Version {{ version }}
+ +ScoDoc est un logiciel libre écrit en +Python. +Information et documentation sur scodoc.org. +
+ +L'accès à ScoDoc est strictement réservé aux personnels de + l'établissement. Les étudiants n'y ont pas accès. Pour toute information, + contactez la personne responsable de votre établissement.
{% endblock %} \ No newline at end of file diff --git a/app/templates/scodoc.html b/app/templates/scodoc.html index f48ad0f460..c0e1edddaf 100644 --- a/app/templates/scodoc.html +++ b/app/templates/scodoc.html @@ -2,7 +2,7 @@ {% import 'bootstrap/wtf.html' as wtf %} {% block app_content %} -Bonjour {{current_user.get_nomcomplet()}}
@@ -24,10 +24,6 @@
{% endfor %}
-
- Ceci est une version de test,
- ne pas utiliser en production !
-