diff --git a/development.ini b/development.ini
index bd5964c..10c05cd 100644
--- a/development.ini
+++ b/development.ini
@@ -18,7 +18,7 @@ pyramid.includes =
pyramid_mailer
pyramid_tm
-sqlalchemy.url = mysql://root:phuoc@localhost/bd_tinhdo?charset=utf8
+sqlalchemy.url = mysql://root:phuoc@localhost/bddevfac?charset=utf8
mondumas.admin_email = ctphuoc@bbox.fr
diff --git a/mondumas/models/agenda.py b/mondumas/models/agenda.py
new file mode 100644
index 0000000..489aa04
--- /dev/null
+++ b/mondumas/models/agenda.py
@@ -0,0 +1,151 @@
+# -*- coding: utf8 -*-
+from sqlalchemy import text
+from sqlalchemy.ext.declarative import declarative_base
+from sqlalchemy.orm import (
+ scoped_session,
+ sessionmaker,
+)
+from zope.sqlalchemy import (
+ ZopeTransactionExtension,
+ mark_changed
+)
+
+import datetime
+import dateutil.relativedelta
+import transaction
+
+def execute_query(request, query, params):
+ """Execute query and mark session as changed"""
+ request.dbsession.execute(query, params)
+ mark_changed(request.dbsession)
+ transaction.commit()
+
+def get_agendas(request,code):
+ if code =='':
+ query = "SELECT * FROM p_agenda where actif = 1 order by code;"
+ results = request.dbsession.execute(query).fetchall()
+ else:
+ query = "SELECT * FROM p_agenda where code = :code;"
+ results = request.dbsession.execute(query, {'code': code}).first()
+ return results
+
+def get_rendez_vous(request, itc):
+ d = datetime.datetime.today()
+ d = d - dateutil.relativedelta.relativedelta(months=2)
+ # début du mois M-2
+ datedeb = d.strftime('%Y-%m-01')
+
+ # lire les rdv de l'ITC
+ query = """
+ (SELECT CONCAT(l.societe,"-OS-",l.no_id) as nodossier, l.rdv_debut, l.rdv_fin, e.c_nom FROM ordres_lig l
+ INNER JOIN ordres e ON l.societe=e.societe AND l.no_id=e.no_id
+ WHERE l.datevi >= :datedeb AND l.liste=:itc ORDER BY l.datevi, l.heurevi)
+ UNION
+ (SELECT CONCAT(l.societe,"-DD-",l.no_id) as nodossier, l.rdv_debut, l.rdv_fin, e.c_nom FROM dem_lig l
+ INNER JOIN dem_devis e ON l.societe=e.societe AND l.no_id=e.no_id
+ WHERE l.datevi >= :datedeb AND l.liste=:itc ORDER BY l.datevi, l.heurevi)
+ UNION
+ (SELECT CONCAT(l.societe,"-RD-",l.no_id) as nodossier, l.rdv_debut, l.rdv_fin, e.c_nom FROM rdvous_lig l
+ INNER JOIN rdvous e ON l.societe=e.societe AND l.no_id=e.no_id
+ WHERE l.datevi >= :datedeb AND l.liste=:itc ORDER BY l.datevi, l.heurevi);
+"""
+ 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 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)
+
+ if don_id == '0':
+ new_values['mbr_id'] = mbr_id
+ query = "INSERT INTO mbr_dons SET %s" % s
+ 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)
+
+def update_journal(request, jnl, no_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)
+
+ if no_id == '0':
+ if jnl == 'C':
+ query = "INSERT INTO jnl_caisse SET %s" % s
+ else:
+ query = "INSERT INTO jnl_caisse SET %s" % s
+ else:
+ new_values['no_id'] = no_id
+ if jnl == 'C':
+ query = "UPDATE jnl_caisse SET %s WHERE no_id = :no_id;" % s
+ else:
+ query = "UPDATE jnl_banque SET %s WHERE no_id = :no_id;" % s
+
+ execute_query(request, query, new_values)
+
+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 = ''
+ for param in new_values.keys():
+ if param == 'nom':
+ new_values['nom'] = new_values['nom'].upper()
+ if param == 'ville':
+ new_values['ville'] = new_values['ville'].upper()
+ if s:
+ s += ",%s=:%s" % (param, param)
+ else:
+ s = "%s=:%s" % (param, param)
+
+ if mbr_id == '0':
+ query = "INSERT INTO membres SET %s" % s
+ else:
+ new_values['mbr_id'] = mbr_id
+ query = "UPDATE membres SET %s WHERE mbr_id = :mbr_id;" % s
+ execute_query(request, query, new_values)
+
diff --git a/mondumas/models/default.py b/mondumas/models/default.py
index 26458bc..281ca08 100644
--- a/mondumas/models/default.py
+++ b/mondumas/models/default.py
@@ -19,135 +19,17 @@ def execute_query(request, query, params):
mark_changed(request.dbsession)
transaction.commit()
-def get_comptes(request, type):
- if type == 'recette':
- query = "SELECT * FROM p_comptes where no_compte like '7%' order by no_compte;"
- else:
- query = "SELECT * FROM p_comptes where no_compte like '6%' order by no_compte;"
- results = request.dbsession.execute(query).fetchall()
- return results
-
def get_member_by_mdp_oublie(request, lien):
- query = "SELECT * FROM membres WHERE mdp_oublie=:lien;"
+ query = "SELECT * FROM p_users WHERE mdp_oublie=:lien;"
results = request.dbsession.execute(query, {'lien':lien}).first()
return results
-def get_member_by_email(request, email):
- # lire le membres par son email
- query = """SELECT * FROM membres WHERE email=:email;"""
- results = request.dbsession.execute(query, {'email': email}).first()
- return results
-
-
def get_member_by_id(request, mbr_id):
# lire le membres par son identifianr
- query = """SELECT * FROM membres WHERE mbr_id=:mbr_id;"""
+ query = """SELECT * FROM p_users WHERE CD_UTI=:mbr_id;"""
results = request.dbsession.execute(query, {'mbr_id': mbr_id}).first()
return results
-def get_membres(request):
- # lire les membres
- query = """SELECT * FROM membres order by nom, prenom;"""
- results = request.dbsession.execute(query).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 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)
-
- if don_id == '0':
- new_values['mbr_id'] = mbr_id
- query = "INSERT INTO mbr_dons SET %s" % s
- 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)
-
-def update_journal(request, jnl, no_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)
-
- if no_id == '0':
- if jnl == 'C':
- query = "INSERT INTO jnl_caisse SET %s" % s
- else:
- query = "INSERT INTO jnl_caisse SET %s" % s
- else:
- new_values['no_id'] = no_id
- if jnl == 'C':
- query = "UPDATE jnl_caisse SET %s WHERE no_id = :no_id;" % s
- else:
- query = "UPDATE jnl_banque SET %s WHERE no_id = :no_id;" % s
-
- execute_query(request, query, new_values)
-
-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 = ''
- for param in new_values.keys():
- if param == 'nom':
- new_values['nom'] = new_values['nom'].upper()
- if param == 'ville':
- new_values['ville'] = new_values['ville'].upper()
- if s:
- s += ",%s=:%s" % (param, param)
- else:
- s = "%s=:%s" % (param, param)
-
- if mbr_id == '0':
- query = "INSERT INTO membres SET %s" % s
- else:
- new_values['mbr_id'] = mbr_id
- query = "UPDATE membres SET %s WHERE mbr_id = :mbr_id;" % s
- execute_query(request, query, new_values)
-
def update_membre_mdp_oublie(request, login):
import base64
import uuid
@@ -155,12 +37,12 @@ def update_membre_mdp_oublie(request, login):
# get a UUID - URL safe, Base64
r_uuid = base64.urlsafe_b64encode(uuid.uuid4().bytes)
r_uuid = r_uuid.replace('=', '')
- query = "UPDATE membres SET mdp_oublie=:r_uuid, mdp_oublie_date=now() WHERE email=:login;"
+ query = "UPDATE p_users SET mdp_oublie=:r_uuid, mdp_oublie_date=now() WHERE CD_UTI=:login;"
execute_query(request, query, {'r_uuid':r_uuid, 'login':login})
return r_uuid
def update_membre_mdp(request, login, password):
"""Update password for member login"""
- query = "UPDATE membres SET mdp = SHA1(:password), mdp_oublie=NULL, mdp_oublie_date=NULL WHERE email=:login;"
+ query = "UPDATE p_users SET mdp = SHA1(:password), mdp_oublie=NULL, mdp_oublie_date=NULL WHERE CD_UTI=:login;"
execute_query(request, query, {'login': login, 'password': password})
diff --git a/mondumas/panels.py b/mondumas/panels.py
index 9681c78..dfc90fb 100644
--- a/mondumas/panels.py
+++ b/mondumas/panels.py
@@ -3,7 +3,7 @@ from pyramid_layout.panel import panel_config
from pyramid.security import authenticated_userid
from .security import groupfinder
-from .models.default import get_member_by_email
+from .models.default import get_member_by_id
@panel_config(name='dropdown_menu_panel', renderer='templates/panels/dropdown_menu_panel.pt')
def dropdown_menu_panel(context, request):
@@ -11,14 +11,14 @@ def dropdown_menu_panel(context, request):
if logged_in is None:
return { 'logged_in': '' }
else:
- member = get_member_by_email(request, logged_in)
- fullname = '%s %s' % (member.nom, member.prenom)
- no_id = member.mbr_id
+ member = get_member_by_id(request, logged_in)
+ fullname = member.NOM
+ email = member.email
return {
'logged_in': logged_in,
'logged_in_name': fullname,
- 'logged_in_id': no_id,
+ 'logged_in_email': email,
}
diff --git a/mondumas/routes.py b/mondumas/routes.py
index f13b48b..f8e76c6 100644
--- a/mondumas/routes.py
+++ b/mondumas/routes.py
@@ -1,18 +1,11 @@
def includeme(config):
config.add_static_view('static', 'static', cache_max_age=3600)
config.add_route('home', '/')
- config.add_route('jnl_banque', '/banque_jnl')
- config.add_route('jnl_caisse', '/caisse_jnl')
- config.add_route('jnl_credit', '/jnl_credit/{jnl}/{no_id}')
- config.add_route('jnl_debit', '/jnl_debit/{jnl}/{no_id}')
+ config.add_route('agenda', '/agenda')
+ config.add_route('changer_mdp', '/changer_mdp')
+ config.add_route('dossier_view', '/dossier_view/{mbr_id}')
config.add_route('envoyer_mdp', '/envoyer_mdp')
- config.add_route('gift_edit', '/gift_edit/{mbr_id}/{don_id}')
- config.add_route('gift_list', '/gift_list')
config.add_route('login', '/login')
config.add_route('logout', '/logout')
- config.add_route('member_edit', '/member_edit/{mbr_id}')
- config.add_route('member_view', '/member_view/{mbr_id}')
- config.add_route('members', '/members')
- config.add_route('members_adr', '/members_adr')
config.add_route('redefinir_mdp', '/redefinir_mdp/{lien}')
diff --git a/mondumas/security.py b/mondumas/security.py
index b0ac426..c7d8c01 100644
--- a/mondumas/security.py
+++ b/mondumas/security.py
@@ -1,12 +1,12 @@
-from .models.default import get_member_by_email
+from .models.default import get_member_by_id
def groupfinder(userid, request):
- member = get_member_by_email(request, userid)
-
- if member:
- mbr_id = member.mbr_id
- # Chi hay Phuoc ?
- if mbr_id == 8 or mbr_id == 9:
- return ['group:administrators']
- else:
- return [] # it means that userid is logged in (it returns None if userid isn't logged in)
+ member = get_member_by_id(request, userid)
+
+ if member:
+ mbr_id = member.CD_UTI
+ # Chi hay Phuoc ?
+ if mbr_id == 8 or mbr_id == 9:
+ return ['group:administrators']
+ else:
+ return [] # it means that userid is logged in (it returns None if userid isn't logged in)
diff --git a/mondumas/static/dist/fullcalendar/fr.js b/mondumas/static/dist/fullcalendar/fr.js
new file mode 100644
index 0000000..0c7af85
--- /dev/null
+++ b/mondumas/static/dist/fullcalendar/fr.js
@@ -0,0 +1 @@
+!function(e){"function"==typeof define&&define.amd?define(["jquery","moment"],e):"object"==typeof exports?module.exports=e(require("jquery"),require("moment")):e(jQuery,moment)}(function(e,r){!function(){var e=r.defineLocale("fr",{months:"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),monthsShort:"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),monthsParseExact:!0,weekdays:"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),weekdaysShort:"dim._lun._mar._mer._jeu._ven._sam.".split("_"),weekdaysMin:"Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),weekdaysParseExact:!0,longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd D MMMM YYYY HH:mm"},calendar:{sameDay:"[Aujourd'hui à] LT",nextDay:"[Demain à] LT",nextWeek:"dddd [à] LT",lastDay:"[Hier à] LT",lastWeek:"dddd [dernier à] LT",sameElse:"L"},relativeTime:{future:"dans %s",past:"il y a %s",s:"quelques secondes",m:"une minute",mm:"%d minutes",h:"une heure",hh:"%d heures",d:"un jour",dd:"%d jours",M:"un mois",MM:"%d mois",y:"un an",yy:"%d ans"},ordinalParse:/\d{1,2}(er|)/,ordinal:function(e){return e+(1===e?"er":"")},week:{dow:1,doy:4}});return e}(),e.fullCalendar.datepickerLocale("fr","fr",{closeText:"Fermer",prevText:"Précédent",nextText:"Suivant",currentText:"Aujourd'hui",monthNames:["janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],monthNamesShort:["janv.","févr.","mars","avr.","mai","juin","juil.","août","sept.","oct.","nov.","déc."],dayNames:["dimanche","lundi","mardi","mercredi","jeudi","vendredi","samedi"],dayNamesShort:["dim.","lun.","mar.","mer.","jeu.","ven.","sam."],dayNamesMin:["D","L","M","M","J","V","S"],weekHeader:"Sem.",dateFormat:"dd/mm/yy",firstDay:1,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""}),e.fullCalendar.locale("fr",{buttonText:{year:"Année",month:"Mois",week:"Semaine",day:"Jour",list:"Mon planning"},allDayHtml:"Toute la
+ RDV Peinture RDV Menuiserie
+ RDV Plomberiee RDV Polynet
+
journée",eventLimitText:"en plus",noEventsMessage:"Aucun événement à afficher"})});
\ No newline at end of file
diff --git a/mondumas/templates/agenda/agenda.pt b/mondumas/templates/agenda/agenda.pt
new file mode 100644
index 0000000..665a6ec
--- /dev/null
+++ b/mondumas/templates/agenda/agenda.pt
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
- Vì lý do an toàn, mật khẩu của bạn đã được mã hóa và không thể lấy lại. Hãy điền email vào bên phía dưới để tiến hành đặt lại mật khẩu mới. -
+ Pour des raisons de sécurité, nous gardons votre mot de passe chiffré, et nous ne pouvons pas vous l'envoyer. + Si vous souhaitez ré-initialiser votre mot de passe, remplissez le formulaire ci-dessous et nous vous enverrons un email pour démarrer la phase de ré-initialisation de votre mot de passe.- Quên mật khẩu ? + Mot de passe oublié ?
diff --git a/mondumas/templates/member_edit.pt b/mondumas/templates/member_edit.pt deleted file mode 100644 index 7f5eb18..0000000 --- a/mondumas/templates/member_edit.pt +++ /dev/null @@ -1,163 +0,0 @@ -| Nom Prénom | -Civ. | -Ville | -Statut | -Pháp danh | -Etat | -No ID | -
|---|
Tổng cộng : ${total}
- -