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_mailer
pyramid_tm pyramid_tm
# sqlalchemy.url = mysql://root:phuoc@localhost/bddevfac?charset=utf8 sqlalchemy.url = mysql://root:phuoc@localhost/bddevfac?charset=utf8
sqlalchemy.url = mysql://root:cni/@srvbd/bddevfac?charset=utf8 # sqlalchemy.url = mysql://root:cni/@srvbd/bddevfac?charset=utf8
mondumas.admin_email = ctphuoc@bbox.fr mondumas.admin_email = ctphuoc@bbox.fr

View File

@@ -10,7 +10,7 @@ from zope.sqlalchemy import (
mark_changed mark_changed
) )
import datetime from datetime import *
import dateutil.relativedelta import dateutil.relativedelta
import transaction import transaction
@@ -96,30 +96,30 @@ def get_rendez_vous(request, itc):
results = request.dbsession.execute(query, {'datedeb': datedeb, 'itc': itc}).fetchall() results = request.dbsession.execute(query, {'datedeb': datedeb, 'itc': itc}).fetchall()
return results return results
def delete_don(request, mbr_id, don_id): def delete_rdv(request, nodossier, nolig):
query = "DELETE FROM mbr_dons WHERE mbr_id = :mbr_id and don_id = :don_id;" societe = nodossier[0:2]
execute_query(request, query, {'mbr_id': mbr_id, 'don_id': don_id}) 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 # formater les champs
s = '' ddate = datetime.strptime(date_rdv, '%d-%m-%Y %H:%M')
for param in new_values.keys(): datevi = ddate.strftime("%Y-%m-%d")
if param == 'date': heurevi = date_rdv[-5:]
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)
if don_id == '0': if nolig == '0':
new_values['mbr_id'] = mbr_id query = "INSERT INTO %s SET societe='%s', datevi='%s', heurevi='%s', comment='%s', commentvi='%s'" % (table, societe, datevi, heurevi, comment, commentvi)
query = "INSERT INTO mbr_dons SET %s" % s
else: else:
new_values['mbr_id'] = mbr_id 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)
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, {})
execute_query(request, query, new_values)
def update_journal(request, jnl, no_id, new_values): def update_journal(request, jnl, no_id, new_values):
# formater les champs # formater les champs
@@ -151,28 +151,6 @@ def delete_membre(request, mbr_id):
query = "DELETE FROM membres WHERE mbr_id = :mbr_id ;" query = "DELETE FROM membres WHERE mbr_id = :mbr_id ;"
execute_query(request, query, {'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): def update_membre(request, mbr_id, new_values):
# formater les champs # formater les champs
s = '' s = ''

View File

@@ -4,41 +4,31 @@
<div tal:condition="message" tal:content="message" class="alert alert-danger" /> <div tal:condition="message" tal:content="message" class="alert alert-danger" />
<br /> <br />
<div class="row"> <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-framework="bootstrap"
data-fv-icon-valid="glyphicon glyphicon-ok" data-fv-icon-valid="glyphicon glyphicon-ok"
data-fv-icon-invalid="glyphicon glyphicon-remove" data-fv-icon-invalid="glyphicon glyphicon-remove"
data-fv-icon-validating="glyphicon glyphicon-refresh"> data-fv-icon-validating="glyphicon glyphicon-refresh">
<div class="form-group"> <div class="form-group">
<label class="col-xs-2 control-label" for="date_vi">Date</label> <label class="col-xs-2 control-label" for="date_rdv">Date et heure</label>
<div class="col-xs-3 date"> <div class="col-xs-3 input-group date" id="date_rdv_picker">
<input class="form-control" type="text" name="date_vi" <input class="form-control" type="text" name="date_rdv" value="${date_rdv.strftime('%d-%m-%Y %H:%M')}"
value="${rdv.DATEVI.strftime('%d-%m-%Y')}"
data-fv-notempty="true" 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="true"
data-fv-date-format="DD-MM-YYYY" data-fv-date-format="DD-MM-YYYY HH:mm"
data-fv-date-message="La date n'est pas valide" /> 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> </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"> <div class="form-group">
<label class="control-label col-xs-2" for="comment">Commentaire 1</label> <label class="control-label col-xs-2" for="comment">Commentaire 1</label>
<div class="col-xs-5"> <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" placeholder="30 caractères maximum"
data-fv-notempty="true" data-fv-notempty="true"
data-fv-notempty-message="Un commentaire est obligatoire" data-fv-notempty-message="Un commentaire est obligatoire"
@@ -50,7 +40,7 @@
<div class="form-group"> <div class="form-group">
<label class="control-label col-xs-2" for="commentvi">Commentaire 2</label> <label class="control-label col-xs-2" for="commentvi">Commentaire 2</label>
<div class="col-xs-5"> <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" placeholder="30 caractères maximum"
data-fv-stringlength="true" data-fv-stringlength="true"
data-fv-stringlength-max="30" data-fv-stringlength-max="30"
@@ -66,7 +56,7 @@
<button class="btn btn-primary" type="submit" name="form.submitted"> <button class="btn btn-primary" type="submit" name="form.submitted">
<span class="glyphicon glyphicon-ok"></span> Enregistrer</button> <span class="glyphicon glyphicon-ok"></span> Enregistrer</button>
<button class="btn btn-warning" type="submit" name="form.deleted" <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> <span class="glyphicon glyphicon-remove"></span> Supprimer</button>
</div> </div>
</div> </div>
@@ -80,7 +70,17 @@
<script> <script>
$(document).ready(function() { $(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) { $('form input').on('keypress', function(e) {
return e.which !== 13; return e.which !== 13;
}); });

View File

@@ -9,8 +9,9 @@
<meta name="viewport" content="initial-scale=1.0, user-scalable=yes" /> <meta name="viewport" content="initial-scale=1.0, user-scalable=yes" />
<!-- Bootstrap core + Plug-ins CSS --> <!-- 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/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/datatable/dataTables.bootstrap.css')}" rel="stylesheet" media="all" -->
<link href="${request.static_url('mondumas:static/dist/formvalidation/css/formValidation.min.css')}" rel="stylesheet"> <link href="${request.static_url('mondumas:static/dist/formvalidation/css/formValidation.min.css')}" rel="stylesheet">
<!-- Custom CSS --> <!-- 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/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="//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> <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 <!-- Datatable
<script src="${request.static_url('mondumas:static/dist/datatable/jquery.dataTables.js')}"></script> <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> <script src="${request.static_url('mondumas:static/dist/datatable/dataTables.bootstrap.js')}"></script>

View File

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

View File

@@ -70,7 +70,7 @@ def envoyer_mdp(request):
lien = update_membre_mdp_oublie(request, login) lien = update_membre_mdp_oublie(request, login)
body = u""" 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 %s
@@ -194,11 +194,11 @@ def envoyerMail(request, destinataire, objet, corps):
%s %s
Cordialement, Cordialement,
mon.entreprise-dumas.com gestion.entreprise-dumas.com
""" % (corps) """ % (corps)
message = Message(subject=u"[Ent. Duams] %s" % objet, message = Message(subject=u"[Ent. Dumas] %s" % objet,
sender=request.registry.settings['mondumas.admin_email'], sender=request.registry.settings['mondumas.admin_email'],
body=body) body=body)
message.add_recipient(destinataire) message.add_recipient(destinataire)