ajout module Dossier et devis_view.pt + creer_rdv.pt
This commit is contained in:
@@ -21,7 +21,7 @@ from ..security import groupfinder
|
||||
import json
|
||||
|
||||
from ..models.agenda import *
|
||||
from ..models.default import *
|
||||
from ..models.dossier import *
|
||||
|
||||
|
||||
@view_config(route_name='rdv_edit', renderer='../templates/agenda/rdv_edit.pt', permission='view')
|
||||
@@ -39,6 +39,9 @@ def rdv_edit(request):
|
||||
request.session.flash(u"Rendez-vous non trouvé : %s" % nodossier, 'warning')
|
||||
return HTTPFound(location=request.route_url('agenda', date='today'))
|
||||
|
||||
# memorize nodossier et nom dossier
|
||||
request.session['mem_nodossier'] = nodossier
|
||||
request.session['mem_nomdossier'] = '%s %s' % (rdv.C_QUALITE, rdv.C_NOM)
|
||||
page_title= u"Modification du rdv du %s" % (rdv.rdv_debut.strftime('%d-%m-%Y %H:%M'))
|
||||
|
||||
if 'form.submitted' in request.params:
|
||||
@@ -79,7 +82,7 @@ def agenda(request):
|
||||
|
||||
if datePlan == 'today':
|
||||
datePlan = date.today().strftime('%Y-%m-%d')
|
||||
url = request.route_url('planning', date=datePlan)
|
||||
url = request.route_url('agenda', date=datePlan)
|
||||
url_select = request.route_url('dossier_select', date=datePlan)
|
||||
|
||||
# recall code et nom élève
|
||||
@@ -90,6 +93,10 @@ def agenda(request):
|
||||
mem_nodossier = 'Aucun'
|
||||
mem_nomdossier = u'dossier sélectionné'
|
||||
|
||||
# liste des types de rdv
|
||||
types_rdv = get_types_rdv(request)
|
||||
type_rdv = u'RDV DEVIS'
|
||||
|
||||
# liste des users avec agenda
|
||||
agendas = get_users_agenda(request)
|
||||
|
||||
@@ -104,8 +111,17 @@ def agenda(request):
|
||||
if 'agenda' in request.params:
|
||||
agenda = request.params["agenda"]
|
||||
|
||||
rows = get_rendez_vous(request, agenda)
|
||||
# -- CREER un rendez-vous
|
||||
if 'form.submitted' in request.params and mem_nodossier != 'Aucun':
|
||||
dateRDV = request.params['dateRDV']
|
||||
heureRDV = request.params['heureRDV']
|
||||
type_rdv = request.params['type_rdv']
|
||||
|
||||
create_rdv(request, mem_nodossier, dateRDV, heureRDV, type_rdv, agenda, logged_in.upper())
|
||||
request.session.flash(u"Le rendez-vous a été CREE avec succès.", 'success')
|
||||
|
||||
rows = get_rendez_vous(request, agenda)
|
||||
|
||||
# construire la liste des events
|
||||
events = []
|
||||
for row in rows:
|
||||
@@ -121,7 +137,7 @@ def agenda(request):
|
||||
color = "Gold"
|
||||
|
||||
json_event = {
|
||||
'title': row.c_nom,
|
||||
'title': '%s %s' % (row.c_qualite, row.c_nom),
|
||||
'description': row.c_ville.capitalize(),
|
||||
'start': row.rdv_debut.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'end': row.rdv_fin.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
@@ -138,10 +154,14 @@ def agenda(request):
|
||||
'fullcalendar_events': json.dumps(events),
|
||||
'agendas': agendas,
|
||||
'agenda': agenda,
|
||||
'types_rdv': types_rdv,
|
||||
'type_rdv': type_rdv,
|
||||
'message': message,
|
||||
'mem_nodossier': mem_nodossier,
|
||||
'mem_nomdossier': mem_nomdossier,
|
||||
'url': url,
|
||||
'url_select': url_select,
|
||||
'datePlan': datePlan,
|
||||
}
|
||||
|
||||
@view_config(route_name='planning', renderer='../templates/agenda/planning.pt', permission='view')
|
||||
|
||||
@@ -146,7 +146,7 @@ def redefinir_mdp(request):
|
||||
|
||||
|
||||
@view_config(route_name='login', renderer='../templates/default/login.pt', permission='view')
|
||||
@forbidden_view_config(renderer='../templates/login.pt')
|
||||
@forbidden_view_config(renderer='../templates/default/login.pt')
|
||||
def login(request):
|
||||
|
||||
current_route_path = request.current_route_path()
|
||||
@@ -214,148 +214,3 @@ gestion.entreprise-dumas.com
|
||||
mailer.send_immediately(message)
|
||||
|
||||
|
||||
@view_config(route_name='dossier_lookup', renderer='../templates/default/dossier_lookup.pt', permission='view')
|
||||
@view_config(route_name='dossier_select', renderer='../templates/default/dossier_lookup.pt', permission='view')
|
||||
def dossier_lookup(request):
|
||||
|
||||
if 'dossier_select' in request.current_route_path() :
|
||||
# récupérer les paramètres de l'appel de la view
|
||||
datePlan = request.matchdict['date']
|
||||
# sélectionner dossier -> goto planning
|
||||
goto_url = '/dossier_selected/agenda/%s/' % datePlan
|
||||
url = request.route_url('dossier_select', date=datePlan)
|
||||
else:
|
||||
# recherche dossier -> goto fiche dossier
|
||||
goto_url = '/dossier_selected/dossier_view/%s/' % date.today().strftime('%Y-%m-%d')
|
||||
url = request.route_url('dossier_lookup')
|
||||
|
||||
message = u''
|
||||
societes = ['PE','ME','PL','PO','CD']
|
||||
societe = 'PE'
|
||||
liste=[]
|
||||
name = u''
|
||||
cb_tous = "non"
|
||||
|
||||
if 'form.submitted' in request.params:
|
||||
name = request.params['name']
|
||||
societe = request.params['societe']
|
||||
# si afficher tous les fiches ?
|
||||
if 'cb_tous' in request.params:
|
||||
cb_tous = "oui"
|
||||
chantiers = get_chantiers_byName(request, societe, name, True)
|
||||
else:
|
||||
cb_tous = "non"
|
||||
chantiers = get_chantiers_byName(request, societe, name, False)
|
||||
if len(chantiers) == 0:
|
||||
message = u"Chantier non trouvé : %s" % name
|
||||
# construire la liste
|
||||
for item in chantiers:
|
||||
d = ('%s-%s' % (societe, item.numero),item.date.strftime('%d-%m-%Y'), item.nomcli, item.chantier, to_euro(item.montant),
|
||||
item.nosin, item.status)
|
||||
liste.append(d)
|
||||
|
||||
return {
|
||||
'page_title': u"Rechercher un chantier",
|
||||
'url': url,
|
||||
'goto_url': goto_url,
|
||||
'message': message,
|
||||
'dt_data': json.dumps(liste),
|
||||
'societes': societes,
|
||||
'societe': societe,
|
||||
'name': name,
|
||||
'cb_tous': cb_tous,
|
||||
}
|
||||
|
||||
@view_config(route_name='dossier_view', renderer='../templates/default/dossier_view.pt', permission='view')
|
||||
def dossier_view(request):
|
||||
nodossier = request.matchdict['nodossier']
|
||||
url = request.route_url("dossier_view", nodossier=nodossier)
|
||||
|
||||
dossier = get_dossier_by_no(request, nodossier)
|
||||
if dossier is None:
|
||||
request.session.flash(u"Le dossier no %s est introuvable" % (nodossier), 'danger')
|
||||
return HTTPFound(location=request.route_url("chantier_lookup"))
|
||||
# lire tous le suivi du dossier
|
||||
details = get_dossier_rdv_by_no(request, nodossier, '0')
|
||||
# lire toutes les dossiers du chantiers
|
||||
documents = get_documents_byChantier(request, nodossier)
|
||||
return {
|
||||
'page_title': u"Dossier : %s" % (nodossier),
|
||||
'nodossier': nodossier,
|
||||
'dossier': dossier,
|
||||
'details': details,
|
||||
'documents': documents,
|
||||
}
|
||||
|
||||
@view_config(route_name='dossier_selected', permission='view')
|
||||
def dossier_selected(request):
|
||||
|
||||
# récupérer les paramètres de l'appel de la view
|
||||
goto = request.matchdict['goto']
|
||||
datePlan = request.matchdict['date']
|
||||
nodossier = request.matchdict['nodossier']
|
||||
|
||||
# fiche dossier
|
||||
dossier = get_dossier_by_no(request, nodossier)
|
||||
# memorize nodossier et nom dossier
|
||||
request.session['mem_nodossier'] = nodossier
|
||||
request.session['mem_nomdossier'] = dossier.C_NOM
|
||||
if goto == 'dossier_view':
|
||||
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
||||
else:
|
||||
return HTTPFound(location=request.route_url('agenda', date=datePlan))
|
||||
|
||||
@view_config(route_name='suivi_edit', renderer='../templates/default/suivi_edit.pt', permission='view')
|
||||
def suivi_edit(request):
|
||||
|
||||
logged_in = request.authenticated_userid
|
||||
nodossier = request.matchdict['nodossier']
|
||||
nolig = request.matchdict['nolig']
|
||||
url = request.route_url("suivi_edit", nodossier=nodossier, nolig=nolig)
|
||||
|
||||
message = ''
|
||||
if nolig == '0':
|
||||
# nouveau
|
||||
suivi = {}
|
||||
suivi['COMMENT'] = ''
|
||||
suivi['COMMENTVI'] = ''
|
||||
suivi['USERMAJ'] = logged_in.upper()
|
||||
suivi['DATEMAJ'] = datetime.now()
|
||||
page_title= 'Nouveau suivi'
|
||||
else:
|
||||
# lire le suivi
|
||||
suivi = get_dossier_rdv_by_no(request, nodossier, nolig)
|
||||
if not suivi:
|
||||
request.session.flash(u"Suivi non trouvé : %s" % nodossier, 'warning')
|
||||
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
||||
|
||||
page_title= u"Modification du suivi %s" % (nolig)
|
||||
|
||||
if 'form.submitted' in request.params:
|
||||
new_values = {}
|
||||
for param, db_value in suivi.items():
|
||||
if param in request.params and request.params[param] != db_value:
|
||||
new_values[param] = request.params[param]
|
||||
|
||||
if new_values:
|
||||
new_values['USERMAJ'] = logged_in.upper()
|
||||
new_values['DATE'] = date.today()
|
||||
|
||||
update_suivi(request, nodossier, nolig, new_values)
|
||||
request.session.flash(u"Le suivi 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)
|
||||
request.session.flash(u"Le suivi a été supprimé avec succès.", 'success')
|
||||
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
||||
|
||||
return {
|
||||
'page_title': page_title,
|
||||
'url': url,
|
||||
'nodossier': nodossier,
|
||||
'nolig': nolig,
|
||||
'suivi': suivi,
|
||||
'message': message,
|
||||
}
|
||||
|
||||
195
mondumas/views/dossier.py
Normal file
195
mondumas/views/dossier.py
Normal file
@@ -0,0 +1,195 @@
|
||||
# -*- coding: utf8 -*-
|
||||
from pyramid.response import Response
|
||||
from pyramid.renderers import render, get_renderer
|
||||
from pyramid.view import (
|
||||
view_config,
|
||||
forbidden_view_config,
|
||||
)
|
||||
from pyramid.security import (
|
||||
remember,
|
||||
forget,
|
||||
)
|
||||
from pyramid.httpexceptions import (
|
||||
HTTPFound,
|
||||
HTTPNotFound,
|
||||
HTTPForbidden,
|
||||
)
|
||||
from pyramid_mailer import get_mailer
|
||||
from pyramid_mailer.message import Message, Attachment
|
||||
from datetime import *
|
||||
import hashlib
|
||||
|
||||
from sqlalchemy.exc import DBAPIError
|
||||
from ..security import groupfinder
|
||||
|
||||
import json
|
||||
|
||||
from ..models.default import *
|
||||
from ..models.dossier import *
|
||||
|
||||
@view_config(route_name='dossier_lookup', renderer='../templates/dossier/dossier_lookup.pt', permission='view')
|
||||
@view_config(route_name='dossier_select', renderer='../templates/dossier/dossier_lookup.pt', permission='view')
|
||||
def dossier_lookup(request):
|
||||
|
||||
if 'dossier_select' in request.current_route_path() :
|
||||
# récupérer les paramètres de l'appel de la view
|
||||
datePlan = request.matchdict['date']
|
||||
# sélectionner dossier -> goto planning
|
||||
goto_url = '/dossier_selected/agenda/%s/' % datePlan
|
||||
url = request.route_url('dossier_select', date=datePlan)
|
||||
else:
|
||||
# recherche dossier -> goto fiche dossier
|
||||
goto_url = '/dossier_selected/dossier_view/%s/' % date.today().strftime('%Y-%m-%d')
|
||||
url = request.route_url('dossier_lookup')
|
||||
|
||||
message = u''
|
||||
societes = ['PE','ME','PL','PO','CD']
|
||||
societe = 'PE'
|
||||
liste=[]
|
||||
name = u''
|
||||
cb_tous = "non"
|
||||
|
||||
if 'form.submitted' in request.params:
|
||||
name = request.params['name']
|
||||
societe = request.params['societe']
|
||||
# si afficher tous les fiches ?
|
||||
if 'cb_tous' in request.params:
|
||||
cb_tous = "oui"
|
||||
chantiers = get_chantiers_byName(request, societe, name, True)
|
||||
else:
|
||||
cb_tous = "non"
|
||||
chantiers = get_chantiers_byName(request, societe, name, False)
|
||||
if len(chantiers) == 0:
|
||||
message = u"Chantier non trouvé : %s" % name
|
||||
# construire la liste
|
||||
for item in chantiers:
|
||||
d = ('%s-%s' % (societe, item.numero),item.date.strftime('%d-%m-%Y'), item.nomcli, item.chantier, to_euro(item.montant),
|
||||
item.nosin, item.status)
|
||||
liste.append(d)
|
||||
|
||||
return {
|
||||
'page_title': u"Rechercher un chantier",
|
||||
'url': url,
|
||||
'goto_url': goto_url,
|
||||
'message': message,
|
||||
'dt_data': json.dumps(liste),
|
||||
'societes': societes,
|
||||
'societe': societe,
|
||||
'name': name,
|
||||
'cb_tous': cb_tous,
|
||||
}
|
||||
|
||||
@view_config(route_name='dossier_view', renderer='../templates/dossier/dossier_view.pt', permission='view')
|
||||
def dossier_view(request):
|
||||
nodossier = request.matchdict['nodossier']
|
||||
url = request.route_url("dossier_view", nodossier=nodossier)
|
||||
|
||||
dossier = get_dossier_by_no(request, nodossier)
|
||||
if dossier is None:
|
||||
request.session.flash(u"Le dossier no %s est introuvable" % (nodossier), 'danger')
|
||||
return HTTPFound(location=request.route_url("chantier_lookup"))
|
||||
# lire tous le suivi du dossier
|
||||
details = get_dossier_rdv_by_no(request, nodossier, '0')
|
||||
# lire toutes les dossiers du chantiers
|
||||
documents = get_documents_byChantier(request, nodossier)
|
||||
return {
|
||||
'page_title': u"Dossier : %s" % (nodossier),
|
||||
'nodossier': nodossier,
|
||||
'dossier': dossier,
|
||||
'details': details,
|
||||
'documents': documents,
|
||||
}
|
||||
|
||||
@view_config(route_name='devis_view', renderer='../templates/dossier/devis_view.pt', permission='view')
|
||||
def devis_view(request):
|
||||
nodossier = request.matchdict['nodossier']
|
||||
url = request.route_url("devis_view", nodossier=nodossier)
|
||||
|
||||
dossier = get_dossier_by_no(request, nodossier)
|
||||
if dossier is None:
|
||||
request.session.flash(u"Le dossier no %s est introuvable" % (nodossier), 'danger')
|
||||
return HTTPFound(location=request.route_url("chantier_lookup"))
|
||||
# lire tous le suivi du dossier
|
||||
details = get_dossier_rdv_by_no(request, nodossier, '0')
|
||||
# lire toutes les dossiers du chantiers
|
||||
documents = get_documents_byChantier(request, nodossier)
|
||||
return {
|
||||
'page_title': u"Dossier : %s" % (nodossier),
|
||||
'nodossier': nodossier,
|
||||
'dossier': dossier,
|
||||
'details': details,
|
||||
'documents': documents,
|
||||
}
|
||||
|
||||
@view_config(route_name='dossier_selected', permission='view')
|
||||
def dossier_selected(request):
|
||||
|
||||
# récupérer les paramètres de l'appel de la view
|
||||
goto = request.matchdict['goto']
|
||||
datePlan = request.matchdict['date']
|
||||
nodossier = request.matchdict['nodossier']
|
||||
|
||||
# fiche dossier
|
||||
dossier = get_dossier_by_no(request, nodossier)
|
||||
# memorize nodossier et nom dossier
|
||||
request.session['mem_nodossier'] = nodossier
|
||||
request.session['mem_nomdossier'] = '%s %s' % (dossier.C_QUALITE, dossier.C_NOM)
|
||||
if goto == 'dossier_view':
|
||||
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
||||
else:
|
||||
return HTTPFound(location=request.route_url('agenda', date=datePlan))
|
||||
|
||||
@view_config(route_name='suivi_edit', renderer='../templates/dossier/suivi_edit.pt', permission='view')
|
||||
def suivi_edit(request):
|
||||
|
||||
logged_in = request.authenticated_userid
|
||||
nodossier = request.matchdict['nodossier']
|
||||
nolig = request.matchdict['nolig']
|
||||
url = request.route_url("suivi_edit", nodossier=nodossier, nolig=nolig)
|
||||
|
||||
message = ''
|
||||
if nolig == '0':
|
||||
# nouveau
|
||||
suivi = {}
|
||||
suivi['COMMENT'] = ''
|
||||
suivi['COMMENTVI'] = ''
|
||||
suivi['USERMAJ'] = logged_in.upper()
|
||||
suivi['DATEMAJ'] = datetime.now()
|
||||
page_title= 'Nouveau suivi'
|
||||
else:
|
||||
# lire le suivi
|
||||
suivi = get_dossier_rdv_by_no(request, nodossier, nolig)
|
||||
if not suivi:
|
||||
request.session.flash(u"Suivi non trouvé : %s" % nodossier, 'warning')
|
||||
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
||||
|
||||
page_title= u"Modification du suivi %s" % (nolig)
|
||||
|
||||
if 'form.submitted' in request.params:
|
||||
new_values = {}
|
||||
for param, db_value in suivi.items():
|
||||
if param in request.params and request.params[param] != db_value:
|
||||
new_values[param] = request.params[param]
|
||||
|
||||
if new_values:
|
||||
new_values['USERMAJ'] = logged_in.upper()
|
||||
new_values['DATE'] = date.today()
|
||||
|
||||
update_suivi(request, nodossier, nolig, new_values)
|
||||
request.session.flash(u"Le suivi 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)
|
||||
request.session.flash(u"Le suivi a été supprimé avec succès.", 'success')
|
||||
return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier))
|
||||
|
||||
return {
|
||||
'page_title': page_title,
|
||||
'url': url,
|
||||
'nodossier': nodossier,
|
||||
'nolig': nolig,
|
||||
'suivi': suivi,
|
||||
'message': message,
|
||||
}
|
||||
Reference in New Issue
Block a user