retouche get tarifs
This commit is contained in:
@@ -108,19 +108,20 @@ def delete_membre(request, cd_uti):
|
||||
query = "DELETE FROM p_users WHERE cd_uti = :cd_uti ;"
|
||||
execute_query(request, query, {'cd_uti': cd_uti})
|
||||
|
||||
def get_article(request, type, libelle):
|
||||
if type == 'TX':
|
||||
query = "SELECT * FROM articles WHERE fam='T' and libart like :libelle;"
|
||||
results = request.dbsession.execute(query, {'libelle': libelle + "%"}).fetchall()
|
||||
elif type == 'AR':
|
||||
query = "SELECT * FROM articles WHERE ref_cli2 like :libelle;"
|
||||
results = request.dbsession.execute(query, {'libelle': libelle + "%"}).fetchall()
|
||||
elif type == 'REF':
|
||||
query = "SELECT * FROM articles WHERE ref = :ref;"
|
||||
results = request.dbsession.execute(query, {'ref': libelle}).first()
|
||||
def get_article(request, type, groupe, libelle):
|
||||
if type == 'LIB':
|
||||
if groupe == 'TEXTE':
|
||||
# lire tous les textes dont le libelle commençe par
|
||||
query = "SELECT * FROM tarifs WHERE groupe='TEXTE' and libelle like :libelle;"
|
||||
results = request.dbsession.execute(query, {'libelle': libelle + "%"}).fetchall()
|
||||
else:
|
||||
# lire tous les tarifs du grupe dont le ref commençe par libelle
|
||||
query = "SELECT * FROM tarifs WHERE groupe=:groupe and ref like :libelle;"
|
||||
results = request.dbsession.execute(query, {'groupe': groupe, 'libelle': libelle + "%"}).fetchall()
|
||||
else:
|
||||
query = "SELECT * FROM articles WHERE ref_cli2 = :ref;"
|
||||
results = request.dbsession.execute(query, {'ref': libelle}).first()
|
||||
# lire tous les tarif du grupe dont le ref est égale à
|
||||
query = "SELECT * FROM tarifs WHERE groupe=:groupe and ref = :libelle;"
|
||||
results = request.dbsession.execute(query, {'groupe': groupe, 'libelle': libelle}).first()
|
||||
return results
|
||||
|
||||
def get_codespostaux(request, codep):
|
||||
|
||||
@@ -241,7 +241,16 @@ def update_tarif(request, ref, new_values):
|
||||
query = "UPDATE tarifs SET %s WHERE ref = :ref;" % s
|
||||
execute_query(request, query, new_values)
|
||||
|
||||
def delete_tarifs(request, ref):
|
||||
def delete_tarif(request, ref):
|
||||
query = "DELETE FROM tarifs WHERE ref = :ref ;"
|
||||
execute_query(request, query, {'ref': ref})
|
||||
|
||||
def get_tarifs_byGroupe(request, groupe):
|
||||
query = "SELECT * FROM tarifs WHERE groupe = :groupe;"
|
||||
results = request.dbsession.execute(query, {'groupe': groupe}).fetchall()
|
||||
return results
|
||||
|
||||
def get_tarif(request, groupe, ref):
|
||||
query = "SELECT * FROM tarifs WHERE groupe = :groupe and ref = :ref;"
|
||||
results = request.dbsession.execute(query, {'groupe': groupe, 'ref': ref}).first()
|
||||
return results
|
||||
|
||||
@@ -68,8 +68,8 @@ def includeme(config):
|
||||
config.add_route('text_edit', '/text_edit/{text_id}')
|
||||
config.add_route('text_list', '/text_list')
|
||||
config.add_route('text_view', '/text_view/{text_id}')
|
||||
config.add_route('tarif_edit', '/tarif_edit/{ref}')
|
||||
config.add_route('tarifs', '/tarifs')
|
||||
config.add_route('tarif_edit', '/tarif_edit/{groupe}/{ref}')
|
||||
config.add_route('tarifs', '/tarifs/{groupe}')
|
||||
config.add_route('tarifs_import', '/tarifs_import')
|
||||
config.add_route('user_edit', '/user_edit/{cd_uti}')
|
||||
config.add_route('users', '/users')
|
||||
|
||||
@@ -119,6 +119,7 @@
|
||||
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
groupe = "${dossier.groupe}"
|
||||
// validate the form
|
||||
$('#devis_ligne-form').formValidation({
|
||||
framework: 'bootstrap',
|
||||
@@ -146,12 +147,14 @@ $(document).ready(function() {
|
||||
$('#libelle').autocomplete({
|
||||
minLength: 3,
|
||||
appendTo: "#TX",
|
||||
|
||||
source: function (request, response) {
|
||||
$.ajax({
|
||||
url:'/ajax_texte',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
recherche: 'TX' + request.term,
|
||||
groupe: 'TEXTE',
|
||||
libelle: request.term,
|
||||
},
|
||||
success: function (data) {
|
||||
response( data );
|
||||
@@ -167,7 +170,8 @@ $(document).ready(function() {
|
||||
url:'/ajax_texte',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
recherche: 'AR' + request.term,
|
||||
groupe: groupe,
|
||||
libelle: request.term,
|
||||
},
|
||||
success: function (data) {
|
||||
response( data );
|
||||
@@ -180,7 +184,10 @@ $(document).ready(function() {
|
||||
// lecture de l'article
|
||||
$.ajax({
|
||||
url: '/ajax_article',
|
||||
data: {ref:ref},
|
||||
data: {
|
||||
groupe: groupe,
|
||||
ref:ref
|
||||
},
|
||||
dataType: 'json',
|
||||
success:function(response){
|
||||
var len = response.length;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<h4>ARTICLES</h4>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
<a href="${request.application_url}/tarifs"><span class="glyphicon glyphicon-list-alt logo-primary"></span></a>
|
||||
<a href="${request.application_url}/tarifs/AXA"><span class="glyphicon glyphicon-list-alt logo-primary"></span></a>
|
||||
<h4>TARIFS</h4>
|
||||
</div>
|
||||
<div class="col-sm-3">
|
||||
|
||||
@@ -12,125 +12,44 @@
|
||||
<div id="tarif" class="tab-pane fade in active">
|
||||
<br />
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-2" for="REF">Référence</label>
|
||||
<label class="control-label col-xs-2" for="access">Groupe</label>
|
||||
<div class="col-xs-7">
|
||||
<p class="form-control-static">${item.groupe}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-2" for="ref">Référence</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="REF" name="REF" value="${item.REF}"
|
||||
placeholder="10 caractères maximum"
|
||||
<input class="form-control" type="text" id="ref" name="ref" value="${item.ref}"
|
||||
placeholder="20 caractères maximum"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="La référence est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="10"
|
||||
data-fv-stringlength-message="10 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-2">Famille</label>
|
||||
<div class="col-xs-6">
|
||||
<select class="form-control" id="FAM" name="FAM">
|
||||
<tal:block tal:repeat="famille familles">
|
||||
<option value="${famille}" tal:attributes="selected famille[0]==item.FAM and 'selected' or None">${famille}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-2" for="LIBART">Libellé</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="LIBART" name="LIBART" value="${item.LIBART}"
|
||||
placeholder="45 caractères maximum"
|
||||
data-fv-notempty="true"
|
||||
data-fv-notempty-message="Le libellé est obligatoire"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="45"
|
||||
data-fv-stringlength-message="45 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-2" for="LIBCOMPL1">Libellé compl. 1</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="LIBCOMPL1" name="LIBCOMPL1" value="${item.LIBCOMPL1}"
|
||||
placeholder="45 caractères maximum"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="45"
|
||||
data-fv-stringlength-message="45 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-2" for="LIBCOMPL2">Libellé compl. 2</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="LIBCOMPL2" name="LIBCOMPL2" value="${item.LIBCOMPL2}"
|
||||
placeholder="45 caractères maximum"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="45"
|
||||
data-fv-stringlength-message="45 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-2" for="LIBCOMPL3">Libellé compl. 3</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="LIBCOMPL3" name="LIBCOMPL3" value="${item.LIBCOMPL3}"
|
||||
placeholder="45 caractères maximum"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="45"
|
||||
data-fv-stringlength-message="45 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-2" for="LIBCOMPL4">Libellé compl. 4</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="LIBCOMPL4" name="LIBCOMPL4" value="${item.LIBCOMPL4}"
|
||||
placeholder="45 caractères maximum"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="45"
|
||||
data-fv-stringlength-message="45 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-2 control-label">Prix HT 1</label>
|
||||
<div class="col-xs-6">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
|
||||
<input class="form-control" type="text" id="PRIXHT1" name="PRIXHT1" value="${item.PRIXHT1}"
|
||||
data-fv-numeric="true"
|
||||
data-fv-numeric-message="Le montant est invalide" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-2 control-label">Prix HT 2</label>
|
||||
<div class="col-xs-6">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
|
||||
<input class="form-control" type="text" id="PRIXHT2" name="PRIXHT2" value="${item.PRIXHT2}"
|
||||
data-fv-numeric="true"
|
||||
data-fv-numeric-message="Le montant est invalide" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-2" for="ref_cli1">Réf. client 1</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="ref_cli1" name="ref_cli1" value="${item.ref_cli1}"
|
||||
placeholder="20 caractères maximum"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="20"
|
||||
data-fv-stringlength-message="20 caractères maximum" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-2" for="ref_cli2">Réf. client 2</label>
|
||||
<div class="col-xs-6">
|
||||
<input class="form-control" type="text" id="ref_cli2" name="ref_cli2" value="${item.ref_cli2}"
|
||||
placeholder="20 caractères maximum"
|
||||
data-fv-stringlength="true"
|
||||
data-fv-stringlength-max="20"
|
||||
data-fv-stringlength-message="20 caractères maximum" />
|
||||
<label class="control-label col-xs-2" for="libelle">Libellé</label>
|
||||
<div class="col-xs-8">
|
||||
<textarea class="form-control" rows="6" cols="40" id="libelle" name="libelle">${item.libelle}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-xs-2 control-label">Prix HT</label>
|
||||
<div class="col-xs-6">
|
||||
<div class="input-group">
|
||||
<span class="input-group-addon"><i class="glyphicon glyphicon-euro"></i></span>
|
||||
<input class="form-control" type="text" id="prixht" name="prixht" value="${item.prixht}"
|
||||
data-fv-numeric="true"
|
||||
data-fv-numeric-message="Le montant est invalide" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-2" for="access">Dernière modif.</label>
|
||||
<div class="col-xs-7">
|
||||
<p class="form-control-static" tal:condition="item.REF != '0'">${item.modif_le.strftime('%d/%m/%Y - %H:%M')}</p>
|
||||
<p class="form-control-static" tal:condition="item.ref != '0'">${item.modif_le.strftime('%d/%m/%Y - %H:%M')}</p>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
@@ -138,12 +57,12 @@
|
||||
<div class="form-group">
|
||||
<div class="col-xs-offset-2 col-xs-10">
|
||||
<div class="form-group">
|
||||
<a class="btn btn-default" href="${request.application_url}/articles">
|
||||
<a class="btn btn-default" href="${request.application_url}/tarifs/${item.groupe}">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Annuler</a>
|
||||
<button class="btn btn-primary" type="submit" name="form.submitted">
|
||||
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
|
||||
<button class="btn btn-warning" type="submit" name="form.deleted"
|
||||
tal:condition="item.REF != '0'">
|
||||
tal:condition="item.ref != '0'">
|
||||
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
|
||||
<form method="POST" id="frm" class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label class="control-label col-md-1">Famille : </label>
|
||||
<label class="control-label col-md-1">groupe : </label>
|
||||
<div class="col-md-3">
|
||||
<select class="form-control" id="famille" name="famille" onChange="$('#frm').submit()">
|
||||
<tal:block tal:repeat="item familles">
|
||||
<option value="${item}" tal:attributes="selected famille==item and 'selected' or None">${item}</option>
|
||||
<select class="form-control" id="groupe" name="groupe" onChange="$('#frm').submit()">
|
||||
<tal:block tal:repeat="item groupes">
|
||||
<option value="${item}" tal:attributes="selected groupe==item and 'selected' or None">${item}</option>
|
||||
</tal:block>
|
||||
</select>
|
||||
</div>
|
||||
@@ -16,7 +16,7 @@
|
||||
<p>
|
||||
<a href="${request.application_url}/parametres" class="btn btn-default" role="button">
|
||||
<span class="glyphicon glyphicon-chevron-left"></span> Retour</a>
|
||||
<a href="${request.application_url}/article_edit/0" class="btn btn-success" role="button">
|
||||
<a href="${request.application_url}/tarif_edit/${groupe}/0" class="btn btn-success" role="button">
|
||||
<span class="glyphicon glyphicon-plus"></span> Nouvel tarif</a>
|
||||
<a href="${request.application_url}/tarifs_import" class="btn btn-primary" role="button">
|
||||
<span class="glyphicon glyphicon-import"></span> Import tarifs</a>
|
||||
@@ -27,11 +27,9 @@
|
||||
<tr>
|
||||
<th>Référence</th>
|
||||
<th>Libellé</th>
|
||||
<th>Libellé 2</th>
|
||||
<th>Unité</th>
|
||||
<th class="text-right">Prix HT 1</th>
|
||||
<th class="text-right">Prix HT 2</th>
|
||||
<th>Réf. client 1</th>
|
||||
<th>Réf. client 2</th>
|
||||
<th>Modif le</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
@@ -41,6 +39,7 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
var dataSet = ${dt_data};
|
||||
var groupe = '${groupe}';
|
||||
|
||||
$(document).ready(function() {
|
||||
$.fn.dataTable.moment('DD-MM-YYYY HH:mm');
|
||||
@@ -48,16 +47,16 @@
|
||||
data: dataSet,
|
||||
pageLength: 100,
|
||||
bLengthChange: false,
|
||||
searching: false,
|
||||
searching: true,
|
||||
language: {
|
||||
url: 'https://cdn.datatables.net/plug-ins/1.10.16/i18n/French.json'
|
||||
},
|
||||
columnDefs: [
|
||||
{ className: "text-right", "targets": [3,4] },
|
||||
{ className: "text-right", "targets": [3] },
|
||||
{ targets: 0,
|
||||
render: function (data, type, full, meta) {
|
||||
// ajouter un link vers le formulaire
|
||||
return '<a href="/article_edit/' + data + '">' + data + '</a>';
|
||||
return '<a href="/tarif_edit/' + groupe + '/' + data + '">' + data + '</a>';
|
||||
},
|
||||
},
|
||||
]
|
||||
|
||||
@@ -302,36 +302,37 @@ def ajax_client(request):
|
||||
|
||||
@view_config(route_name='ajax_texte')
|
||||
def ajax_texte(request):
|
||||
recherche = request.GET['recherche']
|
||||
type = recherche[:2]
|
||||
lib = recherche[2:]
|
||||
groupe = request.GET['groupe']
|
||||
libelle = request.GET['libelle']
|
||||
|
||||
# import pdb;pdb.set_trace()
|
||||
|
||||
# lire les articles commencant par
|
||||
items = get_article(request, type, lib)
|
||||
items = get_article(request, 'LIB', groupe, libelle)
|
||||
|
||||
liste=[]
|
||||
for row in items:
|
||||
if type == 'AR':
|
||||
d = '%s | %s | %s' % (row.ref_cli2, row.LIBART, to_euro(row.PRIXHT2))
|
||||
if groupe == 'TEXTE':
|
||||
d = row.libelle
|
||||
else:
|
||||
d = row.LIBART
|
||||
d = '%s | %s | %s' % (row.ref, row.libelle, to_euro(row.prixht))
|
||||
liste.append(d)
|
||||
|
||||
return Response(json.dumps(liste))
|
||||
|
||||
@view_config(route_name='ajax_article')
|
||||
def ajax_article(request):
|
||||
groupe = request.GET['groupe']
|
||||
ref = request.GET['ref']
|
||||
|
||||
# lire l'article
|
||||
items = get_article(request, 'REF2', ref)
|
||||
items = get_article(request, 'REF', groupe, ref)
|
||||
# puis retourne son libellé et son prixht
|
||||
liste=[]
|
||||
d = {}
|
||||
d['ref'] = items.ref_cli2
|
||||
d['ref'] = items.ref
|
||||
d['libelle'] = items.libelle
|
||||
d['prixht'] = "%.2f" % items.PRIXHT2
|
||||
d['prixht'] = "%.2f" % items.prixht
|
||||
liste.append(d)
|
||||
|
||||
return Response(json.dumps(liste))
|
||||
|
||||
@@ -805,65 +805,58 @@ def societe_edit(request):
|
||||
|
||||
@view_config(route_name='tarifs', renderer='../templates/parametres/tarifs.pt', permission='manage')
|
||||
def tarifs(request):
|
||||
|
||||
familles = ["Article", "Texte"]
|
||||
|
||||
groupe = request.matchdict['groupe']
|
||||
groupes = ["AXA", "MAIF", "TEXTE"]
|
||||
|
||||
# si table a changé
|
||||
if 'famille' in request.params:
|
||||
# si table a changé
|
||||
if 'groupe' in request.params:
|
||||
groupe = request.params["groupe"]
|
||||
|
||||
# lire les articles
|
||||
# lire les articles
|
||||
items = get_tarifs_byGroupe(request, groupe)
|
||||
|
||||
# construire la liste
|
||||
liste=[]
|
||||
for item in items:
|
||||
for item in items:
|
||||
d = (item.ref, item.libelle, item.unite, to_euro(item.prixht), item.modif_le.strftime("%d-%m-%Y"))
|
||||
liste.append(d)
|
||||
|
||||
return {
|
||||
return {
|
||||
'page_title': 'Liste des tarifs',
|
||||
'dt_data': json.dumps(liste),
|
||||
'familles': familles,
|
||||
'dt_data': json.dumps(liste),
|
||||
'groupes': groupes,
|
||||
'groupe': groupe,
|
||||
}
|
||||
|
||||
@view_config(route_name='tarif_edit', renderer='../templates/parametres/tarif_edit.pt', permission='manage')
|
||||
def tarif_edit(request):
|
||||
groupe = request.matchdict['groupe']
|
||||
ref = request.matchdict['ref']
|
||||
ref = request.matchdict['ref']
|
||||
url = request.route_url('tarif_edit', groupe=groupe, ref=ref)
|
||||
logged_in = request.authenticated_userid
|
||||
message = ''
|
||||
|
||||
familles = ["Article", "Texte"]
|
||||
|
||||
if ref == '0':
|
||||
# nouveau
|
||||
item = {}
|
||||
item['REF'] = '0'
|
||||
item['FAM'] = 'A'
|
||||
item['LIBART'] = ''
|
||||
item['PRIXHT1'] = 0
|
||||
item['PRIXHT2'] = 0
|
||||
item['ref_cli1'] = ''
|
||||
item['ref_cli2'] = ''
|
||||
item['LIBCOMPL1'] = ''
|
||||
item['LIBCOMPL2'] = ''
|
||||
item['LIBCOMPL3'] = ''
|
||||
item['LIBCOMPL4'] = ''
|
||||
item = {}
|
||||
item['groupe'] = groupe
|
||||
item['ref'] = '0'
|
||||
item['libelle'] = ''
|
||||
item['prixht'] = 0
|
||||
page_title= 'Nouveau tarif'
|
||||
else:
|
||||
# lire l'article
|
||||
else:
|
||||
# lire le tarif
|
||||
item = get_tarif(request, groupe, ref)
|
||||
if not item:
|
||||
request.session.flash("article non trouvé : %s" % ref, 'warning')
|
||||
return HTTPFound(location=request.route_url('articles'))
|
||||
if not item:
|
||||
request.session.flash("Tarif non trouvé : %s" % ref, 'warning')
|
||||
return HTTPFound(location=request.route_url('tarifs', groupe=groupe))
|
||||
|
||||
page_title= "Tarif : %s" %(item.ref)
|
||||
|
||||
if 'form.submitted' in request.params:
|
||||
if 'form.submitted' in request.params:
|
||||
new_ref = request.params["ref"]
|
||||
if new_ref == '0':
|
||||
if new_ref == '0':
|
||||
message = "Veuillez saisir un code tarif valide."
|
||||
else:
|
||||
new_values = {}
|
||||
@@ -871,21 +864,21 @@ def tarif_edit(request):
|
||||
if param in request.params and request.params[param] != db_value:
|
||||
new_values[param] = request.params[param]
|
||||
|
||||
if new_values:
|
||||
update_article(request, ref, new_values)
|
||||
request.session.flash("Le article a été mis à jour avec succès.", 'success')
|
||||
if new_values:
|
||||
new_values['groupe'] = groupe
|
||||
update_tarif(request, ref, new_values)
|
||||
request.session.flash("Le tarif a été mis à jour avec succès.", 'success')
|
||||
return HTTPFound(location=request.route_url('tarifs', groupe=groupe))
|
||||
|
||||
if 'form.deleted' in request.params:
|
||||
if 'form.deleted' in request.params:
|
||||
delete_tarif(request, ref)
|
||||
request.session.flash("Le article a été supprimé avec succès.", 'success')
|
||||
request.session.flash("Le article a été supprimé avec succès.", 'success')
|
||||
return HTTPFound(location=request.route_url('tarifs', groupe=groupe))
|
||||
|
||||
return {
|
||||
'page_title': page_title,
|
||||
'url': url,
|
||||
'message': message,
|
||||
'item': item,
|
||||
'item': item,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user