Skip to content
This repository has been archived by the owner on Jun 24, 2024. It is now read-only.

Commit

Permalink
Merge branch 'release/2.1.8'
Browse files Browse the repository at this point in the history
AlexandreJunod committed Apr 6, 2023
2 parents 69fad89 + 5630f53 commit 5aca199
Showing 74 changed files with 467 additions and 386 deletions.
33 changes: 26 additions & 7 deletions geocity/apps/accounts/admin.py
Original file line number Diff line number Diff line change
@@ -440,6 +440,8 @@ class GroupAdmin(admin.ModelAdmin):
"get__is_default_validator",
"get__is_backoffice",
"get__mandatory_2fa",
"get__forms_number",
"get__sites_number",
]

filter_horizontal = ("permissions",)
@@ -483,6 +485,18 @@ def get__mandatory_2fa(self, obj):
get__mandatory_2fa.admin_order_field = "permit_department__mandatory_2fa"
get__mandatory_2fa.short_description = _("2FA obligatoire")

def get__forms_number(self, obj):
if obj.permit_department.is_integrator_admin:
return obj.permit_department.administrative_entity.forms.count()

get__forms_number.short_description = _("Nombre de formulaires")

def get__sites_number(self, obj):
if obj.permit_department.is_integrator_admin:
return obj.site_profiles.count()

get__sites_number.short_description = _("Nombre de sites")

def get_queryset(self, request):

if request.user.is_superuser:
@@ -530,16 +544,21 @@ def label_from_instance(self, obj):


def get_sites_field(user):

qs = models.Site.objects.all()

if not user.is_superuser:
integrator = user.groups.get(permit_department__is_integrator_admin=True)
administrative_entity = integrator.permit_department.administrative_entity

# Get the default site
# Get the sites associated to this integrator
# Get the sites associated to the entity
qs = qs.filter(
Q(
site_profile__integrator__in=user.groups.filter(
permit_department__is_integrator_admin=True
)
)
| Q(domain=settings.DEFAULT_SITE)
)
Q(domain=settings.DEFAULT_SITE)
| Q(site_profile__integrator=integrator.pk)
| Q(administrative_entity=administrative_entity.pk)
).distinct()

return SiteWithAdministrativeEntitiesField(
queryset=qs,
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 4.1.7 on 2023-04-05 07:33

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("sites", "0002_alter_domain_unique"),
("accounts", "0011_add_signature_sheet_to_administrative_entity"),
]

operations = [
migrations.AlterField(
model_name="administrativeentity",
name="sites",
field=models.ManyToManyField(
related_name="administrative_entity",
to="sites.site",
verbose_name="Détails du Site",
),
),
]
2 changes: 1 addition & 1 deletion geocity/apps/accounts/models.py
Original file line number Diff line number Diff line change
@@ -290,7 +290,7 @@ class AdministrativeEntity(models.Model):

