add rdv_edit.pt

This commit is contained in:
2017-03-30 17:08:44 +02:00
parent 02714d3ae5
commit d191fc9502
6 changed files with 76 additions and 93 deletions

View File

@@ -18,8 +18,8 @@ pyramid.includes =
pyramid_mailer
pyramid_tm
# sqlalchemy.url = mysql://root:phuoc@localhost/bddevfac?charset=utf8
sqlalchemy.url = mysql://root:cni/@srvbd/bddevfac?charset=utf8
sqlalchemy.url = mysql://root:phuoc@localhost/bddevfac?charset=utf8
# sqlalchemy.url = mysql://root:cni/@srvbd/bddevfac?charset=utf8
mondumas.admin_email = ctphuoc@bbox.fr

View File

@@ -10,7 +10,7 @@ from zope.sqlalchemy import (
mark_changed
)
import datetime
from datetime import *
import dateutil.relativedelta
import transaction
@@ -96,30 +96,30 @@ def get_rendez_vous(request, itc):
results = request.dbsession.execute(query, {'datedeb': datedeb, 'itc': itc}).fetchall()
return results
def delete_don(request, mbr_id, don_id):
query = "DELETE FROM mbr_dons WHERE mbr_id = :mbr_id and don_id = :don_id;"
execute_query(request, query, {'mbr_id': mbr_id, 'don_id': don_id})
def delete_rdv(request, nodossier, nolig):
societe = nodossier[0:2]
table = get_table_details(nodossier[3:5])
no_id = nodossier[6:]
query = "DELETE FROM %s where societe = '%s' and no_id=%s and nolig=%s;" % (table, societe, no_id, nolig)
execute_query(request, query, {})
def update_rdv(request, nodossier, nolig, comment, commentvi, date_rdv):
societe = nodossier[0:2]
table = get_table_details(nodossier[3:5])
no_id = nodossier[6:]
def update_don(request, mbr_id, don_id, new_values):
# formater les champs
s = ''
for param in new_values.keys():
if param == 'date':
ddate = datetime.strptime(new_values['date'], '%d/%m/%Y')
new_values['date'] = ddate.strftime("%Y/%m/%d")
if s:
s += ",%s=:%s" % (param, param)
else:
s = "%s=:%s" % (param, param)
ddate = datetime.strptime(date_rdv, '%d-%m-%Y %H:%M')
datevi = ddate.strftime("%Y-%m-%d")
heurevi = date_rdv[-5:]
if don_id == '0':
new_values['mbr_id'] = mbr_id
query = "INSERT INTO mbr_dons SET %s" % s
if nolig == '0':
query = "INSERT INTO %s SET societe='%s', datevi='%s', heurevi='%s', comment='%s', commentvi='%s'" % (table, societe, datevi, heurevi, comment, commentvi)
else:
new_values['mbr_id'] = mbr_id
new_values['don_id'] = don_id
query = "UPDATE mbr_dons SET %s WHERE mbr_id = :mbr_id and don_id = :don_id;" % s
execute_query(request, query, new_values)
query = "UPDATE %s SET datevi='%s', heurevi='%s', comment='%s', commentvi='%s' where societe = '%s' and no_id=%s and nolig=%s;" % (table, datevi, heurevi, comment, commentvi, societe, no_id, nolig)
execute_query(request, query, {})
def update_journal(request, jnl, no_id, new_values):
# formater les champs
@@ -151,28 +151,6 @@ def delete_membre(request, mbr_id):
query = "DELETE FROM membres WHERE mbr_id = :mbr_id ;"
execute_query(request, query, {'mbr_id': mbr_id})
def insert_gift_to_account(request, libelle_esp, libelle_chq):
import pdb;pdb.set_trace()
# genere une écriture dans le journal de caisse pour les espèces
query = "SELECT sum(montant) as total FROM mbr_dons where valide_le IS NULL and mode='ESPECE';"
result = request.dbsession.execute(query).first()
if result.total > 0:
query = """INSERT INTO jnl_caisse (date, compte, libelle, recette, valide_le)
VALUES (CURRENT_DATE, '7540', :libelle_esp, :total_esp, CURRENT_DATE);"""
execute_query(request, query, {'libelle_esp': libelle_esp, 'total_esp': result.total})
# genere une écriture dans le journal de banque pour les chèques
query = "SELECT sum(montant) as total FROM mbr_dons where valide_le IS NULL and mode='CHEQUE';"
result = request.dbsession.execute(query).first()
if result.total > 0:
query = """INSERT INTO jnl_banque (date, compte, libelle, recette, valide_le)
VALUES (CURRENT_DATE, '7540', :libelle_chq, :total_chq, CURRENT_DATE);"""
execute_query(request, query, {'libelle_chq': libelle_chq, 'total_chq': result.total})
# valider les dons
query = "UPDATE mbr_dons SET valide_le = CURRENT_DATE WHERE valide_le IS NULL;"
execute_query(request, query, {})
def update_membre(request, mbr_id, new_values):
# formater les champs
s = ''

