diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-03-09 22:56:48 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-03-09 22:56:48 +0100 |
commit | bd9e6483dd3d7416e1b228e82a70b5d6ba6d3ce6 (patch) | |
tree | 3723277e0e3b81e4fb940fcc6eab407290277fbd | |
parent | 7832dc999fd7d3128efe2547ed503b45958e2c52 (diff) | |
download | Ishtar-bd9e6483dd3d7416e1b228e82a70b5d6ba6d3ce6.tar.bz2 Ishtar-bd9e6483dd3d7416e1b228e82a70b5d6ba6d3ce6.zip |
Operation sheet (refs #16)
-rw-r--r-- | ishtar/furnitures/forms.py | 4 | ||||
-rw-r--r-- | ishtar/furnitures/models.py | 13 | ||||
-rw-r--r-- | ishtar/furnitures/urls.py | 3 | ||||
-rw-r--r-- | ishtar/furnitures/views.py | 2 | ||||
-rw-r--r-- | ishtar/templates/default_wizard.html | 1 | ||||
-rw-r--r-- | ishtar/templates/sheet_ope.html | 125 | ||||
-rw-r--r-- | ishtar/templates/sheet_operation.html | 128 | ||||
-rw-r--r-- | ishtar/templates/sheet_operation_pdf.html | 14 | ||||
-rw-r--r-- | ishtar/templates/sheet_operation_window.html | 3 | ||||
-rw-r--r-- | static/media/style.css | 7 |
10 files changed, 170 insertions, 130 deletions
diff --git a/ishtar/furnitures/forms.py b/ishtar/furnitures/forms.py index 642da9b4b..821ef1bb9 100644 --- a/ishtar/furnitures/forms.py +++ b/ishtar/furnitures/forms.py @@ -1631,10 +1631,7 @@ class RecordWizard(Wizard): r = super(RecordWizard, self).done(request, storage, form_list, return_object=True, **kwargs) if type(r) not in (list, tuple) or len(r) != 2: - print 1 - print r return r - print 2 obj, res = r for form in form_list: if not hasattr(form, 'prefix') \ @@ -1646,7 +1643,6 @@ class RecordWizard(Wizard): if not frm.is_valid(): continue dct = frm.cleaned_data.copy() - print dct if not dct: continue try: diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py index c1980f68c..b9dc19afe 100644 --- a/ishtar/furnitures/models.py +++ b/ishtar/furnitures/models.py @@ -449,6 +449,16 @@ class Operation(BaseHistorizedItem, OwnPerms): return Q(in_charge=user.person)|Q(history_modifier=user)\ & Q(end_date__isnull=True) + """ + def closing(self): + if self.is_active: + return + for item in self.history.all(): + if item.is_active(): + break + closing_item = item + return {'date':item.history_date, 'user':item.history_modifier} +""" class Parcel(LightHistorizedItem): associated_file = models.ForeignKey(File, related_name='parcels', blank=True, null=True, verbose_name=_(u"File")) @@ -549,7 +559,8 @@ class Unit(GeneralType) : return self.label class ContextRecord(BaseHistorizedItem, OwnPerms): - parcel = models.ForeignKey(Parcel, verbose_name=_(u"Parcel")) + parcel = models.ForeignKey(Parcel, verbose_name=_(u"Parcel"), + related_name='context_records') label = models.CharField(_(u"Label"), max_length=200) description = models.TextField(_("Description"), blank=True, null=True) lenght = models.IntegerField(_(u"Lenght")) diff --git a/ishtar/furnitures/urls.py b/ishtar/furnitures/urls.py index 0e28043e2..71a3a116c 100644 --- a/ishtar/furnitures/urls.py +++ b/ishtar/furnitures/urls.py @@ -98,6 +98,9 @@ urlpatterns += patterns('ishtar.furnitures.views', url(BASE_URL + r'show-operation/(?P<pk>.+)?/(?P<type>.+)?$', 'show_operation', name='show-operation'), + url(BASE_URL + r'show-contextrecord/(?P<pk>.+)?/(?P<type>.+)?$', + 'show_contextrecord', + name='show-contextrecord'), url(BASE_URL + r'update-current-item/$', 'update_current_item', name='update-current-item'), url(BASE_URL + r'get-administrativeact/(?P<type>.+)?$', diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py index 1be067454..b212dee77 100644 --- a/ishtar/furnitures/views.py +++ b/ishtar/furnitures/views.py @@ -374,6 +374,8 @@ def autocomplete_organization(request, orga_type=None): for org in organizations]) return HttpResponse(data, mimetype='text/plain') +show_contextrecord = show_item(models.ContextRecord, 'contextrecord') + def action(request, action_slug, obj_id=None, *args, **kwargs): """ Action management diff --git a/ishtar/templates/default_wizard.html b/ishtar/templates/default_wizard.html index 1666b4979..70563786b 100644 --- a/ishtar/templates/default_wizard.html +++ b/ishtar/templates/default_wizard.html @@ -14,6 +14,7 @@ </ul> <div class='form'> {% if form.forms %} +<div class='top_button'><input type="submit" id="submit_form" value="{% trans "Validate" %}"/></div> <table class='formset'> {%if form.non_form_errors%}<tr class='error'><th colspan='2'>{{form.non_form_errors}}</th></tr>{%endif%} {{ form.management_form }} diff --git a/ishtar/templates/sheet_ope.html b/ishtar/templates/sheet_ope.html deleted file mode 100644 index 37ddece93..000000000 --- a/ishtar/templates/sheet_ope.html +++ /dev/null @@ -1,125 +0,0 @@ -{% extends "sheet.html" %} -{% load i18n %} -{% block content %} -<div class='tool'>{%trans "Export as:"%} <a href='{% url show-file item.pk "odt" %}'>{%trans "OpenOffice.org file"%}</a>, <a href='{% url show-file item.pk "pdf" %}'>{%trans "PDF file"%}</a></div> -<h3>{% trans "General"%}</h3> -<p><label>{%trans "Year:"%}</label> <span class='value'>{{ item.year }}</span></p> -<p><label>{%trans "Numerical reference:"%}</label> <span class='value'>{{ item.numeric_reference }}</span></p> - -{% if item.patriarche_code %}<p><label>{%trans "Patriarche OA code:"%}</label> <span class='value'>{{ item.patriarche_code }}</span></p>{%endif%} -{% if item.patriarche_code_not_recorded %}<p><label>{%trans "Patriarche OA code not yet recorded !"%}</label></p>{%endif%} - -<p><label>{%trans "Operation's name:"%}</label> <span class='value'>{{ item.internal_reference }}</span></p> - -<p><label>{%trans "Edition date:"%}</label> <span class='value'>{{ item.history.all.0.history_date }}</span></p> <!-- date = now --> - -<p><label>{%trans "Begining date:"%}</label> <span class='value'>{{ item.begin_date }}</span></p> -<p><label>{%trans "Field work end's date:"%}</label> <span class='value'>{{ item.end_date }}</span></p> - -<p><label>{%trans "Head scientist:"%}</label> <span class='value'>{{ item.head_scientist.full_label }}</span></p> -<p><label>{%trans "State:"%}</label> <span class='value'>{% if item.is_active %}{%trans "Active file"%}</span></p> -{% else %}{%trans "Closed operation"%}</span></p> -<p><label>{%trans "Closing date:"%}</label> <span class='value'>{{ item.closing.date }} <strong>{%trans "by" %}</strong> {{ item.closing.user }}</span></p> -{% endif %} -<p><label>{%trans "Type:"%}</label> <span class='value'>{{ item.operation_type }}</span></p> -<p><label>{%trans "Surface:"%}</label> <span class='value'>{{ item.total_surface }} m<sup>2</sup> ({{ item.total_surface_ha }} ha)</span></p> -<p><label>{%trans "Cost:"%}</label> <span class='value'>{{ item.cost }} Euros, ({{ item.cost_by_m2 }} Euros/m<sup>2</sup>)</span></p> -<p><label>{%trans "Duration:"%}</label> <span class='value'>{{ item.duration }} {%trans "Day"%}s</span></p> - -<p><label>{%trans "Remains:"%}</label> <span class='value'>{{ item.remains.all|join:", " }}</span></p> -<p><label>{%trans "Periods:"%}</label> <span class='value'>{{ item.periods.all|join:", " }}</span></p> - -{% if item.related_file %} -<p><label>{%trans "Related file:"%}</label> <span class='value'><a href='{% url show-file item.related_file.pk ''%}'>{{ item.related_file }}</a></span></p><!-- Displayed as Year/index/Commune/Common_name This should be a link to the file sheet of the related file --> -{% if item.related_file.is_preventive %} -{% if item.operator_reference_code %}<p><label>{%trans "Operator's reference code:"%}</label> <span class='value'>{{ item.operator_reference_code }}</span></p>{% endif %} -{% if item.related_file.town_planning_service %}<p><label>{%trans "Town planning service:"%}</label> <span class='value'>{{ item.related_file.town_planning_service }}</span></p>{% endif %} -{% if item.related_file.permit_type %}<p><label>{%trans "Permit type:"%}</label> <span class='value'>{{ item.related_file.permit_type }}</span></p>{% endif %} -{% if item.related_file.permit_reference %}<p><label>{%trans "Permit reference:"%}</label> <span class='value'>{{ item.related_file.permit_reference }}</span></p>{% endif %} -{% if item.related_file.general_contractor.attached_to %}<p><label>{%trans "General contractor organisation:"%}</label> <span class='value'>{{ item.related_file.general_contractor.attached_to }}</span></p>{% endif %} <!-- Contractor's organisation displayed as concat of Name/Adress/postal_code/city --> -{% if item.related_file.general_contractor %}<p><label>{%trans "General contractor:"%}</label> <span class='value'>{{ item.related_file.general_contractor.full_label }}</span></p>{% endif %} -{% endif %} -{% endif %} - -{% if item.comment %}<p><label>{%trans "Comment:"%}</label> <span class='value'>{{ item.comment }}</span></p>{%endif%} - -<h3>{% trans "Localisation"%}</h3> -<p><label>{%trans "Towns:"%}</label> <span class='value'>{{ item.towns.all|join:", " }}</span></p> - -<p><label>{%trans "Main address:"%}</label> <span class='value'>{{ item.address }}</span></p> -{% if item.address_complement %}<p><label>{%trans "Complement:"%}</label> <span class='value'>{{ item.address_complement }}</span></p>{%endif%} -{% if item.postal_code %}<p><label>{%trans "Postal code:"%}</label> <span class='value'>{{ item.postal_code }}</span></p>{%endif%} - -<p><label>{%trans "Lambert X:"%}</label> <span class='value'>{{ item.lambert_x }}</span></p> -<p><label>{%trans "Lambert Y:"%}</label> <span class='value'>{{ item.lambert_y }}</span></p> -<p><label>{%trans "Altitude (m NGF):"%}</label> <span class='value'>{{ item.altitude }}</span></p> - -<table> - <caption>{%trans "Associated parcels"%}</caption> - <tr> - <th>{% trans "Commune" %}</th> - <th>{% trans "Year" %}</th> - <th>{% trans "Section" %}</th> - <th>{% trans "Parcel" %}</th> - <th>{% trans "Owner" %}</th> - </tr> - {% for parcels in item.parcel.all %} - <tr> - <td>{{operation.commune}}</td> - <td>{{operation.year}}</td> - <td>{{operation.section}}</td> - <td>{{operation.parcel}}</td> - <td class='string'>{{operation.parcel.owner}}</td> - </tr> - {% empty %} - <tr><td colspan="5" class='no_items'>{% trans "No parcel associated to this operation" %}</td></tr> - {% endfor %} -</table> - -<h3>{% trans "Admninistrative acts"%}</h3> -<table> - <caption>{%trans "Admninistrative acts"%}</caption> - <tr> - <th>{% trans "Year" %}</th> - <th>{% trans "Reference" %}</th> - <th>{% trans "Type" %}</th> - <th>{% trans "Date" %}</th> - </tr> - {% for act in item.administrative_act.all %} - <tr> - <td>{{act.signature_date.year}}</td> - <td>{{act.ref_sra}}</td> - <td class='string'>{{act.act_type}}</td> - <td>{{act.signature_date}}</td> - </tr> - {% empty %} - <tr><td colspan="4" class='no_items'>{% trans "No administrative act associated to this operation" %}</td></tr> - {% endfor %} -</table> - -<h3>{% trans "Recording Units"%}</h3> -<table> - <caption>{%trans "Recording Units"%}</caption> - <tr> - <th>{% trans "Label" %}</th> - <th>{% trans "Type" %}</th> - <th>{% trans "Chronology" %}</th> - <th>{% trans "Description" %}</th> - <th>{% trans "Parcel" %}</th> - <th class='link'> </th> - </tr> - {% for record_unit in item.record_unit.all %} - <tr> - <td>{{ record_unit.label }}</td> - <td class='string'>{{record_unit.unit_type}}</td> - <td>{{ record_unit.period.all|join:", " }}</td> - <td>{{ record_unit.description }}</td> - <td>{{ record_unit.section_and_parcel }}</td><!-- Displayed as (Section)-(parcel number). A record unit can be linked to only one parcel. --> - <td class='link'><a href="#{#{%url show-record_unit record_unit.pk%}#}">{% trans "Details" %}</a></td> - </tr> - {% empty %} - <tr><td colspan="6" class='no_items'>{% trans "No recording unit associated to this operation" %}</td></tr> - {% endfor %} -</table> - -{% endblock %} diff --git a/ishtar/templates/sheet_operation.html b/ishtar/templates/sheet_operation.html new file mode 100644 index 000000000..8902126c6 --- /dev/null +++ b/ishtar/templates/sheet_operation.html @@ -0,0 +1,128 @@ +{% extends "sheet.html" %} +{% load i18n %} +{% block content %} +<div class='tool'>{%trans "Export as:"%} <a href='{% url show-operation item.pk "odt" %}'>{%trans "OpenOffice.org file"%}</a>, <a href='{% url show-operation item.pk "pdf" %}'>{%trans "PDF file"%}</a></div> +<h3>{% trans "General"%}</h3> +<p><label>{%trans "Year:"%}</label> <span class='value'>{{ item.year }}</span></p> +<p><label>{%trans "Numerical reference:"%}</label> <span class='value'>{{ item.operation_code }}</span></p> + +{% if item.code_patriarche %}<p><label>{%trans "Patriarche OA code:"%}</label> <span class='value'>{{ item.code_patriarche }}</span></p>{%else%} +<p class='alert'>{%trans "Patriarche OA code not yet recorded!"%}</p>{%endif%} + +{#<p><label>{%trans "Operation's name:"%}</label> <span class='value'>{{ item.internal_reference }}</span></p>#} + +<p><label>{%trans "Edition date:"%}</label> <span class='value'>{{ item.history.all.0.history_date }}</span></p> <!-- date = now --> + +<p><label>{%trans "Begining date:"%}</label> <span class='value'>{{ item.start_date }}</span></p> +<p><label>{%trans "Field work end's date:"%}</label> <span class='value'>{{ item.end_date }}</span></p> + +<p><label>{%trans "Head scientist:"%}</label> <span class='value'>{{ item.in_charge.full_label }}</span></p> +<p><label>{%trans "State:"%}</label> <span class='value'>{% if item.is_active %}{%trans "Active file"%}</span></p> +{% else %}{%trans "Closed operation"%}</span></p> +<p><label>{%trans "Closing date:"%}</label> <span class='value'>{{ item.closing.date }} <strong>{%trans "by" %}</strong> {{ item.closing.user }}</span></p> +{% endif %} +<p><label>{%trans "Type:"%}</label> <span class='value'>{{ item.operation_type }}</span></p> +{#<p><label>{%trans "Surface:"%}</label> <span class='value'>{{ item.total_surface }} m<sup>2</sup> ({{ item.total_surface_ha }} ha)</span></p>#} +{% if item.cost %}<p><label>{%trans "Cost:"%}</label> <span class='value'>{{ item.cost }} Euros, ({{ item.cost_by_m2 }} Euros/m<sup>2</sup>)</span></p>{%endif%} +{% if item.duration %}<p><label>{%trans "Duration:"%}</label> <span class='value'>{{ item.duration }} {%trans "Day"%}s</span></p>{%endif%} + +<p><label>{%trans "Remains:"%}</label> <span class='value'>{{ item.remains.all|join:", " }}</span></p> +<p><label>{%trans "Periods:"%}</label> <span class='value'>{{ item.periods.all|join:", " }}</span></p> + +{% if item.associated_file %} +<p><label>{%trans "Associated file:"%}</label> <span class='value'><a href='{% url show-file item.associated_file.pk ''%}'>{{ item.associated_file }}</a></span></p><!-- Displayed as Year/index/Commune/Common_name This should be a link to the file sheet of the related file --> +{% if item.associated_file.is_preventive %} +{#{% if item.operator_reference_code %}<p><label>{%trans "Operator's reference code:"%}</label> <span class='value'>{{ item.operator_reference_code }}</span></p>{% endif %}#} +{% if item.associated_file.town_planning_service %}<p><label>{%trans "Town planning service:"%}</label> <span class='value'>{{ item.associated_file.town_planning_service }}</span></p>{% endif %} +{% if item.associated_file.permit_type %}<p><label>{%trans "Permit type:"%}</label> <span class='value'>{{ item.associated_file.permit_type }}</span></p>{% endif %} +{% if item.associated_file.permit_reference %}<p><label>{%trans "Permit reference:"%}</label> <span class='value'>{{ item.associated_file.permit_reference }}</span></p>{% endif %} +{% if item.associated_file.general_contractor.attached_to %}<p><label>{%trans "General contractor organisation:"%}</label> <span class='value'>{{ item.associated_file.general_contractor.attached_to }}</span></p>{% endif %} <!-- Contractor's organisation displayed as concat of Name/Adress/postal_code/city --> +{% if item.associated_file.general_contractor %}<p><label>{%trans "General contractor:"%}</label> <span class='value'>{{ item.associated_file.general_contractor.full_label }}</span></p>{% endif %} +{% endif %} +{% endif %} + +{% if item.comment %}<p><label>{%trans "Comment:"%}</label> <span class='value'>{{ item.comment }}</span></p>{%endif%} + +<h3>{% trans "Localisation"%}</h3> +<p><label>{%trans "Towns:"%}</label> <span class='value'>{{ item.towns.all|join:", " }}</span></p> + +<p><label>{%trans "Main address:"%}</label> <span class='value'>{{ item.associated_file.address }}</span></p> +{% if item.associated_file.address_complement %}<p><label>{%trans "Complement:"%}</label> <span class='value'>{{ item.associated_file.address_complement }}</span></p>{%endif%} +{% if item.associated_file.postal_code %}<p><label>{%trans "Postal code:"%}</label> <span class='value'>{{ item.associated_file.postal_code }}</span></p>{%endif%} + +{% comment %} +<p><label>{%trans "Lambert X:"%}</label> <span class='value'>{{ item.lambert_x }}</span></p> +<p><label>{%trans "Lambert Y:"%}</label> <span class='value'>{{ item.lambert_y }}</span></p> +<p><label>{%trans "Altitude (m NGF):"%}</label> <span class='value'>{{ item.altitude }}</span></p> +{% endcomment %} +<table> + <caption>{%trans "Associated parcels"%}</caption> + <tr> + <th>{% trans "Commune" %}</th> + <th>{% trans "Year" %}</th> + <th>{% trans "Section" %}</th> + <th>{% trans "Parcel" %}</th> + {#<th>{% trans "Owner" %}</th>#} + </tr> + {% for parcel in item.parcels.all %} + <tr> + <td class='string'>{{parcel.town}}</td> + <td>{{parcel.year}}</td> + <td>{{parcel.section}}</td> + <td>{{parcel.parcel_number}}</td> + {#<td class='string'>{{operation.parcel.owner}}</td>#} + </tr> + {% empty %} + <tr><td colspan="4" class='no_items'>{% trans "No parcel associated to this operation" %}</td></tr> + {% endfor %} +</table> + +<table> + <caption>{%trans "Admninistrative acts"%}</caption> + <tr> + <th>{% trans "Year" %}</th> + <th>{% trans "Reference" %}</th> + <th>{% trans "Type" %}</th> + <th>{% trans "Date" %}</th> + </tr> + {% for act in item.administrative_act.all %} + <tr> + <td>{{act.signature_date.year}}</td> + <td>{{act.ref_sra}}</td> + <td class='string'>{{act.act_type}}</td> + <td>{{act.signature_date}}</td> + </tr> + {% empty %} + <tr><td colspan="4" class='no_items'>{% trans "No administrative act associated to this operation" %}</td></tr> + {% endfor %} +</table> + +<table> + <caption>{%trans "Context records"%}</caption> + <tr> + <th>{% trans "Label" %}</th> + <th>{% trans "Type" %}</th> + <th>{% trans "Chronology" %}</th> + <th>{% trans "Description" %}</th> + <th>{% trans "Parcel" %}</th> + <th class='link'> </th> + </tr> + {% for parcel in item.parcels.all %} + {% for context_record in item.context_record.all %} + <tr> + <td>{{ context_record.label }}</td> + <td class='string'>{{context_record.unit}}</td> + <td>{{ context_record.datings.all|join:", " }}</td>{# periods ?#} + <td class='string'>{{ context_record.description }}</td> + <td>{{ parcel.section }} - {{parcel.parcel_number}}</td> + <td class='link'><a href="{%url show-context_record context_record.pk%}">{% trans "Details" %}</a></td> + </tr> + {% empty %} + <tr><td colspan="5" class='no_items'>{% trans "No context record associated to parcel " %}{{ parcel.section }} - {{parcel.parcel_number}}</td></tr> + {% endfor %} + {% empty %} + <tr><td colspan="5" class='no_items'>{% trans "No context record associated to this operation" %}</td></tr> + {% endfor %} +</table> + +{% endblock %} diff --git a/ishtar/templates/sheet_operation_pdf.html b/ishtar/templates/sheet_operation_pdf.html new file mode 100644 index 000000000..30f9595bf --- /dev/null +++ b/ishtar/templates/sheet_operation_pdf.html @@ -0,0 +1,14 @@ +{% extends "sheet_operation.html" %} +{% block main_head %} +{{ block.super }} +<div id="pdfheader"> +Ishtar – {{APP_NAME}} – {{item}} +</div> +{% endblock %} +{%block main_foot%} +<div id="pdffooter"> +– <pdf:pagenumber/> – +</div> +</body> +</html> +{%endblock%} diff --git a/ishtar/templates/sheet_operation_window.html b/ishtar/templates/sheet_operation_window.html new file mode 100644 index 000000000..9c595a1e9 --- /dev/null +++ b/ishtar/templates/sheet_operation_window.html @@ -0,0 +1,3 @@ +{% extends "sheet_operation.html" %} +{% block main_head %}{%endblock%} +{% block main_foot %}{%endblock%} diff --git a/static/media/style.css b/static/media/style.css index 5d00ff793..8aa4ead48 100644 --- a/static/media/style.css +++ b/static/media/style.css @@ -343,3 +343,10 @@ table.confirm tr.spacer td:last-child{ margin:0.3em; } +#window p.alert{ + color:#D14; + display:block; + margin-left:1em; + font-style:italic; +} + |