mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-24 11:18:46 +02:00
➕ Add "search transactions page"
This commit is contained in:
@ -1,3 +1,5 @@
|
||||
{% load i18n %}
|
||||
|
||||
<input type="hidden" name="{{ widget.name }}" {% if widget.attrs.model_pk %}value="{{ widget.attrs.model_pk }}"{% endif %} id="{{ widget.attrs.id }}_pk">
|
||||
<input type="text"
|
||||
{% if widget.value != None and widget.value != "" %}value="{{ widget.value }}"{% endif %}
|
||||
@ -5,5 +7,8 @@
|
||||
{% for name, value in widget.attrs.items %}
|
||||
{% ifnotequal value False %}{{ name }}{% ifnotequal value True %}="{{ value|stringformat:'s' }}"{% endifnotequal %}{% endifnotequal %}
|
||||
{% endfor %}>
|
||||
{% if widget.resetable %}
|
||||
<a id="{{ widget.attrs.id }}_reset" class="btn btn-light autocomplete-reset{% if not widget.value %} d-none{% endif %}">{% trans "Reset" %}</a>
|
||||
{% endif %}
|
||||
<ul class="list-group list-group-flush" id="{{ widget.attrs.id }}_list">
|
||||
</ul>
|
||||
|
@ -1,5 +1,7 @@
|
||||
{% load render_table from django_tables2 %}
|
||||
{% load i18n %}
|
||||
{% load perms %}
|
||||
|
||||
{% if managers.data %}
|
||||
<div class="card">
|
||||
<div class="card-header position-relative" id="clubListHeading">
|
||||
@ -29,7 +31,7 @@
|
||||
{% if history_list.data %}
|
||||
<div class="card">
|
||||
<div class="card-header position-relative" id="historyListHeading">
|
||||
<a class="font-weight-bold">
|
||||
<a class="stretched-link font-weight-bold" {% if "note.view_note"|has_perm:club.note %} href="{% url 'note:transactions' pk=club.note.pk %}" {% endif %}>
|
||||
<i class="fa fa-euro"></i> {% trans "Transaction history" %}
|
||||
</a>
|
||||
</div>
|
||||
|
@ -2,22 +2,22 @@
|
||||
|
||||
<div class="card bg-light shadow">
|
||||
<div class="card-header text-center" >
|
||||
<h4> {% trans "Account #" %} {{ object.pk }}</h4>
|
||||
<h4> {% trans "Account #" %} {{ user.pk }}</h4>
|
||||
</div>
|
||||
<div class="card-top text-center">
|
||||
<a href="{% url 'member:user_update_pic' object.pk %}">
|
||||
<img src="{{ object.note.display_image.url }}" class="img-thumbnail mt-2" >
|
||||
<a href="{% url 'member:user_update_pic' user.pk %}">
|
||||
<img src="{{ user.note.display_image.url }}" class="img-thumbnail mt-2" >
|
||||
</a>
|
||||
</div>
|
||||
<div class="card-body" id="profile_infos">
|
||||
<dl class="row">
|
||||
<dt class="col-xl-6">{% trans 'name'|capfirst %}, {% trans 'first name' %}</dt>
|
||||
<dd class="col-xl-6">{{ object.last_name }} {{ object.first_name }}</dd>
|
||||
<dd class="col-xl-6">{{ user.last_name }} {{ user.first_name }}</dd>
|
||||
|
||||
<dt class="col-xl-6">{% trans 'username'|capfirst %}</dt>
|
||||
<dd class="col-xl-6">{{ object.username }}</dd>
|
||||
<dd class="col-xl-6">{{ user.username }}</dd>
|
||||
|
||||
{% if object.pk == user.pk %}
|
||||
{% if user.pk == user.pk %}
|
||||
<dt class="col-xl-6">{% trans 'password'|capfirst %}</dt>
|
||||
<dd class="col-xl-6">
|
||||
<a class="small" href="{% url 'password_change' %}">
|
||||
@ -27,25 +27,25 @@
|
||||
{% endif %}
|
||||
|
||||
<dt class="col-xl-6">{% trans 'section'|capfirst %}</dt>
|
||||
<dd class="col-xl-6">{{ object.profile.section }}</dd>
|
||||
<dd class="col-xl-6">{{ user.profile.section }}</dd>
|
||||
|
||||
<dt class="col-xl-6">{% trans 'address'|capfirst %}</dt>
|
||||
<dd class="col-xl-6">{{ object.profile.address }}</dd>
|
||||
<dd class="col-xl-6">{{ user.profile.address }}</dd>
|
||||
|
||||
<dt class="col-xl-6">{% trans 'balance'|capfirst %}</dt>
|
||||
<dd class="col-xl-6">{{ object.note.balance | pretty_money }}</dd>
|
||||
<dd class="col-xl-6">{{ user.note.balance | pretty_money }}</dd>
|
||||
|
||||
<dt class="col-xl-6"> <a href="{% url 'member:user_alias' object.pk %}">{% trans 'aliases'|capfirst %}</a></dt>
|
||||
<dd class="col-xl-6 text-truncate">{{ object.note.alias_set.all|join:", " }}</dd>
|
||||
<dt class="col-xl-6"> <a href="{% url 'member:user_alias' user.pk %}">{% trans 'aliases'|capfirst %}</a></dt>
|
||||
<dd class="col-xl-6 text-truncate">{{ user.note.alias_set.all|join:", " }}</dd>
|
||||
</dl>
|
||||
|
||||
{% if object.pk == user.pk %}
|
||||
{% if user.pk == user.pk %}
|
||||
<a class="small" href="{% url 'member:auth_token' %}">{% trans 'Manage auth token' %}</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="card-footer text-center">
|
||||
<a class="btn btn-primary btn-sm" href="{% url 'member:user_update_profile' object.pk %}">{% trans 'Update Profile' %}</a>
|
||||
{% url 'member:user_detail' object.pk as user_profile_url %}
|
||||
<a class="btn btn-primary btn-sm" href="{% url 'member:user_update_profile' user.pk %}">{% trans 'Update Profile' %}</a>
|
||||
{% url 'member:user_detail' user.pk as user_profile_url %}
|
||||
{%if request.path_info != user_profile_url %}
|
||||
<a class="btn btn-primary btn-sm" href="{{ user_profile_url }}">{% trans 'View Profile' %}</a>
|
||||
{% endif %}
|
||||
|
@ -2,10 +2,10 @@
|
||||
{% load i18n %}
|
||||
{% load perms %}
|
||||
|
||||
{% if not object.profile.email_confirmed and "member.change_profile_email_confirmed"|has_perm:object.profile %}
|
||||
{% if not object.profile.email_confirmed and "member.change_profile_email_confirmed"|has_perm:user.profile %}
|
||||
<div class="alert alert-warning">
|
||||
{% trans "This user doesn't have confirmed his/her e-mail address." %}
|
||||
<a href="{% url "registration:email_validation_resend" pk=object.pk %}">{% trans "Click here to resend a validation link." %}</a>
|
||||
<a href="{% url "registration:email_validation_resend" pk=user.pk %}">{% trans "Click here to resend a validation link." %}</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@ -22,9 +22,7 @@
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header position-relative" id="historyListHeading">
|
||||
<a class="collapsed font-weight-bold"
|
||||
data-toggle="collapse" data-target="#historyListCollapse"
|
||||
aria-expanded="true" aria-controls="historyListCollapse">
|
||||
<a class="stretched-link font-weight-bold" {% if "note.view_note"|has_perm:user.note %} href="{% url 'note:transactions' pk=user.note.pk %}" {% endif %}>
|
||||
<i class="fa fa-euro"></i> {% trans "Transaction history" %}
|
||||
</a>
|
||||
</div>
|
||||
|
57
templates/note/search_transactions.html
Normal file
57
templates/note/search_transactions.html
Normal file
@ -0,0 +1,57 @@
|
||||
{% extends "member/noteowner_detail.html" %}
|
||||
{% load render_table from django_tables2 %}
|
||||
{% load crispy_forms_tags %}
|
||||
|
||||
{% block profile_info %}
|
||||
{% if note.club.weiclub %}
|
||||
{% with club=note.club.weiclub %}
|
||||
{% include "wei/weiclub_info.html" %}
|
||||
{% endwith %}
|
||||
{% elif note.club %}
|
||||
{% with club=note.club %}
|
||||
{% include "member/club_info.html" %}
|
||||
{% endwith %}
|
||||
{% elif note.user %}
|
||||
{% with user=note.user %}
|
||||
{% include "member/profile_info.html" %}
|
||||
{% endwith %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block profile_content %}
|
||||
{% crispy form %}
|
||||
<div id="table">
|
||||
{% render_table table %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block extrajavascript %}
|
||||
<script>
|
||||
function refreshHistory() {
|
||||
$("#history_list").load("{% url 'note:transactions' pk=object.pk %} #history_list");
|
||||
$("#profile_infos").load("{% url 'note:transactions' pk=object.pk %} #profile_infos");
|
||||
}
|
||||
|
||||
function refreshFilters() {
|
||||
let filters = "";
|
||||
filters += "source=" + $("#id_source_pk").val();
|
||||
filters += "&destination=" + $("#id_destination_pk").val();
|
||||
filters += $("input[name='type']:checked").map(function() {
|
||||
return "&type=" + $(this).val();
|
||||
}).toArray().join("");
|
||||
filters += "&reason=" + $("#id_reason").val();
|
||||
filters += "&valid=" + ($("#id_valid").is(":checked") ? "1" : "");
|
||||
filters += "&amount_gte=" + $("#id_amount_gte").val();
|
||||
filters += "&amount_lte=" + $("#id_amount_lte").val();
|
||||
filters += "&created_after=" + $("#id_created_after").val();
|
||||
filters += "&created_before=" + $("#id_created_before").val();
|
||||
console.log(filters.replace(" ", "%20"));
|
||||
$("#table").load(location.pathname + "?" + filters.replaceAll(" ", "%20") + " #table");
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$("input").change(refreshFilters);
|
||||
$("input").keyup(refreshFilters);
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
@ -1,59 +1,12 @@
|
||||
{% load render_table from django_tables2 %}
|
||||
{% load i18n %}
|
||||
{% load perms %}
|
||||
<div class="card">
|
||||
<div class="card-header text-center">
|
||||
<h4>WEI</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>LE WEI, c'est cool !</p>
|
||||
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore
|
||||
magna aliqua. Dapibus ultrices in iaculis nunc sed augue. In hendrerit gravida rutrum quisque non tellus orci
|
||||
ac. Massa vitae tortor condimentum lacinia quis vel eros. Elit ut aliquam purus sit amet. Aliquam faucibus
|
||||
purus in massa tempor. Quisque id diam vel quam elementum pulvinar etiam non. Condimentum id venenatis a
|
||||
condimentum vitae sapien pellentesque habitant. Egestas congue quisque egestas diam in. Vestibulum rhoncus
|
||||
est pellentesque elit ullamcorper. Massa sed elementum tempus egestas sed sed. Sapien pellentesque habitant
|
||||
morbi tristique. Lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi tincidunt ornare. Sed
|
||||
adipiscing diam donec adipiscing. Leo integer malesuada nunc vel risus commodo viverra maecenas.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Fusce id velit ut tortor pretium viverra suspendisse. Urna condimentum mattis pellentesque id nibh tortor id
|
||||
aliquet. Vel facilisis volutpat est velit egestas dui. Turpis egestas sed tempus urna et pharetra pharetra
|
||||
massa massa. Eget nunc scelerisque viverra mauris in. Etiam dignissim diam quis enim. Urna cursus eget nunc
|
||||
scelerisque viverra mauris in aliquam sem. Amet porttitor eget dolor morbi non arcu risus quis. Ullamcorper
|
||||
sit amet risus nullam eget felis. Ullamcorper eget nulla facilisi etiam dignissim diam quis. Enim nulla
|
||||
aliquet porttitor lacus luctus accumsan tortor. Urna condimentum mattis pellentesque id nibh tortor id.
|
||||
Feugiat in fermentum posuere urna nec. Risus nec feugiat in fermentum posuere urna nec tincidunt. Porttitor
|
||||
massa id neque aliquam vestibulum morbi. Diam quis enim lobortis scelerisque. Ornare massa eget egestas
|
||||
purus. Ut tortor pretium viverra suspendisse. Purus in mollis nunc sed. Tristique magna sit amet purus
|
||||
gravida.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Ut porttitor leo a diam sollicitudin tempor. Viverra nam libero justo laoreet sit amet cursus sit amet.
|
||||
Lectus arcu bibendum at varius vel pharetra vel turpis nunc. Vivamus arcu felis bibendum ut tristique et
|
||||
egestas quis ipsum. Parturient montes nascetur ridiculus mus mauris. A cras semper auctor neque vitae
|
||||
tempus quam pellentesque. Netus et malesuada fames ac. Mauris in aliquam sem fringilla ut. Sapien
|
||||
pellentesque habitant morbi tristique. Mauris sit amet massa vitae tortor condimentum. Sagittis
|
||||
aliquam malesuada bibendum arcu vitae elementum curabitur vitae nunc. Amet consectetur adipiscing elit
|
||||
duis tristique sollicitudin nibh sit. Nunc mattis enim ut tellus elementum. Sapien eget mi proin sed libero
|
||||
enim. Pulvinar sapien et ligula ullamcorper. Nibh mauris cursus mattis molestie a iaculis at erat
|
||||
pellentesque. Molestie at elementum eu facilisis. Velit sed ullamcorper morbi tincidunt. Quam vulputate
|
||||
dignissim suspendisse in est ante.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Id cursus metus aliquam eleifend mi. Eu turpis egestas pretium aenean pharetra magna ac. Faucibus ornare
|
||||
suspendisse sed nisi lacus sed viverra tellus. Sed vulputate mi sit amet mauris commodo. Lacus laoreet non
|
||||
curabitur gravida arcu ac. At ultrices mi tempus imperdiet nulla malesuada pellentesque elit eget. Fusce ut
|
||||
placerat orci nulla pellentesque dignissim. Quis blandit turpis cursus in hac habitasse platea dictumst
|
||||
quisque. Tellus id interdum velit laoreet id donec ultrices. Risus feugiat in ante metus dictum. Velit ut
|
||||
tortor pretium viverra suspendisse. Lacus vel facilisis volutpat est velit egestas dui id. Nunc eget lorem
|
||||
dolor sed viverra ipsum nunc aliquet bibendum. Varius quam quisque id diam vel quam. Orci dapibus ultrices
|
||||
in iaculis. Neque gravida in fermentum et sollicitudin ac orci.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{% if club.is_current_wei %}
|
||||
@ -101,7 +54,7 @@
|
||||
{% if history_list.data %}
|
||||
<div class="card">
|
||||
<div class="card-header position-relative" id="historyListHeading">
|
||||
<a class="font-weight-bold">
|
||||
<a class="stretched-link font-weight-bold" {% if "note.view_note"|has_perm:club.note %} href="{% url 'note:transactions' pk=club.note.pk %}" {% endif %}>
|
||||
<i class="fa fa-euro"></i> {% trans "Transaction history" %}
|
||||
</a>
|
||||
</div>
|
||||
|
Reference in New Issue
Block a user