Skip to content

Commit

Permalink
Login now required for all contrib/edit funnel.
Browse files Browse the repository at this point in the history
Also fixing a blocktranslate var rendering.
  • Loading branch information
mlvernay committed Feb 20, 2025
1 parent c41ed0f commit d72dd1d
Show file tree
Hide file tree
Showing 8 changed files with 70 additions and 93 deletions.
52 changes: 23 additions & 29 deletions erp/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,7 @@ def contrib_delete(request, erp_slug):
)


@login_required
def contrib_start(request):
form = forms.ProviderGlobalSearchForm(request.GET or None)
if form.is_valid():
Expand All @@ -466,6 +467,7 @@ def contrib_start(request):
)


@login_required
def contrib_global_search(request):
results = error = None
commune = ""
Expand Down Expand Up @@ -533,6 +535,7 @@ def contrib_global_search(request):
)


@login_required
@create_revision(request_creates_revision=lambda x: True)
def contrib_admin_infos(request):
data = erp = external_erp = None
Expand All @@ -550,12 +553,10 @@ def contrib_admin_infos(request):
erp.published = False
activite = form.cleaned_data.get("activite")
erp.activite = activite
erp.save(editor=request.user if request.user.is_authenticated else None)
erp.save(editor=request.user)
if erp.has_miscellaneous_activity:
ActivitySuggestion.objects.create(
name=form.cleaned_data["nouvelle_activite"],
erp=erp,
user=request.user if request.user.is_authenticated else None,
name=form.cleaned_data["nouvelle_activite"], erp=erp, user=request.user
)
messages.add_message(request, messages.SUCCESS, translate("Les données ont été enregistrées."))
return redirect("contrib_a_propos", erp_slug=erp.slug)
Expand Down Expand Up @@ -608,11 +609,12 @@ def contrib_admin_infos(request):
)


@login_required
@create_revision(request_creates_revision=lambda x: True)
def contrib_edit_infos(request, erp_slug):
erp = get_object_or_404(Erp, slug=erp_slug)
initial = {"lat": Decimal(erp.geom.y), "lon": Decimal(erp.geom.x)}
if request.user.is_authenticated and erp.user is request.user:
if erp.user is request.user:
libelle_next = schema.SECTION_A_PROPOS
next_route = schema.SECTIONS[schema.SECTION_A_PROPOS]["edit_route"]
else:
Expand All @@ -628,13 +630,13 @@ def contrib_edit_infos(request, erp_slug):
erp = form.save(commit=False)
activite = form.cleaned_data.get("activite")
erp.activite = activite
erp.save(editor=request.user if request.user.is_authenticated else None)
erp.save(editor=request.user)

if erp.has_miscellaneous_activity:
ActivitySuggestion.objects.create(
name=form.cleaned_data["nouvelle_activite"],
erp=erp,
user=request.user if request.user.is_authenticated else None,
user=request.user,
)
messages.add_message(
request,
Expand Down Expand Up @@ -665,6 +667,7 @@ def contrib_edit_infos(request, erp_slug):
)


@login_required
@create_revision(request_creates_revision=lambda x: True)
def contrib_a_propos(request, erp_slug):
erp = get_object_or_404(Erp, slug=erp_slug)
Expand All @@ -681,7 +684,7 @@ def contrib_a_propos(request, erp_slug):
accessibilite.erp = erp
accessibilite.save()

erp.save(editor=request.user if request.user.is_authenticated else None)
erp.save(editor=request.user)
messages.add_message(
request,
messages.SUCCESS,
Expand All @@ -706,20 +709,7 @@ def contrib_a_propos(request, erp_slug):
)


def check_authentication(request, erp, form, check_online=True):
redirect_path = redirect(
reverse("login")
+ "?"
+ urllib.parse.urlencode({"next": request.path + "?" + urllib.parse.urlencode(form.data)})
)
if check_online:
if erp.published and not request.user.is_authenticated:
return redirect_path
else:
if not request.user.is_authenticated:
return redirect_path


@login_required
def process_accessibilite_form(
request,
erp_slug,
Expand Down Expand Up @@ -759,12 +749,12 @@ def process_accessibilite_form(
user=request.user,
)
if form.is_valid():
if check_authentication(request, erp, form):
return check_authentication(request, erp, form)
# if check_authentication(request, erp, form):
# return check_authentication(request, erp, form)
accessibilite = form.save(commit=False)
accessibilite.erp = erp
accessibilite.save()
if request.user.is_authenticated and accessibilite.erp.user is None:
if accessibilite.erp.user is None:
accessibilite.erp.user = request.user
accessibilite.erp.save()
form.save_m2m()
Expand Down Expand Up @@ -794,10 +784,11 @@ def process_accessibilite_form(
)


@login_required
@create_revision(request_creates_revision=lambda x: True)
def contrib_transport(request, erp_slug):
erp = get_object_or_404(Erp, slug=erp_slug)
if request.user.is_authenticated and erp.user is request.user:
if erp.user is request.user:
prev_route = schema.SECTIONS[schema.SECTION_A_PROPOS]["edit_route"]
else:
prev_route = "contrib_edit_infos"
Expand All @@ -814,6 +805,7 @@ def contrib_transport(request, erp_slug):
)


@login_required
@create_revision(request_creates_revision=lambda x: True)
def contrib_exterieur(request, erp_slug):
return process_accessibilite_form(
Expand All @@ -828,6 +820,7 @@ def contrib_exterieur(request, erp_slug):
)


@login_required
@create_revision(request_creates_revision=lambda x: True)
def contrib_entree(request, erp_slug):
return process_accessibilite_form(
Expand All @@ -842,6 +835,7 @@ def contrib_entree(request, erp_slug):
)


@login_required
@create_revision(request_creates_revision=lambda x: True)
def contrib_accueil(request, erp_slug):
return process_accessibilite_form(
Expand Down Expand Up @@ -882,6 +876,7 @@ def ensure_min_nb_answers(request, erp):
return False


@login_required
@create_revision(request_creates_revision=lambda x: True)
def contrib_commentaire(request, erp_slug):
return process_accessibilite_form(
Expand All @@ -896,6 +891,7 @@ def contrib_commentaire(request, erp_slug):
)


@login_required
@create_revision(request_creates_revision=lambda x: True)
def contrib_publication(request, erp_slug):
erp = get_object_or_404(Erp, slug=erp_slug)
Expand All @@ -914,9 +910,6 @@ def contrib_publication(request, erp_slug):
form = forms.PublicPublicationForm(request.GET or {"published": True}, instance=erp)

if form.is_valid():
if check_auth := check_authentication(request, erp, form, check_online=False):
return check_auth

erp = form.save()
if erp.user is None:
erp.user = request.user
Expand Down Expand Up @@ -962,6 +955,7 @@ def contrib_publication(request, erp_slug):
)


