diff --git a/apps/activity/templates/activity/activity_detail.html b/apps/activity/templates/activity/activity_detail.html index 37dcb9a49e644b533c0389709bf40d5e26c7c07b..9cfc7640fe7bca79d71274e925ff5b28f2081bd5 100644 --- a/apps/activity/templates/activity/activity_detail.html +++ b/apps/activity/templates/activity/activity_detail.html @@ -1,22 +1,23 @@ {% extends "base.html" %} -{% load static %} -{% load i18n %} +{% comment %} +SPDX-License-Identifier: GPL-3.0-or-later +{% endcomment %} +{% load i18n perms %} {% load render_table from django_tables2 %} -{% load pretty_money %} -{% load perms %} {% block content %} +{% include "activity/includes/activity_info.html" %} - {% include "activity/activity_info.html" %} - - {% if guests.data %} - <hr> - <h2>{% trans "Guests list" %}</h2> - <div id="guests_table"> - {% render_table guests %} - </div> - {% endif %} - +{% if guests.data %} +<div class="card bg-white mb-3"> + <h3 class="card-header text-center"> + {% trans "Guests list" %} + </h3> + <div id="guests_table"> + {% render_table guests %} + </div> +</div> +{% endif %} {% endblock %} {% block extrajavascript %} diff --git a/apps/activity/templates/activity/activity_entry.html b/apps/activity/templates/activity/activity_entry.html index cca044e286b9be6db9856d85aed70a51a5e595af..806b486e5693ed4eabb70c8e2ce763129097d2dc 100644 --- a/apps/activity/templates/activity/activity_entry.html +++ b/apps/activity/templates/activity/activity_entry.html @@ -1,152 +1,168 @@ {% extends "base.html" %} -{% load static %} -{% load i18n %} +{% comment %} +SPDX-License-Identifier: GPL-3.0-or-later +{% endcomment %} +{% load static i18n pretty_money perms %} {% load render_table from django_tables2 %} -{% load pretty_money %} -{% load perms %} {% block content %} - <div class="row"> - <div class="col-xl-12"> - <div class="btn-group btn-group-toggle" style="width: 100%; padding: 0 0 2em 0" data-toggle="buttons"> - <a href="{% url "note:transfer" %}#transfer" class="btn btn-sm btn-outline-primary"> - {% trans "Transfer" %} - </a> - {% if "note.notespecial"|not_empty_model_list %} - <a href="{% url "note:transfer" %}#credit" class="btn btn-sm btn-outline-primary"> - {% trans "Credit" %} - </a> - {% endif %} - {% for a in activities_open %} - <a href="{% url "activity:activity_entry" pk=a.pk %}" class="btn btn-sm btn-outline-primary{% if a.pk == activity.pk %} active{% endif %}"> - {% trans "Entries" %} {{ a.name }} - </a> - {% endfor %} - </div> +<div class="row"> + <div class="col-xl-12"> + <div class="btn-group btn-group-toggle" style="width: 100%; padding: 0 0 2em 0" data-toggle="buttons"> + <a href="{% url "note:transfer" %}#transfer" class="btn btn-sm btn-outline-primary"> + {% trans "Transfer" %} + </a> + {% if "note.notespecial"|not_empty_model_list %} + <a href="{% url "note:transfer" %}#credit" class="btn btn-sm btn-outline-primary"> + {% trans "Credit" %} + </a> + {% endif %} + {% for a in activities_open %} + <a href="{% url "activity:activity_entry" pk=a.pk %}" + class="btn btn-sm btn-outline-primary{% if a.pk == activity.pk %} active{% endif %}"> + {% trans "Entries" %} {{ a.name }} + </a> + {% endfor %} </div> </div> +</div> - <a href="{% url "activity:activity_detail" pk=activity.pk %}"> - <button class="btn btn-light">{% trans "Return to activity page" %}</button> - </a> +<a href="{% url "activity:activity_detail" pk=activity.pk %}"> + <button class="btn btn-light">{% trans "Return to activity page" %}</button> +</a> - <input id="alias" type="text" class="form-control" placeholder="Nom/note ..."> +<input id="alias" type="text" class="form-control" placeholder="Nom/note ..."> - <hr> +<hr> - <div id="entry_table"> - <h2 class="text-center">{{ entries.count }} {% if entries.count >= 2 %}{% trans "entries" %}{% else %}{% trans "entry" %}{% endif %}</h2> - {% render_table table %} - </div> +<div id="entry_table"> + <h2 class="text-center">{{ entries.count }} + {% if entries.count >= 2 %}{% trans "entries" %}{% else %}{% trans "entry" %}{% endif %}</h2> + {% render_table table %} +</div> {% endblock %} {% block extrajavascript %} - <script> - old_pattern = null; - alias_obj = $("#alias"); - - function reloadTable(force=false) { - let pattern = alias_obj.val(); - - if ((pattern === old_pattern || pattern === "") && !force) - return; - - $("#entry_table").load(location.pathname + "?search=" + pattern.replace(" ", "%20") + " #entry_table", init); - refreshBalance(); - } - - alias_obj.keyup(reloadTable); - - $(document).ready(init); - - function init() { - $(".table-row").click(function(e) { - let target = e.target.parentElement; - target = $("#" + target.id); - - let type = target.attr("data-type"); - let id = target.attr("data-id"); - let last_name = target.attr("data-last-name"); - let first_name = target.attr("data-first-name"); +<script> + old_pattern = null; + alias_obj = $("#alias"); + + function reloadTable(force = false) { + let pattern = alias_obj.val(); + + if ((pattern === old_pattern || pattern === "") && !force) + return; + + $("#entry_table").load(location.pathname + "?search=" + pattern.replace(" ", "%20") + " #entry_table", init); + refreshBalance(); + } + + alias_obj.keyup(reloadTable); + + $(document).ready(init); + + function init() { + $(".table-row").click(function (e) { + let target = e.target.parentElement; + target = $("#" + target.id); + + let type = target.attr("data-type"); + let id = target.attr("data-id"); + let last_name = target.attr("data-last-name"); + let first_name = target.attr("data-first-name"); + + if (type === "membership") { + $.post("/api/activity/entry/?format=json", { + csrfmiddlewaretoken: CSRF_TOKEN, + activity: {{ activity.id }}, + note: id, + guest: null + }).done(function () { + if (target.hasClass("table-info")) + addMsg( + "Entrée effectuée, mais attention : la personne n'est plus adhérente Kfet.", + "warning", 10000); + else + addMsg("Entrée effectuée !", "success", 4000); + reloadTable(true); + }).fail(function (xhr) { + errMsg(xhr.responseJSON, 4000); + }); + } else { + let line_obj = $("#buttons_guest_" + id); + if (line_obj.length || target.attr('class').includes("table-success")) { + line_obj.remove(); + return; + } - if (type === "membership") { + let tr = "<tr class='text-center'>" + + "<td id='buttons_guest_" + id + "' style='table-danger center' colspan='5'>" + + "<button id='transaction_guest_" + id + + "' class='btn btn-secondary'>Payer avec la note de l'hôte</button> " + + "<button id='transaction_guest_" + id + + "_especes' class='btn btn-secondary'>Payer en espèces</button> " + + "<button id='transaction_guest_" + id + + "_cb' class='btn btn-secondary'>Payer en CB</button></td>" + + "<tr>"; + $(tr).insertAfter(target); + + let makeTransaction = function () { $.post("/api/activity/entry/?format=json", { csrfmiddlewaretoken: CSRF_TOKEN, activity: {{ activity.id }}, - note: id, - guest: null + note: target.attr("data-inviter"), + guest: id }).done(function () { if (target.hasClass("table-info")) - addMsg("Entrée effectuée, mais attention : la personne n'est plus adhérente Kfet.", "warning", 10000); + addMsg( + "Entrée effectuée, mais attention : la personne n'est plus adhérente Kfet.", + "warning", 10000); else addMsg("Entrée effectuée !", "success", 4000); reloadTable(true); - }).fail(function(xhr) { + }).fail(function (xhr) { errMsg(xhr.responseJSON, 4000); }); - } - else { - let line_obj = $("#buttons_guest_" + id); - if (line_obj.length || target.attr('class').includes("table-success")) { - line_obj.remove(); - return; - } - - let tr = "<tr class='text-center'>" + - "<td id='buttons_guest_" + id + "' style='table-danger center' colspan='5'>" + - "<button id='transaction_guest_" + id + "' class='btn btn-secondary'>Payer avec la note de l'hôte</button> " + - "<button id='transaction_guest_" + id + "_especes' class='btn btn-secondary'>Payer en espèces</button> " + - "<button id='transaction_guest_" + id + "_cb' class='btn btn-secondary'>Payer en CB</button></td>" + - "<tr>"; - $(tr).insertAfter(target); - - let makeTransaction = function() { - $.post("/api/activity/entry/?format=json", { - csrfmiddlewaretoken: CSRF_TOKEN, - activity: {{ activity.id }}, - note: target.attr("data-inviter"), - guest: id + }; + + let credit = function (credit_id, credit_name) { + return function () { + $.post("/api/note/transaction/transaction/", { + "csrfmiddlewaretoken": CSRF_TOKEN, + "quantity": 1, + "amount": { + { + activity.activity_type.guest_entry_fee + } + }, + "reason": "Crédit " + credit_name + + " (invitation {{ activity.name }})", + "valid": true, + "polymorphic_ctype": { + { + notespecial_ctype + } + }, + "resourcetype": "SpecialTransaction", + "source": credit_id, + "destination": target.attr('data-inviter'), + "last_name": last_name, + "first_name": first_name, + "bank": "" }).done(function () { - if (target.hasClass("table-info")) - addMsg("Entrée effectuée, mais attention : la personne n'est plus adhérente Kfet.", "warning", 10000); - else - addMsg("Entrée effectuée !", "success", 4000); - reloadTable(true); + makeTransaction(); + reset(); }).fail(function (xhr) { errMsg(xhr.responseJSON, 4000); }); }; - - let credit = function(credit_id, credit_name) { - return function() { - $.post("/api/note/transaction/transaction/", - { - "csrfmiddlewaretoken": CSRF_TOKEN, - "quantity": 1, - "amount": {{ activity.activity_type.guest_entry_fee }}, - "reason": "Crédit " + credit_name + " (invitation {{ activity.name }})", - "valid": true, - "polymorphic_ctype": {{ notespecial_ctype }}, - "resourcetype": "SpecialTransaction", - "source": credit_id, - "destination": target.attr('data-inviter'), - "last_name": last_name, - "first_name": first_name, - "bank": "" - }).done(function () { - makeTransaction(); - reset(); - }).fail(function (xhr) { - errMsg(xhr.responseJSON, 4000); - }); - }; - }; - - $("#transaction_guest_" + id).click(makeTransaction); - $("#transaction_guest_" + id + "_especes").click(credit(1, "espèces")); - $("#transaction_guest_" + id + "_cb").click(credit(2, "carte bancaire")); - } - }); - } - </script> -{% endblock %} + }; + + $("#transaction_guest_" + id).click(makeTransaction); + $("#transaction_guest_" + id + "_especes").click(credit(1, "espèces")); + $("#transaction_guest_" + id + "_cb").click(credit(2, "carte bancaire")); + } + }); + } +</script> +{% endblock %} \ No newline at end of file diff --git a/apps/activity/templates/activity/activity_form.html b/apps/activity/templates/activity/activity_form.html index 99c254e3a2d550f39208a5f070fb7f7a8a328735..6bfd4f346a98004ed60e608eda3471ff835a06dd 100644 --- a/apps/activity/templates/activity/activity_form.html +++ b/apps/activity/templates/activity/activity_form.html @@ -1,11 +1,21 @@ {% extends "base.html" %} -{% load static %} -{% load i18n %} -{% load crispy_forms_tags %} +{% comment %} +SPDX-License-Identifier: GPL-3.0-or-later +{% endcomment %} +{% load i18n crispy_forms_tags %} +{% block contenttitle %}{% endblock %} + {% block content %} -<form method="post"> -{% csrf_token %} -{{form|crispy}} -<button class="btn btn-primary" type="submit">{% trans "Submit" %}</button> -</form> -{% endblock %} +<div class="card bg-white mb-3"> + <h3 class="card-header text-center"> + {{ title }} + </h3> + <div class="card-body"> + <form method="post"> + {% csrf_token %} + {{ form|crispy }} + <button class="btn btn-primary" type="submit">{% trans "Submit" %}</button> + </form> + </div> +</div> +{% endblock %} \ No newline at end of file diff --git a/apps/activity/templates/activity/activity_invite.html b/apps/activity/templates/activity/activity_invite.html deleted file mode 100644 index 8bdb19657cb03900cab8426e4c57ed5f80f8f010..0000000000000000000000000000000000000000 --- a/apps/activity/templates/activity/activity_invite.html +++ /dev/null @@ -1,15 +0,0 @@ -{% extends "base.html" %} -{% load render_table from django_tables2 %} -{% load i18n crispy_forms_tags %} -{% block content %} - <form method="post"> - {% csrf_token %} - {{ form|crispy }} - <button class="btn btn-primary" type="submit">{% trans "Submit" %}</button> - </form> -{% endblock %} - -{% block extrajavascript %} - <script type="text/javascript"> - </script> -{% endblock %} diff --git a/apps/activity/templates/activity/activity_list.html b/apps/activity/templates/activity/activity_list.html index 3c2add370c936646b136cf257286c26038bac063..0a1eb4de39d79140c74eb69328e661d59c3f6c59 100644 --- a/apps/activity/templates/activity/activity_list.html +++ b/apps/activity/templates/activity/activity_list.html @@ -1,41 +1,50 @@ {% extends "base.html" %} +{% comment %} +SPDX-License-Identifier: GPL-3.0-or-later +{% endcomment %} {% load render_table from django_tables2 %} -{% load i18n crispy_forms_tags%} +{% load i18n %} +{% block contenttitle %}{% endblock %} + {% block content %} - {% if started_activities %} - <h2>{% trans "Current activity" %}</h2> +{% if started_activities %} +<div class="card bg-info mb-3"> + <h3 class="card-header text-center"> + {% trans "Current activity" %} + </h3> + <div class="card-body"> {% for activity in started_activities %} - {% include "activity/activity_info.html" %} - <hr> + {% include "activity/includes/activity_info.html" %} {% endfor %} - {% endif %} - - <h2>{% trans "Upcoming activities" %}</h2> + </div> +</div> +{% endif %} + +<div class="card bg-light mb-3"> + <h3 class="card-header text-center"> + {% trans "Upcoming activities" %} + </h3> {% if upcoming.data %} - {% render_table upcoming %} + {% render_table upcoming %} {% else %} + <div class="card-body"> <div class="alert alert-warning"> {% trans "There is no planned activity." %} </div> + </div> {% endif %} - - <a class="btn btn-primary" href="{% url 'activity:activity_create' %}" data-turbolinks="false">{% trans 'New activity' %}</a> - - <hr> - - <h2>{% trans "All activities" %}</h2> - + <div class="card-footer"> + <a class="btn btn-sm btn-success" href="{% url 'activity:activity_create' %}" data-turbolinks="false"> + <i class="fa fa-calendar-plus-o" aria-hidden="true"></i> + {% trans 'New activity' %} + </a> + </div> +</div> + +<div class="card bg-light mb-3"> + <h3 class="card-header text-center"> + {% trans "All activities" %} + </h3> {% render_table table %} -{% endblock %} - -{% block extrajavascript %} -<script type="text/javascript"> - -$(document).ready(function($) { - $(".table-row").click(function() { - window.document.location = $(this).data("href"); - }); -}); - -</script> -{% endblock %} +</div> +{% endblock %} \ No newline at end of file diff --git a/apps/activity/templates/activity/activity_info.html b/apps/activity/templates/activity/includes/activity_info.html similarity index 95% rename from apps/activity/templates/activity/activity_info.html rename to apps/activity/templates/activity/includes/activity_info.html index ca2988b506e7cfdb4ffab45285ea81cce6a6feb5..320bbb51a394a5a308fc8466b2d83156e0d1b4b4 100644 --- a/apps/activity/templates/activity/activity_info.html +++ b/apps/activity/templates/activity/includes/activity_info.html @@ -1,10 +1,10 @@ -{% load i18n %} -{% load perms %} -{% load pretty_money %} - +{% comment %} +SPDX-License-Identifier: GPL-3.0-or-later +{% endcomment %} +{% load i18n perms pretty_money %} {% url 'activity:activity_detail' activity.pk as activity_detail_url %} -<div id="activity_info" class="card bg-light shadow"> +<div id="activity_info" class="card bg-light shadow mb-3"> <div class="card-header text-center"> <h4> {% if request.path_info != activity_detail_url %} diff --git a/apps/activity/views.py b/apps/activity/views.py index db318fdc60330d9ef2aa5b05d54f15bd57ce85dc..bd3d651b3300087e0c24199002257f5fc7e1e0a0 100644 --- a/apps/activity/views.py +++ b/apps/activity/views.py @@ -117,7 +117,7 @@ class ActivityInviteView(ProtectQuerysetMixin, ProtectedCreateView): """ model = Guest form_class = GuestForm - template_name = "activity/activity_invite.html" + template_name = "activity/activity_form.html" def get_sample_object(self): """ Creates a standart Guest binds to the Activity"""