sites = models.ManyToManyField(
Site,
related_name="+",
related_name="administrative_entity",
verbose_name=_("Détails du Site"),
)
directive = AdministrativeEntityFileField(
12 changes: 6 additions & 6 deletions geocity/apps/accounts/templates/account/lockout.html
Original file line number Diff line number Diff line change
@@ -15,8 +15,8 @@
<div class="container">
<p>
<h1>Geocity</h1>
<h2>{% trans "Trop de tentatives de connexion!" %}</h2>
<h3>{% trans "Votre compte a été verrouillé par mesure de sécurité. Merci de contacter l'administrateur pour résoudre le problème." %}</h3>
<h2>{% translate "Trop de tentatives de connexion!" %}</h2>
<h3>{% translate "Votre compte a été verrouillé par mesure de sécurité. Merci de contacter l'administrateur pour résoudre le problème." %}</h3>
</p>
<img src="{% static 'images/errors/lockout.svg'%}" class="img-fluid" type="image/gif">
</div>
@@ -25,18 +25,18 @@ <h3>{% trans "Votre compte a été verrouillé par mesure de sécurité. Merci d
<small>
&copy; {% now "Y" %} Geocity
&nbsp;|&nbsp;
<a href="https://geocity.ch/about" target="_blank" rel="noreferrer">{% trans "A propos" %}</a>
<a href="https://geocity.ch/about" target="_blank" rel="noreferrer">{% translate "A propos" %}</a>
{% if config.CONTACT_URL %}
&nbsp;|&nbsp;
<a href="{{ config.CONTACT_URL }}" target="_blank" rel="noreferrer">{% trans "Contact" %}</a>
<a href="{{ config.CONTACT_URL }}" target="_blank" rel="noreferrer">{% translate "Contact" %}</a>
{% endif %}
{% if config.GENERAL_CONDITIONS_URL %}
&nbsp;|&nbsp;
<a href="{{ config.GENERAL_CONDITIONS_URL }}" target="_blank" rel="noreferrer">{% trans "Conditions" %}</a>
<a href="{{ config.GENERAL_CONDITIONS_URL }}" target="_blank" rel="noreferrer">{% translate "Conditions" %}</a>
{% endif %}
{% if config.PRIVACY_POLICY_URL %}
&nbsp;|&nbsp;
<a href="{{ config.PRIVACY_POLICY_URL }}" target="_blank" rel="noreferrer">{% trans "Confidentialité" %}</a>
<a href="{{ config.PRIVACY_POLICY_URL }}" target="_blank" rel="noreferrer">{% translate "Confidentialité" %}</a>
{% endif %}
</small>
</div>
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{% load i18n %}
{% autoescape off %}
{% blocktrans %}Bonjour {{ user }}{% endblocktrans %},
{% blocktranslate %}Bonjour {{ user }}{% endblocktranslate %},

{% trans "Nous devons simplement vérifier votre adresse e-mail avant que vous puissiez accéder à Geocity." %}
{% translate "Nous devons simplement vérifier votre adresse e-mail avant que vous puissiez accéder à Geocity." %}

{% trans "Vérifiez votre adresse e-mail: " %}https://{{ domain }}{{ url }}
{% translate "Vérifiez votre adresse e-mail: " %}https://{{ domain }}{{ url }}

{% trans "Avec nos meilleures salutations," %}
{% translate "Avec nos meilleures salutations," %}
{{ signature }}

{% trans "Ceci est un e-mail automatique, veuillez ne pas y répondre." %}
{% translate "Ceci est un e-mail automatique, veuillez ne pas y répondre." %}
{% endautoescape %}
14 changes: 7 additions & 7 deletions geocity/apps/accounts/templates/registration/login.html
Original file line number Diff line number Diff line change
@@ -33,24 +33,24 @@ <h5>{{ customization.application_subtitle|safe }}</h5>
<div id="login-container">
{% if next and user.is_authenticated %}
<div>
<p id="login-issue">{% trans "Votre compte ne dispose pas des droits nécessaires pour accéder à cette page" %}</p>
<p id="login-issue">{% translate "Votre compte ne dispose pas des droits nécessaires pour accéder à cette page" %}</p>
</div>
{% endif %}

{% if form.errors %}
<div class="mt-3">
<p class="text-danger font-weight-bold">{% trans "Votre mot de passe et votre nom d'utilisateur ne correspondent pas ou votre compte n'a pas encore été activé" %}</p>
<p class="text-danger font-weight-bold">{% translate "Votre mot de passe et votre nom d'utilisateur ne correspondent pas ou votre compte n'a pas encore été activé" %}</p>
</div>
{% endif %}
<form method="post" action="">
{% csrf_token %}
<div>
<h4>{% trans "Connexion" %}</h4>
<h4>{% translate "Connexion" %}</h4>
{{ wizard.management_form }}
<p>{% trans "Connectez-vous à l'aide de vos identifiants" %}</p>
<p>{% translate "Connectez-vous à l'aide de vos identifiants" %}</p>
<p>{% bootstrap_field form.username show_label=False placeholder="Identifiant" %}</p>
<p>{% bootstrap_field form.password show_label=False placeholder="Mot de passe" %}</p>
<button id="login_button" class="btn btn-primary font-weight-bold left-button" type="submit">{% trans "ME CONNECTER" %}</button>
<button id="login_button" class="btn btn-primary font-weight-bold left-button" type="submit">{% translate "ME CONNECTER" %}</button>
<br>
</div>
{# hidden submit button to enable [enter] key #}
@@ -59,8 +59,8 @@ <h4>{% trans "Connexion" %}</h4>
<br>
<div>
<a class="form-text" href="{% url 'accounts:user_profile_create' %}{%if query_string %}?{{query_string}}{% endif %}">
{% trans "Créer un compte" %}</a>
<a class="form-text" href="{% url 'password_reset' %}">{% trans "Perdu votre mot de passe ?" %}</a>
{% translate "Créer un compte" %}</a>
<a class="form-text" href="{% url 'password_reset' %}">{% translate "Perdu votre mot de passe ?" %}</a>
{% include "registration/_social_login.html" %}
</div>
</div>
Original file line number Diff line number Diff line change
@@ -10,5 +10,5 @@ <h3>Message de réinitialisation envoyé</h3>

Si vous ne recevez pas de message, vérifiez que vous avez saisi l'adresse avec laquelle vous vous êtes enregistré et contrôlez votre dossier de pourriels.</p>

<a href="../../../" class="mr-2">{% trans "Retour" %}</a>
<a href="../../../" class="mr-2">{% translate "Retour" %}</a>
{% endblock %}
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{% load i18n %}{% autoescape off %}
{% trans "Bonjour," %}
{% translate "Bonjour," %}

{% trans "Une demande de réinitialisation de mot de passe a été demandée." %}
{% translate "Une demande de réinitialisation de mot de passe a été demandée." %}

{% trans "Veuillez vous rendre sur cette page et choisir un nouveau mot de passe :" %}
{% translate "Veuillez vous rendre sur cette page et choisir un nouveau mot de passe :" %}
{% block reset_link %}
{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}
{% endblock %}
{% trans "Votre nom d'utilisateur, en cas d'oubli:" %} {{ user.get_username }}
{% translate "Votre nom d'utilisateur, en cas d'oubli:" %} {{ user.get_username }}

{% trans "Avec nos meilleures salutations," %}
{% trans "L'application de gestion des demandes" %}
{% translate "Avec nos meilleures salutations," %}
{% translate "L'application de gestion des demandes" %}

{% trans "Ceci est un e-mail automatique, veuillez ne pas y répondre." %}
{% translate "Ceci est un e-mail automatique, veuillez ne pas y répondre." %}
{% endautoescape %}
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ <h3>Vous avez perdu votre mot de passe ?</h3>
{% csrf_token %}
{% bootstrap_form form %}
<input class="btn btn-primary" type="submit" value="Envoyer">
<a href="../../" class="mr-2">{% trans "Retour" %}</a>
<a href="../../" class="mr-2">{% translate "Retour" %}</a>
</form>
</div>

4 changes: 2 additions & 2 deletions geocity/apps/accounts/templates/socialaccount/signup.html
Original file line number Diff line number Diff line change
@@ -5,13 +5,13 @@
{% block content-fluid %}
<div class = "container">
<br>
<h3>{% trans "Mon compte (Géoportail / Dootix)" %}</h3>
<h3>{% translate "Mon compte (Géoportail / Dootix)" %}</h3>
<hr>
<form method='POST' action='' enctype="multipart/form-data" novalidate id="actor-form">
{% csrf_token %}
{% bootstrap_form form layout='horizontal'%}
{% bootstrap_button "Confirmer" button_type="submit" button_class="btn-primary mr-3" value="Enregistrer" %}
<a href="{% url 'submissions:submissions_list' %}">{% trans "Annuler" %}</a>
<a href="{% url 'submissions:submissions_list' %}">{% translate "Annuler" %}</a>
</form>
<br>
</div>
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

{% load i18n %}

<button type="submit" class="btn btn-primary">{% trans "Suivant" %}</button>
<button type="submit" class="btn btn-primary">{% translate "Suivant" %}</button>
{% if cancel_url %}
<a href="{{ cancel_url }}" class="mt-3 ml-3">{% trans "Annuler" %}</a>
<a href="{{ cancel_url }}" class="mt-3 ml-3">{% translate "Annuler" %}</a>
{% endif %}
24 changes: 12 additions & 12 deletions geocity/apps/accounts/templates/two_factor/login.html
Original file line number Diff line number Diff line change
@@ -34,56 +34,56 @@ <h5>{{ customization.application_subtitle|safe }}</h5>
<div id="login-container">
{% if next and user.is_authenticated %}
<div>
<p id="login-issue">{% trans "Votre compte ne dispose pas des droits nécessaires pour accéder à cette page" %}</p>
<p id="login-issue">{% translate "Votre compte ne dispose pas des droits nécessaires pour accéder à cette page" %}</p>
</div>
{% endif %}

{% if wizard.steps.current == 'auth' %}
{% if form.errors %}
<div class="mt-3">
<p class="text-danger font-weight-bold">{% trans "Votre mot de passe et votre nom d'utilisateur ne correspondent pas" %}</p>
<p class="text-danger font-weight-bold">{% translate "Votre mot de passe et votre nom d'utilisateur ne correspondent pas" %}</p>
</div>
{% endif %}
{% endif %}
{% if wizard.steps.current == 'auth' %}
<form method="post" action="">
{% csrf_token %}
<div>
<h4>{% trans "Connexion" %}</h4>
<h4>{% translate "Connexion" %}</h4>
{{ wizard.management_form }}
<p>{% trans "Connectez-vous à l'aide de vos identifiants" %}</p>
<p>{% translate "Connectez-vous à l'aide de vos identifiants" %}</p>
<p>{% bootstrap_field wizard.form.username show_label=False placeholder="Identifiant" %}</p>
<p>{% bootstrap_field wizard.form.password show_label=False placeholder="Mot de passe" %}</p>
<button id="login_button" class="btn btn-primary font-weight-bold left-button" type="submit">{% trans "ME CONNECTER" %}</button>
<button id="login_button" class="btn btn-primary font-weight-bold left-button" type="submit">{% translate "ME CONNECTER" %}</button>
<br>
</div>
{# hidden submit button to enable [enter] key #}
<input type="submit" value="" class="d-none" />
</form>
<br>
<div>
<a class="form-text" href="{% url 'accounts:user_profile_create' %}{% if query_string %}?{{query_string}}{% endif %}">{% trans "Créer un compte" %}</a>
<a class="form-text" href="{% url 'password_reset' %}">{% trans "Perdu votre mot de passe ?" %}</a>
<a class="form-text" href="{% url 'accounts:user_profile_create' %}{% if query_string %}?{{query_string}}{% endif %}">{% translate "Créer un compte" %}</a>
<a class="form-text" href="{% url 'password_reset' %}">{% translate "Perdu votre mot de passe ?" %}</a>
</div>
{% include "registration/_social_login.html" %}
{% elif wizard.steps.current == 'token' %}
<p>{% trans "Veuillez entrer votre jeton (code à usage unique, code SMS)" %}</p>
<p>{% translate "Veuillez entrer votre jeton (code à usage unique, code SMS)" %}</p>
<form method="post" action="">
{% csrf_token %}
{% include "two_factor/_wizard_forms.html" %}
{% include "two_factor/_wizard_actions.html" %}
{% if backup_tokens %}
<p class="mt-4">{% trans "As a last resort, you can use a backup token:" %}</p>
<p class="mt-4">{% translate "As a last resort, you can use a backup token:" %}</p>
<p>
<button name="wizard_goto_step" type="submit" value="backup"
class="btn btn-secondary btn-block">{% trans "Use Backup Token" %}</button>
class="btn btn-secondary btn-block">{% translate "Use Backup Token" %}</button>
</p>
{% endif %}
</form>
{% elif wizard.steps.current == 'backup' %}
<p>{% blocktrans trimmed %}Use this form for entering backup tokens for logging in.
<p>{% blocktranslate trimmed %}Use this form for entering backup tokens for logging in.
These tokens have been generated for you to print and keep safe. Please
enter one of these backup tokens to login to your account.{% endblocktrans %}</p>
enter one of these backup tokens to login to your account.{% endblocktranslate %}</p>
<form method="post" action="">
{% csrf_token %}
{% include "two_factor/_wizard_forms.html" %}
Loading

0 comments on commit 5aca199

Please sign in to comment.