Release 1.6.2 (#1289)

* include user teams in user entity
* prevent unauthorized access via API
* improve teamlead permission handling in team timesheets
* add team data to user entity
* add security tests
* highlight menu for invoice template copy
* unified handling of invoice data across all templates
* access to the current users data in invoice templates
* permission improvement in invoice form
* allow to skip record rows
* allow to add new invoice locations without overwriting the global ones
* allow to order user preferences
* change permission for normal users with access to view_other_timesheets
* properly validate invoice template field length
* allow to replace multiple variables in cell values text
* upgraded office invoice template
* doctrine deprecation fix
* upgrade phpoffice/phpword
* fix future begin check for default rounding rules
* dashboard widget counter: respect visibility and teams - fixes #1161
* fix future begin check for default rounding rules
* added new events for pre and post invoice rendering
* fix permission issue for users without team seeing all records
* prevent error in spreadsheet renderer for empty invoices
This commit is contained in:
Kevin Papst
2019-12-02 10:57:03 +01:00
committed by GitHub
parent 47414cfd0e
commit 984c852ab6
78 changed files with 1279 additions and 625 deletions

View File

@@ -4,18 +4,11 @@
{% block invoice %}
{% set signature = null %}
{# You can overwrite these settings in your config/packages/local.yaml under the key "twig.globals.company" - previously '/build/images/signature.png' #}
{% set company = company|default({signature: null}) %}
{% if company.signature is defined and company.signature is not empty %}
{% set signature = company.signature %}
{% endif %}
<div class="row" id="freelancer-invoice">
<div class="col-xs-12">
<header>
<address>
<p contenteditable="true">{{ model.template.address|replace({"\n": ' &ndash; ', "\r\n": ' &ndash; ', "\r": ' &ndash; '})|raw }}</p>
<p contenteditable="true">{{ model.template.company }} &ndash; {{ model.template.address|replace({"\n": ' &ndash; ', "\r\n": ' &ndash; ', "\r": ' &ndash; '})|raw }}</p>
</address>
</header>
<article class="address">
@@ -93,9 +86,9 @@
{{ entry.activity.name }} / {{ entry.project.name }}
{% endif %}
</td>
<td class="text-right">{{ rate|money(model.calculator.currency) }}</td>
<td class="text-right">{{ duration }}</td>
<td class="text-right">{{ entry.rate|money(model.calculator.currency) }}</td>
<td class="text-right text-nowrap">{{ rate|money(model.calculator.currency) }}</td>
<td class="text-right text-nowrap">{{ duration }}</td>
<td class="text-right text-nowrap">{{ entry.rate|money(model.calculator.currency) }}</td>
</tr>
{% endfor %}
</tbody>
@@ -120,9 +113,6 @@
<div contenteditable="true">
{{ model.template.paymentTerms|nl2br|md2html }}
</div>
{% if signature is not empty %}
<img src="{{ signature }}">
{% endif %}
</article>
{% endif %}
<footer class="footer">
@@ -132,6 +122,7 @@
<strong>{{ 'label.address'|trans }}</strong>
</p>
<p>
{{ model.template.company }}<br>
{{ model.template.address|nl2br }}
</p>
</div>