Skip to content

Instantly share code, notes, and snippets.

@ren23
Last active December 12, 2015 07:38
Show Gist options
  • Save ren23/4737871 to your computer and use it in GitHub Desktop.
Save ren23/4737871 to your computer and use it in GitHub Desktop.
def tracking3(request):
'''
affiche tous les type d'element ainsi que leur versions et leurs champs
'''
#cherche les types
type_elements = type_element.objects.order_by('famille', 'type')
#cherche les versions
versions = version.objects.select_related('type_element').order_by('type_element', 'modele', 'vers')
versions_dict = {}
for i, j in groupby(versions, lambda v:v.type_element.id):
versions_dict[i] = list(j)
#cherche les champs
fields = champ_supp2.objects.select_related('telt').order_by('telt', 'nom')
fields_dict = {}
for i, j in groupby(fields, lambda v:v.telt.id):
fields_dict[i] = list(j)
# obligations de lister par type d'element et non par version car un type peut ne pas avoir de version
# regroup
types = []
for type in type_elements:
versions = versions_dict.get(type.id, [])
versions_length = len(versions)
sup_row = max(versions_length, 1)
need_more = (sup_row > 1)
no_version = (versions_length == 0)
type_dict = {'type':type,
'versions' : versions,
'sup_row':sup_row,
'need_more':need_more,
'no_version':no_version,
'fields' : fields_dict.get(type.id, [])
}
types.append(type_dict)
return render_to_response('type/types2.html',
{'types':types, 'onglet':'suivi', 'url':url},
context_instance=RequestContext(request))
def tracking4(request):
'''
affiche tous les type d'element ainsi que leur versions et leurs champs
'''
#cherche les types
type_elements = type_element.objects.order_by('famille', 'type')
return render_to_response('type/types4.html',
{'type_elements':type_elements, 'onglet':'suivi', 'url':url},
context_instance=RequestContext(request))
{%extends "inst/non_generees/base.html"%}{% load i18n %}
{%block importcss%}
{%endblock%}
{%block titre%}{%include 'inst/titre/titre.html'%}{%endblock%}
{%block log%}{%include 'inst/log/log.html'%}{%endblock%}
{%block sidebarmenu%}
{%include 'inst/message.html'%}
{%endblock%}
{%load instrackr_filter%}
{%block content%}
<h2>
{% trans 'tracking types' %} <a href='{%url instrackr_app_type_edit_all_types%}'>Edit</a>
<div class='clear'></div>
</h2>
<ul>
{%regroup types by type.famille as familles%}
{% for family in familles%}
<h3>{{ family.grouper }}</h3>
<table style='width:100%' class='type_table'>
<tr>
<th>{%trans 'type'%}</th>
<th>{%trans 'modele'%}</th>
<th>{%trans 'version'%}</th>
<th>{%trans 'lot'%}</th>
<th>{%trans 'serial number'%}</th>
<th>{%trans 'visa'%}</th>
<th>{%trans 'serial number type'%}</th>
<th>{%trans 'additionnal fields'%}</th>
</tr>
{% for type in family.list %}
<tr class='type_top'>
<td ROWSPAN='{{type.sup_row}}'>{{ type.type.type }}</td>
<td>{%if type.no_version%}&nbsp;{%else%}{{type.versions.0.modele}}{%endif%}</td>
<td>{%if type.no_version%}&nbsp;{%else%}{{type.versions.0.vers}}{%endif%}</td>
<td ROWSPAN='{{type.sup_row}}'>{%if type.type|has_field:"lot"%}X{%endif%}</td>
<td ROWSPAN='{{type.sup_row}}'>{%if type.type|has_field:"lot"%}{%if type.type|has_field:"sn"%}X{%endif%}{%endif%}</td>
<td ROWSPAN='{{type.sup_row}}'>{%if type.type|has_field:"lot"%}{%if type.type|has_field:"sn"%}{%if type.type|has_field:"visa"%}X{%endif%}{%endif%}{%endif%}</td>
<td ROWSPAN='{{type.sup_row}}'>{{type.type.serialtype}}</td>
<td ROWSPAN='{{type.sup_row}}'>
{%for field in type.fields%}
{{field.nom}}&nbsp;{%ifequal field.valeur '2'%}{%trans 'boolean'%}{%else%}{%trans 'string'%}{%endifequal%}<br>
{%endfor%}
</td>
</tr>
{%if type.need_more%}
{%for version in type.versions|slice:"1:"%}
<tr>
<td>
{{version.modele}}
</td>
<td>
{{version.vers}}
</td>
</tr>
{%endfor%}
{%endif%}
{% endfor %}
</table>
{% endfor %}
{%endblock%}
{%extends "inst/non_generees/base.html"%}{% load i18n %}
{%block importcss%}
{%endblock%}
{%block titre%}{%include 'inst/titre/titre.html'%}{%endblock%}
{%block log%}{%include 'inst/log/log.html'%}{%endblock%}
{%block sidebarmenu%}
{%include 'inst/message.html'%}
{%endblock%}
{%load instrackr_filter%}
{%block content%}
<h2>
{% trans 'tracking types' %} <a href='{%url instrackr_app_type_edit_all_types%}'>Edit</a>
<div class='clear'></div>
</h2>
<ul>
{%regroup type_elements by famille as familles%}
{% for family in familles%}
<h3>{{ family.grouper }}</h3>
<table style='width:100%' class='type_table'>
<tr>
<th>{%trans 'type'%}</th>
<th>{%trans 'modele'%}</th>
<th>{%trans 'lot'%}</th>
<th>{%trans 'serial number'%}</th>
<th>{%trans 'visa'%}</th>
<th>{%trans 'serial number type'%}</th>
<th>{%trans 'additionnal fields'%}</th>
</tr>
{% for type in family.list %}
<tr class='type_top'>
<td>{{ type }}</td>
<td>{%for v in type.version_set.all%}{{v.modele}}{{v.vers}}<br/>{%endfor%}</td>
<td>{%if type|has_field:"lot"%}X{%endif%}</td>
<td>{%if type|has_field:"lot"%}{%if type|has_field:"sn"%}X{%endif%}{%endif%}</td>
<td>{%if type|has_field:"lot"%}{%if type|has_field:"sn"%}{%if type|has_field:"visa"%}X{%endif%}{%endif%}{%endif%}</td>
<td></td>
<td>
{%for field in type.champ_supp2_set.all%}
{{field.nom}}&nbsp;{%ifequal field.valeur '2'%}{%trans 'boolean'%}{%else%}{%trans 'string'%}{%endifequal%}<br>
{%endfor%}
</td>
</tr>
{% endfor %}
</table>
{% endfor %}
{%endblock%}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment