diff options
| author | Alexis Metaireau <alexis@notmyidea.org> | 2017-07-07 00:06:56 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-07-07 00:06:56 +0200 |
| commit | 3a4282fd75e3b3317b2b08b4aa2e6ac154310e73 (patch) | |
| tree | 9470c907ba1f884246af87d26d55c3aaac6d6dc5 /ihatemoney/templates/list_bills.html | |
| parent | 0e374cd5e0ef5a9be67084365f91de2ab84f636c (diff) | |
| download | ihatemoney-mirror-3a4282fd75e3b3317b2b08b4aa2e6ac154310e73.zip ihatemoney-mirror-3a4282fd75e3b3317b2b08b4aa2e6ac154310e73.tar.gz ihatemoney-mirror-3a4282fd75e3b3317b2b08b4aa2e6ac154310e73.tar.bz2 | |
Absolute imports & some other improvements (#243)
* Use absolute imports and rename package to ihatemoney
* Add a ihatemoney command
* Factorize application creation logic
* Refactor the tests
* Update the wsgi.py module with the new create_app() function
* Fix some styling thanks to Flake8.
* Automate Flake8 check in the CI.
Diffstat (limited to 'ihatemoney/templates/list_bills.html')
| -rw-r--r-- | ihatemoney/templates/list_bills.html | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/ihatemoney/templates/list_bills.html b/ihatemoney/templates/list_bills.html new file mode 100644 index 0000000..4029bc9 --- /dev/null +++ b/ihatemoney/templates/list_bills.html @@ -0,0 +1,128 @@ +{% extends "sidebar_table_layout.html" %} + +{% block title %} - {{ g.project.name }}{% endblock %} +{% block head %} + <script src="{{ url_for("static", filename="js/bootstrap-datepicker.js") }}"></script> + <script src="{{ url_for("static", filename="js/locales/bootstrap-datepicker.fr.min.js") }}" charset="utf-8"></script> +{% endblock %} +{% block js %} + {% if add_bill %} $('#new-bill').click(); {% endif %} + + // Hide all members actions + $('.action').each(function(){ + $(this).hide(); + }); + + // ask for confirmation before removing an user + $('.action.delete').each(function(){ + var link = $(this).find('button'); + link.click(function(){ + if ($(this).hasClass("confirm")){ + return true; + } + $(this).html("{{_("you sure?")}}"); + $(this).addClass("confirm"); + return false; + }); + }); + + // display the remove button on mouse over (and hide them per default) + $('.balance tr').hover(function(){ + $(this).find('.action').show(); + }, function(){ + $(this).find('.action').hide(); + }); + + var highlight_owers = function(){ + var ower_ids = $(this).attr("owers").split(','); + var payer_id = $(this).attr("payer"); + $.each(ower_ids, function(i, val){ + $('#bal-member-'+val).addClass("ower_line"); + }); + $("#bal-member-"+payer_id).addClass("payer_line"); + }; + + var unhighlight_owers = function(){ + $('[id^="bal-member-"]').removeClass("ower_line payer_line"); + }; + + $('#bill_table tbody tr').hover(highlight_owers, unhighlight_owers); + +{% endblock %} + +{% block sidebar %} + <form id="add-member-form" action="{{ url_for(".add_member") }}" method="post" class="form-inline"> + {{ forms.add_member(member_form) }} + </form> + + <div id="table_overflow"> + <table class="balance table"> + {% set balance = g.project.balance %} + {% for member in g.project.members | sort(attribute='name') if member.activated or balance[member.id]|round(2) != 0 %} + <tr id="bal-member-{{ member.id }}" action={% if member.activated %}delete{% else %}reactivate{% endif %}> + <td class="balance-name">{{ member.name }} + <span class="light{% if not g.project.uses_weights %} extra-info{% endif %}">(x{{ member.weight|minimal_round(1) }})</span> + </td> + {% if member.activated %} + <td> + <form class="action delete" action="{{ url_for(".remove_member", member_id=member.id) }}" method="POST"> + <button type="submit">{{ _("deactivate") }}</button></form> + <form class="action edit" action="{{ url_for(".edit_member", member_id=member.id) }}" method="GET"> + <button type="submit">{{ _("edit") }}</button></form> + </td> + {% else %} + <td> + <form class="action reactivate" action="{{ url_for(".reactivate", member_id=member.id) }}" method="POST"> + <button type="submit">{{ _("reactivate") }}</button></form></td> + {% endif %} + <td class="balance-value {% if balance[member.id]|round(2) > 0 %}positive{% elif balance[member.id]|round(2) < 0 %}negative{% endif %}"> + {% if balance[member.id]|round(2) > 0 %}+{% endif %}{{ "%.2f" | format(balance[member.id]) }} + </td> + </tr> + {% endfor %} + </table> + </div> +{% endblock %} + +{% block content %} +<div class="identifier">{{ _("The project identifier is") }} <a href="{{ url_for(".list_bills") }}">{{ g.project.id }}</a>, {{ _("remember it!") }}</div> +<a id="new-bill" href="{{ url_for(".add_bill") }}" class="btn btn-primary" data-toggle="modal" data-target="#bill-form">{{ _("Add a new bill") }}</a> + + <div id="bill-form" class="modal fade show" role="dialog"> + <div class="modal-dialog" role="document"> + <div class="modal-content"> + <div class="modal-header"> + <h3 class="modal-title">{{ _('Add a bill') }}</h3> + <a href="#" class="close" data-dismiss="modal">×</a> + </div> + <form action="{{ url_for(".add_bill") }}" method="post" class="modal-body container"> + {{ forms.add_bill(bill_form, title=False) }} + </form> + </div> + </div> + </div> + + {% if bills.count() > 0 %} + <table id="bill_table" class="col table table-striped table-hover"> + <thead><tr><th>{{ _("When?") }}</th><th>{{ _("Who paid?") }}</th><th>{{ _("For what?") }}</th><th>{{ _("For whom?") }}</th><th>{{ _("How much?") }}</th><th>{{ _("Actions") }}</th></tr></thead> + <tbody> + {% for bill in bills %} + <tr owers="{{bill.owers|join(',','id')}}" payer="{{bill.payer.id}}"> + <td>{{ bill.date }}</td> + <td>{{ bill.payer }}</td> + <td>{{ bill.what }}</td> + <td>{{ bill.owers|join(', ', 'name') }} </td> + <td>{{ "%0.2f"|format(bill.amount) }} ({{ "%0.2f"|format(bill.pay_each()) }} {{ _("each") }})</td> + <td class="bill-actions"> + <a class="edit" href="{{ url_for(".edit_bill", bill_id=bill.id) }}" title="{{ _("edit") }}">{{ _('edit') }}</a> + <a class="delete" href="{{ url_for(".delete_bill", bill_id=bill.id) }}" title="{{ _("delete") }}">{{ _('delete') }}</a> + </td> + </tr> + {% endfor %} + </tbody> + </table> + + {% else %} + <p>{{ _("Nothing to list yet. You probably want to") }} <a href="{{ url_for(".add_bill") }}" data-toggle="modal" data-target="#bill-form">{{ _("add a bill") }}</a> ?</p> + {% endif %} +{% endblock %} |