@login_required
def contrib_completion_rate(request, erp_slug):
erp = get_object_or_404(Erp, slug=erp_slug)
return render(
Expand Down
Binary file modified locale/en/LC_MESSAGES/django.mo
Binary file not shown.
32 changes: 12 additions & 20 deletions locale/en/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-19 11:02+0100\n"
"PO-Revision-Date: 2025-02-19 11:02+0100\n"
"POT-Creation-Date: 2025-02-19 11:16+0100\n"
"PO-Revision-Date: 2025-02-19 11:16+0100\n"
"Last-Translator: <[email protected]>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"Language: \n"
Expand Down Expand Up @@ -4012,16 +4012,12 @@ msgstr "Create an account"

#, python-format
msgid ""
"\n"
" Vous êtes déjà authentifié en tant que <strong>%(user.username)s</"
"strong>,\n"
" vous ne pouvez donc pas créer un nouveau compte.\n"
" Veuillez <a href=\"%(url_logout)s\">vous déconnecter</a>\n"
" ou revenir à la <a href=\"%(url_home)s\">page d'accueil</a>.\n"
" "
"Vous êtes déjà authentifié en tant que <strong>%(username)s</strong>, vous "
"ne pouvez donc pas créer un nouveau compte. Veuillez <a "
"href=\"%(url_logout)s\">vous déconnecter</a> ou revenir à la <a "
"href=\"%(url_home)s\">page d'accueil</a>."
msgstr ""
"\n"
"You are already authenticated as <strong>%(user.username)s</strong>,\n"
"You are already authenticated as <strong>%(username)s</strong>,\n"
"so you cannot create a new account.\n"
"Please <a href=\"%(url_logout)s\">log out</a>\n"
"or return to the <a href=\"%(url_home)s\">home page</a>."
Expand Down Expand Up @@ -5343,16 +5339,12 @@ msgstr "Connection"

#, python-format
msgid ""
"\n"
" Vous êtes déjà authentifié en tant que <strong>%(user.username)s</"
"strong>,\n"
" vous ne pouvez donc pas vous authentifier avec un nouveau compte.\n"
" Veuillez <a href=\"%(url_logout)s\">d'abord vous déconnecter</a>\n"
" ou revenir à la <a href=\"%(url_home)s\">page d'accueil</a>.\n"
" "
"Vous êtes déjà authentifié en tant que <strong>%(username)s</strong>, vous "
"ne pouvez donc pas vous authentifier avec un nouveau compte. Veuillez <a "
"href=\"%(url_logout)s\">d'abord vous déconnecter</a> ou revenir à la <a "
"href=\"%(url_home)s\">page d'accueil</a>."
msgstr ""
"\n"
"You are already authenticated as <strong>%(user.username)s</strong>,\n"
"You are already authenticated as <strong>%(username)s</strong>,\n"
"so you cannot authenticate with a new account.\n"
"Please <a href=\"%(url_logout)s\">log out first</a>\n"
"or return to the <a href=\"%(url_home)s\">home page</a>."
Expand Down
24 changes: 9 additions & 15 deletions locale/fr/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-02-19 11:01+0100\n"
"POT-Creation-Date: 2025-02-19 11:15+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
Expand Down Expand Up @@ -3716,13 +3716,10 @@ msgstr ""

#, python-format
msgid ""
"\n"
" Vous êtes déjà authentifié en tant que <strong>%(user.username)s</"
"strong>,\n"
" vous ne pouvez donc pas créer un nouveau compte.\n"
" Veuillez <a href=\"%(url_logout)s\">vous déconnecter</a>\n"
" ou revenir à la <a href=\"%(url_home)s\">page d'accueil</a>.\n"
" "
"Vous êtes déjà authentifié en tant que <strong>%(username)s</strong>, vous "
"ne pouvez donc pas créer un nouveau compte. Veuillez <a "
"href=\"%(url_logout)s\">vous déconnecter</a> ou revenir à la <a "
"href=\"%(url_home)s\">page d'accueil</a>."
msgstr ""

msgid "Je crée un compte"
Expand Down Expand Up @@ -4794,13 +4791,10 @@ msgstr ""

#, python-format
msgid ""
"\n"
" Vous êtes déjà authentifié en tant que <strong>%(user.username)s</"
"strong>,\n"
" vous ne pouvez donc pas vous authentifier avec un nouveau compte.\n"
" Veuillez <a href=\"%(url_logout)s\">d'abord vous déconnecter</a>\n"
" ou revenir à la <a href=\"%(url_home)s\">page d'accueil</a>.\n"
" "
"Vous êtes déjà authentifié en tant que <strong>%(username)s</strong>, vous "
"ne pouvez donc pas vous authentifier avec un nouveau compte. Veuillez <a "
"href=\"%(url_logout)s\">d'abord vous déconnecter</a> ou revenir à la <a "
"href=\"%(url_home)s\">page d'accueil</a>."
msgstr ""

msgid "Je me connecte"
Expand Down
12 changes: 6 additions & 6 deletions templates/django_registration/registration_form.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ <h5 class="fr-follow__title">{% retrieve_erp request.GET.next %}</h5>
<p class="alert alert-warning" role="alert">
{% url 'logout' as url_logout %}
{% url 'home' as url_home %}
{% blocktranslate %}
Vous êtes déjà authentifié en tant que <strong>{{ user.username }}</strong>,
vous ne pouvez donc pas créer un nouveau compte.
Veuillez <a href="{{ url_logout }}">vous déconnecter</a>
ou revenir à la <a href="{{ url_home }}">page d'accueil</a>.
{% endblocktranslate %}
{% blocktranslate with username=user.username trimmed %}
Vous êtes déjà authentifié en tant que <strong>{{ username }}</strong>,
vous ne pouvez donc pas créer un nouveau compte.
Veuillez <a href="{{ url_logout }}">vous déconnecter</a>
ou revenir à la <a href="{{ url_home }}">page d'accueil</a>.
{% endblocktranslate %}
</p>
{% else %}
<div class="row">
Expand Down
12 changes: 6 additions & 6 deletions templates/registration/login.html
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,12 @@ <h5 class="fr-h5 fr-follow__title">{% retrieve_erp next %}</h5>
<p class="alert alert-warning">
{% url 'logout' as url_logout %}
{% url 'home' as url_home %}
{% blocktranslate %}
Vous êtes déjà authentifié en tant que <strong>{{ user.username }}</strong>,
vous ne pouvez donc pas vous authentifier avec un nouveau compte.
Veuillez <a href="{{ url_logout }}">d'abord vous déconnecter</a>
ou revenir à la <a href="{{ url_home }}">page d'accueil</a>.
{% endblocktranslate %}
{% blocktranslate with username=user.username trimmed %}
Vous êtes déjà authentifié en tant que <strong>{{ username }}</strong>,
vous ne pouvez donc pas vous authentifier avec un nouveau compte.
Veuillez <a href="{{ url_logout }}">d'abord vous déconnecter</a>
ou revenir à la <a href="{{ url_home }}">page d'accueil</a>.
{% endblocktranslate %}
</p>
{% else %}
<div class="row">
Expand Down
Loading

0 comments on commit d72dd1d

Please sign in to comment.