View File

@@ -4,41 +4,31 @@
<div tal:condition="message" tal:content="message" class="alert alert-danger" />
<br />
<div class="row">
<form id="empl_edit-form" class="form-horizontal" action="${url}" method="post" tal:condition="rdv"
<form id="rdv_edit-form" class="form-horizontal" action="${url}" method="post"
data-fv-framework="bootstrap"
data-fv-icon-valid="glyphicon glyphicon-ok"
data-fv-icon-invalid="glyphicon glyphicon-remove"
data-fv-icon-validating="glyphicon glyphicon-refresh">
<div class="form-group">
<label class="col-xs-2 control-label" for="date_vi">Date</label>
<div class="col-xs-3 date">
<input class="form-control" type="text" name="date_vi"
value="${rdv.DATEVI.strftime('%d-%m-%Y')}"
<label class="col-xs-2 control-label" for="date_rdv">Date et heure</label>
<div class="col-xs-3 input-group date" id="date_rdv_picker">
<input class="form-control" type="text" name="date_rdv" value="${date_rdv.strftime('%d-%m-%Y %H:%M')}"
data-fv-notempty="true"
data-fv-notempty-message="La date est obligatoire"
data-fv-notempty-message="La date et l'heure sont obligatoires"
data-fv-date="true"
data-fv-date-format="DD-MM-YYYY"
data-fv-date-message="La date n'est pas valide" />
data-fv-date-format="DD-MM-YYYY HH:mm"
data-fv-date-message="La date et l'heure ne sont pas valides" />
<span class="input-group-addon add-on">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-2" for="heurevi">Heure</label>
<div class="col-xs-3">
<input class="form-control" type="text" name="heurevi"
value="${rdv.HEUREVI.strftime('%H:%M')}"
data-fv-notempty="true"
data-fv-notempty-message="L'heure est obligatoire"
data-fv-date="true"
data-fv-date-format="h:m"
data-fv-date-message="L'heure n'est pas valide" />
</div>
</div>
<div class="form-group">
<label class="control-label col-xs-2" for="comment">Commentaire 1</label>
<div class="col-xs-5">
<input class="form-control" type="text" id="comment" name="comment" value="${rdv.COMMENT}"
<input class="form-control" type="text" id="comment" name="comment" value="${comment}"
placeholder="30 caractères maximum"
data-fv-notempty="true"
data-fv-notempty-message="Un commentaire est obligatoire"
@@ -50,7 +40,7 @@
<div class="form-group">
<label class="control-label col-xs-2" for="commentvi">Commentaire 2</label>
<div class="col-xs-5">
<input class="form-control" type="text" id="commentvi" name="commentvi" value="${rdv.COMMENTVI}"
<input class="form-control" type="text" id="commentvi" name="commentvi" value="${commentvi}"
placeholder="30 caractères maximum"
data-fv-stringlength="true"
data-fv-stringlength-max="30"
@@ -66,7 +56,7 @@
<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="python: rdv.NOLIG <> '0'">
tal:condition="python: nolig <> '0'">
<span class="glyphicon glyphicon-remove"></span> Supprimer</button>
</div>
</div>
@@ -80,7 +70,17 @@
<script>
$(document).ready(function() {
$('#empl_edit-form').formValidation();
$('#date_rdv_picker').datetimepicker({
format: 'DD-MM-YYYY HH:mm',
showClear: true,
allowInputToggle: true,
stepping: 15,
});
$('#rdv_edit-form').formValidation();
$('#date_rdv_picker').on('changeDate', function(e) {
// Revalidate the date field
$('#rdv_edit-form').formValidation('revalidateField', 'date_rdv');
});
$('form input').on('keypress', function(e) {
return e.which !== 13;
});

View File

@@ -9,8 +9,9 @@
<meta name="viewport" content="initial-scale=1.0, user-scalable=yes" />
<!-- Bootstrap core + Plug-ins CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.css" rel="stylesheet">
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css" rel="stylesheet">
<!-- link href="${request.static_url('mondumas:static/dist/datatable/dataTables.bootstrap.css')}" rel="stylesheet" media="all" -->
<link href="${request.static_url('mondumas:static/dist/formvalidation/css/formValidation.min.css')}" rel="stylesheet">
<!-- Custom CSS -->
@@ -24,6 +25,8 @@
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.1.0/fullcalendar.min.js"></script>
<script src="${request.static_url('mondumas:static/dist/fullcalendar/fr.js')}"></script>
<!-- Bootstrap Datepicker plugin -->
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>
<!-- Datatable
<script src="${request.static_url('mondumas:static/dist/datatable/jquery.dataTables.js')}"></script>
<script src="${request.static_url('mondumas:static/dist/datatable/dataTables.bootstrap.js')}"></script>

View File

@@ -38,12 +38,9 @@ def rdv_edit(request):
message = ''
if nolig == '0':
# nouveau
rdv = {}
rdv['NOLIG'] = 0
rdv['COMMENT'] = ''
rdv['COMMENTVI'] = ''
rdv['DATEVI'] = date.today()
rdv['HEUREVI'] = '09:00'
comment = ''
commentvi = ''
date_rdv = datetime.now()
page_title= 'Nouveau rendez-vous'
else:
# lire le rendez-vous
@@ -51,18 +48,20 @@ def rdv_edit(request):
if not rdv:
request.session.flash(u"Rendez-vous non trouvé : %s" % nodossier, 'warning')
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
page_title= u"Modification du rendez-vous du %s" % (rdv.rdv_debut.strftime('%Y-%m-%d %H:%M'))
comment = rdv.COMMENT
commentvi = rdv.COMMENTVI
date_rdv = rdv.rdv_debut
page_title= u"Modification du rdv du %s" % (rdv.rdv_debut.strftime('%d-%m-%Y %H:%M'))
if 'form.submitted' in request.params:
new_values = {}
for param, db_value in rdv.items():
if param in request.params and request.params[param] != db_value:
new_values[param] = request.params[param]
comment = request.params['comment']
commentvi = request.params['commentvi']
date_rdv = request.params['date_rdv']
if new_values:
update_rdv(request, nodossier, nolig, new_values)
request.session.flash(u"Le rendez-vous a été mis à jour avec succès.", 'success')
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
update_rdv(request, nodossier, nolig, comment, commentvi, date_rdv)
request.session.flash(u"Le rendez-vous a été mis à jour avec succès.", 'success')
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
if 'form.deleted' in request.params:
delete_rdv(request, nodossier, nolig)
@@ -73,7 +72,10 @@ def rdv_edit(request):
'page_title': page_title,
'url': url,
'nodossier': nodossier,
'rdv': rdv,
'nolig': nolig,
'comment': comment,
'commentvi': commentvi,
'date_rdv': date_rdv,
'message': message,
}
@@ -126,13 +128,13 @@ def agenda(request):
# déterminer la couleur de l'event selon la societe
societe = row.nodossier[0:2]
if societe == "PE":
color = "#ff4444" # rouge danger
color = "#d9534f" # rouge danger
elif societe == "PL":
color = "#00C851" # vert success
color = "#5cb85c" # vert success
elif societe == "PL":
color = "#33b5e5" # bleu info
color = "#5bc0de" # bleu info
else:
color = "#ffbb33" # orange warning
color = "#f0ad4e" # orange warning
json_event = {
'title': event_title,

View File

@@ -70,7 +70,7 @@ def envoyer_mdp(request):
lien = update_membre_mdp_oublie(request, login)
body = u"""
Le lien suivant vous dirigera vers une page où vous pourrez ré-initialiser votre mot de passe d'accès à « mon.entreprise-dumas.com » :
Le lien suivant vous dirigera vers une page où vous pourrez ré-initialiser votre mot de passe d'accès à « gestion.entreprise-dumas.com » :
%s
@@ -194,11 +194,11 @@ def envoyerMail(request, destinataire, objet, corps):
%s
Cordialement,
mon.entreprise-dumas.com
gestion.entreprise-dumas.com
""" % (corps)
message = Message(subject=u"[Ent. Duams] %s" % objet,
message = Message(subject=u"[Ent. Dumas] %s" % objet,
sender=request.registry.settings['mondumas.admin_email'],
body=body)
message.add_recipient(destinataire)