diff --git a/caotek_mesavoirs.egg-info/PKG-INFO b/caotek_mesavoirs.egg-info/PKG-INFO
index 41fc5b0..28eec5a 100644
--- a/caotek_mesavoirs.egg-info/PKG-INFO
+++ b/caotek_mesavoirs.egg-info/PKG-INFO
@@ -9,7 +9,7 @@ License: UNKNOWN
Description: # README #
- Application web permettant aux personnels de l'entreprise Dumas d'accéder aux dossiers des clients
+ Cette application permet le suivi des avoirs financiers : actions, ETF, obligations (assurances-vie), livrets, etc...
diff --git a/caotek_mesavoirs.egg-info/SOURCES.txt b/caotek_mesavoirs.egg-info/SOURCES.txt
index 3a2d0c4..df1d87b 100644
--- a/caotek_mesavoirs.egg-info/SOURCES.txt
+++ b/caotek_mesavoirs.egg-info/SOURCES.txt
@@ -17,10 +17,9 @@ caotek_mesavoirs.egg-info/not-zip-safe
caotek_mesavoirs.egg-info/requires.txt
caotek_mesavoirs.egg-info/top_level.txt
caotek_mesavoirs/models/__init__.py
-caotek_mesavoirs/models/agenda.py
-caotek_mesavoirs/models/default.py
+caotek_mesavoirs/models/members.py
caotek_mesavoirs/scripts/__init__.py
caotek_mesavoirs/views/__init__.py
-caotek_mesavoirs/views/agenda.py
caotek_mesavoirs/views/default.py
+caotek_mesavoirs/views/members.py
caotek_mesavoirs/views/notfound.py
\ No newline at end of file
diff --git a/caotek_mesavoirs/__init__.py b/caotek_mesavoirs/__init__.py
index 3afa2af..f8ffa16 100644
--- a/caotek_mesavoirs/__init__.py
+++ b/caotek_mesavoirs/__init__.py
@@ -12,7 +12,7 @@ def main(global_config, **settings):
""" This function returns a Pyramid WSGI application.
"""
# declarations
- session_factory = UnencryptedCookieSessionFactoryConfig('Ty6sIUe9')
+ session_factory = UnencryptedCookieSessionFactoryConfig('Ty6sIUf1')
authn_policy = AuthTktAuthenticationPolicy('Ty6sIUe8', callback=groupfinder, hashalg='sha512')
authz_policy = ACLAuthorizationPolicy()
mailer_factory_from_settings(settings)
diff --git a/caotek_mesavoirs/models/agenda.py b/caotek_mesavoirs/models/agenda.py
deleted file mode 100644
index d6be209..0000000
--- a/caotek_mesavoirs/models/agenda.py
+++ /dev/null
@@ -1,121 +0,0 @@
-# -*- 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
-)
-
-from datetime import *
-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):
- """ lire la liste des personnes ayant un agenda"""
- query = "CALL spGET_AGENDAS('T')"
- results = request.dbsession.execute(query).fetchall()
- return results
-
-def get_table(code):
- if code == 'DD':
- table = 'dem_devis'
- elif code == 'OS':
- table = 'ordres'
- else:
- table = 'rdvous'
- return table
-
-def get_table_details(code):
- if code == 'DD':
- table = 'dem_lig'
- elif code == 'OS':
- table = 'ordres_lig'
- else:
- table = 'rdvous_lig'
- return table
-
-
-def get_dossier_by_no(request,nodossier):
- societe = nodossier[0:2]
- table = get_table(nodossier[3:5])
- no_id = nodossier[6:]
- query = """
-SELECT d.*, c.*, a.NOM as nom_cabinet, e.NOM as nom_expert FROM %s d
-INNER JOIN clients c ON d.societe = c.societe and d.cd_cli = c.cd_cli
-INNER JOIN p_cabinet a ON d.societe = a.societe and d.cabinet = a.code
-INNER JOIN p_experts e ON d.societe = e.societe and d.cabinet = e.code_cab and d.expert = e.code_exp
-where d.societe = '%s' and d.no_id=%s;""" % (table, societe, no_id);
- results = request.dbsession.execute(query).first()
- return results
-
-def get_dossier_rdv_by_no(request,nodossier, nolig):
- societe = nodossier[0:2]
- table = get_table_details(nodossier[3:5])
- no_id = nodossier[6:]
- if nolig == '0':
- query = "SELECT * FROM %s where societe = '%s' and no_id=%s;" % (table, societe, no_id)
- results = request.dbsession.execute(query).fetchall()
- else:
- query = "SELECT * FROM %s where societe = '%s' and no_id=%s and nolig=%s;" % (table, societe, no_id, nolig)
- results = request.dbsession.execute(query).first()
- return results
-
-def get_rendez_vous(request, itc):
- d = datetime.now()
- d = d - dateutil.relativedelta.relativedelta(months=3)
- # 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_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:]
-
- # formater les champs
- ddate = datetime.strptime(date_rdv, '%d-%m-%Y %H:%M')
- datevi = ddate.strftime("%Y-%m-%d")
- heurevi = date_rdv[-5:]
- auj = date.today().strftime("%Y-%m-%d")
-
- if nolig == '0':
- query = "INSERT INTO %s SET societe='%s',no_id=%s,date='%s',datevi='%s',heurevi='%s',comment='%s',commentvi='%s'" % (table, societe, no_id,auj,datevi, heurevi, comment, commentvi)
- else:
- 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, {})
-
diff --git a/caotek_mesavoirs/models/default.py b/caotek_mesavoirs/models/members.py
similarity index 65%
rename from caotek_mesavoirs/models/default.py
rename to caotek_mesavoirs/models/members.py
index 37cdafb..98cf23e 100644
--- a/caotek_mesavoirs/models/default.py
+++ b/caotek_mesavoirs/models/members.py
@@ -20,18 +20,18 @@ def execute_query(request, query, params):
transaction.commit()
def get_member_by_mdp_oublie(request, lien):
- query = "SELECT * FROM p_users WHERE mdp_oublie=:lien;"
+ query = "SELECT * FROM members WHERE mdp_oublie=:lien;"
results = request.dbsession.execute(query, {'lien':lien}).first()
return results
-def get_member_by_id(request, mbr_id):
- if mbr_id == '0':
- query = "SELECT * FROM P_USERS ORDER BY cd_uti"
+def get_member_by_email(request, email):
+ if email == '0':
+ query = "SELECT * FROM members ORDER BY nom"
results = request.dbsession.execute(query).fetchall()
else:
# lire le membres par son identifianr
- query = """SELECT * FROM p_users WHERE CD_UTI=:mbr_id;"""
- results = request.dbsession.execute(query, {'mbr_id': mbr_id}).first()
+ query = """SELECT * FROM members WHERE email=:email;"""
+ results = request.dbsession.execute(query, {'email': email}).first()
return results
def update_membre_mdp_oublie(request, login):
@@ -41,21 +41,21 @@ 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 p_users SET mdp_oublie=:r_uuid, mdp_oublie_date=now() WHERE CD_UTI=:login;"
+ query = "UPDATE members SET mdp_oublie=:r_uuid, mdp_oublie_date=now() WHERE email=: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 p_users SET mdp = SHA1(:password), mdp_oublie=NULL, mdp_oublie_date=NULL WHERE cd_uti=:login;"
+ query = "UPDATE members SET mdp = SHA1(:password), mdp_oublie=NULL, mdp_oublie_date=NULL WHERE email=:login;"
execute_query(request, query, {'login': login, 'password': password})
def update_last_connection(request, login):
"""Update last connection for login """
- query = "UPDATE p_users SET dern_cnx_le=NOW() WHERE cd_uti=:login;"
+ query = "UPDATE members SET dern_cnx_le=NOW() WHERE email=:login;"
execute_query(request, query, {'login': login})
-def update_membre(request, cd_uti, new_values):
+def update_membre(request, email, new_values):
# formater les champs
s = ''
for param in new_values.keys():
@@ -70,14 +70,14 @@ def update_membre(request, cd_uti, new_values):
else:
s = "%s=:%s" % (param, param)
- if cd_uti == '0':
- query = "INSERT INTO p_users SET %s" % s
+ if email == '':
+ query = "INSERT INTO members SET %s" % s
else:
- new_values['cd_uti'] = cd_uti
- query = "UPDATE p_users SET %s WHERE cd_uti = :cd_uti;" % s
+ new_values['email'] = email
+ query = "UPDATE members SET %s WHERE email = :email;" % s
execute_query(request, query, new_values)
-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 delete_membre(request, email):
+ query = "DELETE FROM members WHERE email = :email ;"
+ execute_query(request, query, {'email': email})
diff --git a/caotek_mesavoirs/panels.py b/caotek_mesavoirs/panels.py
index 7dd0bab..09a48d0 100644
--- a/caotek_mesavoirs/panels.py
+++ b/caotek_mesavoirs/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_id
+from .models.members import get_member_by_email
@panel_config(name='dropdown_menu_panel', renderer='templates/panels/dropdown_menu_panel.pt')
def dropdown_menu_panel(context, request):
@@ -11,22 +11,13 @@ def dropdown_menu_panel(context, request):
if logged_in is None:
return { 'logged_in': '' }
else:
- member = get_member_by_id(request, logged_in)
+ member = get_member_by_email(request, logged_in)
fullname = member.nom
- email = member.email
- if member.access == 9:
- logged_in_fonction = 'Administrateur'
- elif member.access == 8:
- logged_in_fonction = 'Comptabilité'
- elif member.access == 5:
- logged_in_fonction = 'Gestion'
- else:
- logged_in_fonction = 'Production'
+ logged_in_fonction = member.acces
return {
'logged_in': logged_in,
'logged_in_name': fullname,
- 'logged_in_email': email,
'logged_in_fonction': logged_in_fonction,
}
diff --git a/caotek_mesavoirs/routes.py b/caotek_mesavoirs/routes.py
index ac49f9c..0a0abc3 100644
--- a/caotek_mesavoirs/routes.py
+++ b/caotek_mesavoirs/routes.py
@@ -1,15 +1,11 @@
def includeme(config):
config.add_static_view('static', 'static', cache_max_age=3600)
config.add_route('home', '/')
- config.add_route('agenda', '/agenda')
+ # members
config.add_route('changer_mdp', '/changer_mdp')
- config.add_route('dossier_view', '/dossier_view/{nodossier}')
- config.add_route('rdv_edit','/rdv_edit/{nodossier}/{nolig}')
config.add_route('envoyer_mdp', '/envoyer_mdp')
- config.add_route('user_edit', '/user_edit/{cd_uti}')
- config.add_route('users_list', '/users_list')
config.add_route('login', '/login')
config.add_route('logout', '/logout')
- config.add_route('planning', '/planning')
config.add_route('redefinir_mdp', '/redefinir_mdp/{lien}')
-
+ config.add_route('user_edit', '/user_edit/{email}')
+ config.add_route('users_list', '/users_list')
diff --git a/caotek_mesavoirs/security.py b/caotek_mesavoirs/security.py
index c27e419..1bc9057 100644
--- a/caotek_mesavoirs/security.py
+++ b/caotek_mesavoirs/security.py
@@ -1,11 +1,11 @@
-from .models.default import get_member_by_id
+from .models.members import get_member_by_email
def groupfinder(userid, request):
- member = get_member_by_id(request, userid)
+ member = get_member_by_email(request, userid)
if member:
# Roles administrateur ?
- if member.access == 9:
+ if member.acces == 'ADMIN':
return ['group:administrators']
else:
return [] # it means that userid is logged in (it returns None if userid isn't logged in)
diff --git a/caotek_mesavoirs/templates/agenda/agenda.pt b/caotek_mesavoirs/templates/agenda/agenda.pt
deleted file mode 100644
index 96e7d76..0000000
--- a/caotek_mesavoirs/templates/agenda/agenda.pt
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
diff --git a/caotek_mesavoirs/templates/agenda/dossier_view.pt b/caotek_mesavoirs/templates/agenda/dossier_view.pt
deleted file mode 100644
index c6eb274..0000000
--- a/caotek_mesavoirs/templates/agenda/dossier_view.pt
+++ /dev/null
@@ -1,111 +0,0 @@
-
-
-
-
-
-
-
-
-
- CHANTIER |
-
- ${dossier.C_QUALITE} ${dossier.C_NOM}
- ${dossier.C_ADR}
- ${dossier.C_ADR2}
- ${dossier.C_CP} ${dossier.C_VILLE}
- |
-
-
-
- Etage - Code
- Tél. domicile - prof.
- Tél. mobile - fax
- |
-
- ${dossier.C_ETAGE} - ${dossier.C_CODE}
- ${dossier.C_TEL1} - ${dossier.C_TEL2}
- ${dossier.C_TELP} - ${dossier.C_FAX}
- |
-
-
-
- Cabinet
- Expert
- Référence expert
- |
-
- ${dossier.nom_cabinet}
- ${dossier.nom_expert}
- ${dossier.REF_EXPERT}
- |
-
-
-
- Police
- Sinistre
- Votre référence
- |
-
- ${dossier.NOPOL}
- ${dossier.NOSIN}
- ${dossier.VREF}
- |
-
-
-
-
-
-
-
-
- CLIENT |
-
- ${dossier.QUALITE} ${dossier.NOM}
- ${dossier.ADRESSE}
- ${dossier.ADRESSE2}
- ${dossier.CP} ${dossier.VILLE}
- |
-
-
-
- Responsable
- Tél. 1 - 2
- Tél. mobile - fax
- |
-
- ${dossier.NOMRESP}
- ${dossier.TEL1} - ${dossier.TEL2}
- ${dossier.TELP} - ${dossier.FAX}
- |
-
-
-
-
-
-
SUIVI
-
- Nouvelle ligne
-
-
-
-
-
diff --git a/caotek_mesavoirs/templates/agenda/planning.pt b/caotek_mesavoirs/templates/agenda/planning.pt
deleted file mode 100644
index 17d72aa..0000000
--- a/caotek_mesavoirs/templates/agenda/planning.pt
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
-
diff --git a/caotek_mesavoirs/templates/agenda/rdv_edit.pt b/caotek_mesavoirs/templates/agenda/rdv_edit.pt
deleted file mode 100644
index 1634c77..0000000
--- a/caotek_mesavoirs/templates/agenda/rdv_edit.pt
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
diff --git a/caotek_mesavoirs/templates/layouts/pdf.pt b/caotek_mesavoirs/templates/layouts/pdf.pt
deleted file mode 100644
index 9b7ee39..0000000
--- a/caotek_mesavoirs/templates/layouts/pdf.pt
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
- ${page_title}
-
-
-
-
-
-
-
-
-
-
-
diff --git a/caotek_mesavoirs/templates/changer_mdp.pt b/caotek_mesavoirs/templates/members/changer_mdp.pt
similarity index 100%
rename from caotek_mesavoirs/templates/changer_mdp.pt
rename to caotek_mesavoirs/templates/members/changer_mdp.pt
diff --git a/caotek_mesavoirs/templates/envoyer_mdp.pt b/caotek_mesavoirs/templates/members/envoyer_mdp.pt
similarity index 100%
rename from caotek_mesavoirs/templates/envoyer_mdp.pt
rename to caotek_mesavoirs/templates/members/envoyer_mdp.pt
diff --git a/caotek_mesavoirs/templates/login.pt b/caotek_mesavoirs/templates/members/login.pt
similarity index 91%
rename from caotek_mesavoirs/templates/login.pt
rename to caotek_mesavoirs/templates/members/login.pt
index 006e247..b6f8519 100644
--- a/caotek_mesavoirs/templates/login.pt
+++ b/caotek_mesavoirs/templates/members/login.pt
@@ -16,9 +16,9 @@
+ placeholder="Email"
+ data-fv-emailaddress="true"
+ data-fv-emailaddress-message="L'adresse email n'est pas valide" />
diff --git a/caotek_mesavoirs/templates/redefinir_mdp.pt b/caotek_mesavoirs/templates/members/redefinir_mdp.pt
similarity index 100%
rename from caotek_mesavoirs/templates/redefinir_mdp.pt
rename to caotek_mesavoirs/templates/members/redefinir_mdp.pt
diff --git a/caotek_mesavoirs/templates/user_edit.pt b/caotek_mesavoirs/templates/members/user_edit.pt
similarity index 87%
rename from caotek_mesavoirs/templates/user_edit.pt
rename to caotek_mesavoirs/templates/members/user_edit.pt
index 2bebe89..e443da3 100644
--- a/caotek_mesavoirs/templates/user_edit.pt
+++ b/caotek_mesavoirs/templates/members/user_edit.pt
@@ -11,15 +11,12 @@
data-fv-icon-validating="glyphicon glyphicon-refresh">
diff --git a/caotek_mesavoirs/templates/users_list.pt b/caotek_mesavoirs/templates/members/users_list.pt
similarity index 73%
rename from caotek_mesavoirs/templates/users_list.pt
rename to caotek_mesavoirs/templates/members/users_list.pt
index a3efcd2..b44b643 100644
--- a/caotek_mesavoirs/templates/users_list.pt
+++ b/caotek_mesavoirs/templates/members/users_list.pt
@@ -11,13 +11,11 @@
- | Login |
Nom, Prénom |
Email |
- Agenda |
Rôle |
Dern cnx |
- Etat |
+ Expire le |
@@ -35,22 +33,12 @@
pageLength: 50,
bLengthChange: false,
columnDefs: [
- { "targets": 0,
+ { "targets": 1,
"render": function (data, type, full, meta) {
// ajouter un link vers le formulaire
return '
' + data + '';
},
},
- { "targets": 3,
- "render": function (data, type, full, meta) {
- if (data != 0) {
- return '
';
- }
- else {
- return '';
- }
- },
- }
]
});
diff --git a/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt b/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt
index 1556813..5bb66ff 100644
--- a/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt
+++ b/caotek_mesavoirs/templates/panels/dropdown_menu_panel.pt
@@ -3,8 +3,7 @@