Add a unified balance table for all sidebar pages (#618)

This commit is contained in:
Glandos 2020-05-21 20:47:56 +02:00 committed by GitHub
parent 3f46beade3
commit e10ea6c776
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 48 additions and 69 deletions

View file

@ -98,23 +98,7 @@
{% block sidebar %} {% block sidebar %}
<div id="table_overflow"> <div id="table_overflow">
<table class="balance table"> {{ balance_table(show_weight=False, show_header=True) }}
<thead>
<tr class="d-none d-md-table-row">
<th>{{ _("Who?") }}</th>
<th class="balance-value">{{ _("Balance") }}</th>
</tr>
</thead>
{% 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 }}</td>
<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> </div>
{% endblock %} {% endblock %}

View file

@ -45,31 +45,7 @@
</form> </form>
<div id="table_overflow"> <div id="table_overflow">
<table class="balance table"> {{ balance_table(member_edit=True) }}
{% 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> </div>
</div> </div>
<div class="identifier"> <div class="identifier">

View file

@ -2,17 +2,7 @@
{% block sidebar %} {% block sidebar %}
<div id="table_overflow"> <div id="table_overflow">
<table class="balance table"> {{ balance_table(show_weight=False) }}
{% 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 }}</td>
<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> </div>
{% endblock %} {% endblock %}

View file

@ -1,5 +1,49 @@
{% extends "layout.html" %} {% extends "layout.html" %}
{% macro balance_table(show_weight = True, show_header = False, member_edit = False) %}
<table class="balance table">
{%- set balance = g.project.balance %}
{%- if show_header %}
<thead>
<tr class="d-none d-md-table-row">
<th>{{ _("Who?") }}</th>
<th class="balance-value">{{ _("Balance") }}</th>
</tr>
</thead>
{%- endif %}
{%- 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 }}
{%- if show_weight -%}
<span class="light{% if not g.project.uses_weights %} extra-info{% endif %}">(x{{ member.weight|minimal_round(1) }})</span>
{%- endif -%}
</td>
{%- if member_edit %}
{%- 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 %}
{%- 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 %}{{ balance[member.id]|currencyformat_nc(g.project.default_currency) }}
</td>
</tr>
{%- endfor %}
</table>
{% endmacro %}
{% block body %} {% block body %}
<div class="row"> <div class="row">
<aside id="sidebar" class="sidebar col-xs-12 col-md-3 " style="height: 100%"> <aside id="sidebar" class="sidebar col-xs-12 col-md-3 " style="height: 100%">

View file

@ -2,22 +2,7 @@
{% block sidebar %} {% block sidebar %}
<div id="table_overflow" class="statistics mr-md-n3"> <div id="table_overflow" class="statistics mr-md-n3">
<table class="balance table"> {{ balance_table(show_weight=False, show_header=True) }}
<thead>
<tr class="d-none d-md-table-row">
<th>{{ _("Who?") }}</th>
<th class="balance-value">{{ _("Balance") }}</th>
</tr>
</thead>
{% for stat in members_stats|sort(attribute='member.name') %}
<tr>
<td class="balance-name">{{ stat.member.name }}</td>
<td class="balance-value {% if stat.balance|round(2) > 0 %}positive{% elif stat.balance|round(2) < 0 %}negative{% endif %}">
{% if stat.balance|round(2) > 0 %}+{% endif %}{{ "%.2f" | format(stat.balance) }}
</td>
</tr>
{% endfor %}
</table>
</div> </div>
{% endblock %} {% endblock %}