summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar/ishtar_base/models.py23
-rw-r--r--ishtar/templates/dashboard_operation.html2
2 files changed, 21 insertions, 4 deletions
diff --git a/ishtar/ishtar_base/models.py b/ishtar/ishtar_base/models.py
index 67dad81b7..6921b3284 100644
--- a/ishtar/ishtar_base/models.py
+++ b/ishtar/ishtar_base/models.py
@@ -29,7 +29,7 @@ from django.utils.safestring import SafeUnicode, mark_safe
from django.core.urlresolvers import reverse, NoReverseMatch
from django.db.utils import DatabaseError
from django.db.models import Q, Max, Count, Sum, Avg
-from django.db.models.signals import m2m_changed
+from django.db.models.signals import m2m_changed, post_save
from django.contrib.auth.models import User
from django.contrib.gis.db import models
@@ -868,7 +868,7 @@ class OperationDashboard:
.values('department__pk', 'operation__year')\
.annotate(number=Count('operation'),
area=Sum('operation__surface'),
- fnap=Sum('operation__fnap_financing'),
+ fnap=Sum('operation__fnap_cost'),
cost=Sum('operation__cost'))\
.order_by('operation__year')
dct_years = {}
@@ -1363,7 +1363,9 @@ class Operation(BaseHistorizedItem, OwnPerms):
TABLE_COLS = ['code_patriarche'] + TABLE_COLS
code_dracar = models.CharField(u"Code DRACAR", max_length=10, null=True,
blank=True)
- fnap_financing = models.FloatField(u"Financement FNAP",
+ fnap_financing = models.FloatField(u"Financement FNAP (%)",
+ blank=True, null=True)
+ fnap_cost = models.IntegerField(u"Financement FNAP (€)",
blank=True, null=True)
zoning_prescription = models.NullBooleanField(
_(u"Prescription on zoning"), blank=True, null=True)
@@ -1468,6 +1470,21 @@ class Operation(BaseHistorizedItem, OwnPerms):
return {'date':item.history_date,
'user':IshtarUser.objects.get(pk=item.history_modifier_id)}
+def operation_post_save(sender, **kwargs):
+ if not kwargs['instance']:
+ return
+ operation = kwargs['instance']
+ if operation.fnap_financing and operation.cost:
+ fnap_cost = int(float(operation.cost)/100*operation.fnap_financing)
+ if not operation.fnap_cost or operation.fnap_cost != fnap_cost:
+ operation.fnap_cost = fnap_cost
+ operation.save()
+ elif operation.fnap_cost and operation.cost:
+ fnap_percent = float(operation.fnap_cost)*100/operation.cost
+ operation.fnap_financing = fnap_percent
+ operation.save()
+post_save.connect(operation_post_save, sender=Operation)
+
class OperationByDepartment(models.Model):
'''
Database view: don't forget to create it
diff --git a/ishtar/templates/dashboard_operation.html b/ishtar/templates/dashboard_operation.html
index 71d9563d2..28f1dd9c6 100644
--- a/ishtar/templates/dashboard_operation.html
+++ b/ishtar/templates/dashboard_operation.html
@@ -471,7 +471,7 @@
<tr>
{%for yr in dashboard.years %}<th>{%trans "Nb."%}</th><th>{%trans "Cost"%}</th><th>{%trans "FNAP cost"%}</th>{% endfor %}<th>{%trans "Nb."%}</th><th>{%trans "Cost"%}</th><th>{%trans "FNAP cost"%}</th>
</tr>
- {% for lbl, years in dashboard.survey.effective_by_dpt %}
+ {% for lbl, years in dashboard.excavation.effective_by_dpt %}
<tr>
<th class='sub'>{{lbl}}</th>{%for nb, area, cost, fnap in years %}<td{%if forloop.last%} class='sub'{%endif%}>{{nb}}</td><td{%if forloop.last%} class='sub'{%endif%}>{{cost}}</td><td{%if forloop.last%} class='sub'{%endif%}>{{fnap}}</td>{% endfor %}
</tr>