Ajout du répertoire extra pour deploiement en prod (et recette)

This commit is contained in:
Etienne Loupias 2018-05-24 12:21:45 +02:00
parent 16f14b10c9
commit ec8ca90833
6 changed files with 357 additions and 8 deletions

View File

@ -0,0 +1,17 @@
"""
Vérifie qu'il n'existe pas déja un formulaire soumis par l'utilisateur connecté ayant le meme dpap (numéro de dossier papier)
"""
# id du champ contenant le DPAP
field_id = [x for x in form_objects.formdef.fields if x.varname == 'dpap'][0].id
noDuplicate = ''
try:
form_user_name_identifier_0
except NameError:
# Si user anonyme on le laisse passer
noDuplicate = True
else:
# Si user connecté on check un eventuel doublon : False si doublon, True si pas doublon
noDuplicate = bool(len([x for x in form_objects.formdef.data_class().select() if x.get_user() and x.data.get(field_id) == form_var_dpap and x.get_user().name_identifiers[0] == form_user_name_identifier_0 and not x.is_draft()]) == 0)
result = noDuplicate

View File

@ -0,0 +1,332 @@
/* Test suivi PH */
.formdef-suivi-dossier-ph .steps-1,
.formdef-suivi-dossier-ph div#rub_service div#receipt-intro,
.formdef-suivi-dossier-ph div#rub_service .wait .evolution-metadata,
.formdef-suivi-dossier-ph div#rub_service #evolutions.open::before,
.formdef-suivi-dossier-ph ul#evolutions > li.detail ~ li.detail,
.formdef-suivi-dossier-ph ul#evolutions > li.wait ~ li.wait,
.formdef-suivi-dossier-ph ul#evolutions li span.item,
.formdef-suivi-dossier-ph ul#evolutions li.None,
.formdef-suivi-dossier-ph ul#evolutions > .detail .status,
.formdef-suivi-dossier-ph ul#evolutions > .detail .time,
.formdef-suivi-dossier-ph ul#evolutions > .detail .user,
.formdef-suivi-dossier-ph ul#evolutions:after,
.formdef-suivi-dossier-ph input.infoInput:checked ~ li div.commentaire,
.formdef-suivi-dossier-ph input.infoInput:checked ~ li div.arrowUp,
.formdef-suivi-dossier-ph input[name="etape"] {
display: none;
}
.formdef-suivi-dossier-ph h2.foldable {
display: none !important;
}
/* form */
.formdef-suivi-dossier-ph div#rub_service form {
padding: 0;
}
.formdef-suivi-dossier-ph div#rub_service h3 {
padding: 20px 0 20px 25px;
font-size: 1.3em;
}
.formdef-suivi-dossier-ph div.widget {
padding: 0 25px;
}
.formdef-suivi-dossier-ph div.submit {
height: 0;
}
.formdef-suivi-dossier-ph #var_dpap {
margin-bottom: 0;
padding: 5px 62px 30px 20px;
}
.formdef-suivi-dossier-ph .wrapperSearch {
background-color: #E3E3E3;
margin: 0;
width: 100%;
}
.formdef-suivi-dossier-ph h3.wrapperSearch {
width: calc(100% - 25px);
}
.formdef-suivi-dossier-ph div#gauche + div#rub_service div.buttons .submit-button button {
background: #DA0D02;
color: white;
margin: 0;
padding: 0;
height: 27px;
border-radius: 0 5px 5px 0;
position: relative;
top: -73px;
text-indent: -55px;
line-height: 0;
}
.formdef-suivi-dossier-ph div#gauche + div#rub_service div.buttons .submit-button button:after {
font-family: FontAwesome;
content: "\f002";
padding: 0 1em;
text-indent: 0;
line-height: initial;
}
/* historique */
@media screen and (min-width: 1000px) {
.formdef-suivi-dossier-ph div#rub_service div.contact#receipt-intro {
display: block;
position: absolute;
top: -46px;
left: 108%;
width: 40%;
background-color: #fff;
padding: 10px;
border-radius: 5px;
}
.formdef-suivi-dossier-ph div#rub_service div.colform#receipt-intro {
position: relative;
top: 1px;
left: 104%;
width: 35%;
}
}
.formdef-suivi-dossier-ph div#rub_service div.contform {
height: 0px;
}
.formdef-suivi-dossier-ph .detail {
font-size: 1.1em;
}
.formdef-suivi-dossier-ph .emphasized {
color: darkred;
font-size: 1.15em;
font-weight: bold;
}
.formdef-suivi-dossier-ph div#rub_service h3#procedure {
position: relative;
left: -40px;
margin-bottom: 2.5ex;
padding: 0;
font-size: 1.35em;
}
.formdef-suivi-dossier-ph div#rub_service div.contact#receipt-intro h3 {
margin: 0;
padding: 10px 0;
}
.formdef-suivi-dossier-ph div#rub_service .wait {
margin-bottom: 0;
}
.formdef-suivi-dossier-ph ul#evolutions {
overflow: visible;
}
.formdef-suivi-dossier-ph ul#evolutions.open {
margin-top:0 !important;
}
.formdef-suivi-dossier-ph ul#evolutions ul.suivi {
padding: 0 0 20px 0;
}
.formdef-suivi-dossier-ph ul#evolutions ul.suivi li {
list-style-type: none;
margin: 0;
}
.formdef-suivi-dossier-ph ul#evolutions ul.taches {
padding: 0px;
margin: 0px;
}
.formdef-suivi-dossier-ph ul#evolutions ul.taches > li {
margin: 0 0 15px 0;
}
.formdef-suivi-dossier-ph ul#evolutions ul.demande li {
margin: 0;
}
.formdef-suivi-dossier-ph ul#evolutions span.step {
box-sizing: border-box;
position: absolute;
left: -14px;
width: 15px;
height: 15px;
border-radius: 20px;
border: 1px solid #363636;
}
.formdef-suivi-dossier-ph ul#evolutions span.enCours {
color: #363636;
background-color: #fff;
margin-top: 3px;
color: #fff;
}
.formdef-suivi-dossier-ph ul#evolutions span.fini {
background-color: #363636;
color: #363636;
margin-top: 6px;
}
.formdef-suivi-dossier-ph ul#evolutions .etape {
font-size: 1.2em;
line-height: 1.8em;
}
.formdef-suivi-dossier-ph ul#evolutions .currentStep {
font-size: 1.25em;
color: #98e478;
}
.formdef-suivi-dossier-ph ul#evolutions li.listEtape:last-child::before {
position: absolute;
top: 25px;
left: -8px;
width: 3px;
height: 100%;
content: " ";
background: #fff;
}
/* comments */
.formdef-suivi-dossier-ph ul#evolutions div.commentaire {
background-color: #E3E3E3;
border-radius: 5px;
padding: 15px;
}
.formdef-suivi-dossier-ph ul#evolutions div.arrowUp {
width: 0;
height: 0;
position: relative;
left: 15px;
border-left: 8px solid transparent;
border-right: 8px solid transparent;
border-bottom: 8px solid #E3E3E3;
padding-top: 5px;
}
/* opinions */
.formdef-suivi-dossier-ph ul#evolutions div.Accord, .formdef-suivi-dossier-ph ul#evolutions div.Rejet, .formdef-suivi-dossier-ph ul#evolutions div.Refus, .formdef-suivi-dossier-ph ul#evolutions div.suspension {
width: 20px;
height: 30px;
float: left;
line-height: 0;
color: #fff;
font-weight: bold;
}
.formdef-suivi-dossier-ph ul#evolutions div.suspension {
height: 15px;
}
.formdef-suivi-dossier-ph ul#evolutions div.Rejet:before,
.formdef-suivi-dossier-ph ul#evolutions div.Refus:before,
.formdef-suivi-dossier-ph ul#evolutions div.suspension:before,
.formdef-suivi-dossier-ph ul#evolutions div.Accord:before {
content: "✖";
margin: 0;
border: none;
width: 10px;
height: 7px;
border-radius: 100%;
background-color: #961111;
color: #fff;
text-align: center;
font-size: 0.81em;
overflow: hidden;
float: left;
padding: 9px 4px 0 3px;
}
.formdef-suivi-dossier-ph ul#evolutions div.Accord:before {
content: "✔";
background-color: #86bd3c;
width: 11px;
height: 8px;
}
.formdef-suivi-dossier-ph ul#evolutions div.suspension:before,
.formdef-suivi-dossier-ph ul#evolutions div.mais:before {
content: "...";
padding: 7px 4px 0 3px;
height: 10px;
background-color: #ff782a;
}
.formdef-suivi-dossier-ph ul#evolutions span.noOpinion {
width: 20px;
height: 50px;
float: left;
}
.formdef-suivi-dossier-ph ul#evolutions #maj {
font-size: 0.8em;
}
.formdef-suivi-dossier-ph ul#evolutions .missing::before {
content: "✖";
color: darkred;
}
.formdef-suivi-dossier-ph ul#evolutions .check::before {
content: "✔";
color: #86bd3c;
}
.formdef-suivi-dossier-ph ul#evolutions ul.suivi::before {
position: absolute;
/*top: 90px;*/
left: 0;
width: 1px;
height: calc(100% - 120px);
content: " ";
background: #363636;
}
/* info button to display old comments */
.formdef-suivi-dossier-ph .infoBt {
visibility: hidden;
cursor: pointer;
font-weight: bold;
font-size: 1.3em;
color: #2f2f7b;
float: right;
}
.formdef-suivi-dossier-ph input.infoInput {
visibility: hidden;
}
.formdef-suivi-dossier-ph .comment ~ .infoBt {
visibility: visible;
}
/* accordeon */
.formdef-suivi-dossier-ph .suivi > li {
position: relative;
padding: 0 0 0 35px;
border-bottom: 1px solid white;
}
.formdef-suivi-dossier-ph .suivi > li label#phase:after {
content: "►";
float: right;
}
.formdef-suivi-dossier-ph .suivi > li input:checked + label#phase:after {
content: "▼";
}
.formdef-suivi-dossier-ph .suivi > li input + label#phase {
cursor: pointer;
border-radius: 3px;
font-weight: bold;
display: block;
padding: 7.5px 15px;
background-color: #2A2E4B;
color: #fff;
}
.formdef-suivi-dossier-ph .suivi > li input ~ div {
display: none;
height: 0px;
max-height: 0;
padding: 0;
opacity: 0;
-webkit-transition: all 1s ease;
transition: all 1s ease;
}
.formdef-suivi-dossier-ph .suivi > li input:checked + label#phase {
background-color: #2A2E4B;
color: #fff;
}
.formdef-suivi-dossier-ph .suivi > li input:checked ~ div {
display: block;
height: 100%;
max-height: 1000px;
opacity: 1;
-webkit-transition: all 1s ease;
transition: all 1s ease;
}
/* Bouton Grandlyon Connect */
.formdef-suivi-dossier-ph div.connect-buttons a {
background: #DA0D02;
color: white;
border-radius: 40px;
display: block;
max-width: 275px;
padding: 0.5em;
font-weight: bold;
text-decoration: none;
}
.formdef-suivi-dossier-ph div.connect-buttons::before {
position: absolute;
top: 5px;
left: -18px;
width: 3px;
height: 100%;
content: " ";
background: #fff;
}

Binary file not shown.

View File

@ -94,14 +94,14 @@ class grandlyonIodas(BaseResource):
# recupere la liste des droits en cours de toutes les procedures d'un individu
droits = []
if 'procedures' in data :
for procedure in data['procedures']['procedures']['procedure'] :
for etape in procedure['etapes']['etape'] :
if 'taches' in etape :
for tache in etape['taches']['tache'] :
if tache['idtypetache'] == 2 and datetime.strptime(tache['datearret'], "%d/%m/%Y") > datetime.now():
for nb in [3,6] :
deltafindroit = nb if (datetime.strptime(tache['datearret'], "%d/%m/%Y") - dateutil.relativedelta.relativedelta(months=nb)) == datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) else 0
droits.append({"libl":tache['produit']['libl'], "dateproposition":tache['dateproposition'], "datearret":tache['datearret'], "dateeffet":tache['dateeffet'], "deltafindroit":deltafindroit})
for procedure in data['procedures']['procedures']['procedure'] :
for etape in procedure['etapes']['etape'] :
if 'taches' in etape :
for tache in etape['taches']['tache'] :
if tache['idtypetache'] == 2 and datetime.strptime(tache['datearret'], "%d/%m/%Y") > datetime.now():
for nb in [3,6] :
deltafindroit = nb if (datetime.strptime(tache['datearret'], "%d/%m/%Y") - dateutil.relativedelta.relativedelta(months=nb)) == datetime.now().replace(hour=0, minute=0, second=0, microsecond=0) else 0
droits.append({"libl":tache['produit']['libl'], "dateproposition":tache['dateproposition'], "datearret":tache['datearret'], "dateeffet":tache['dateeffet'], "deltafindroit":deltafindroit})
return {'hash': hashlib.sha224(json.dumps(data)).hexdigest(),
'libl': data['procedures']['procedures']['procedure'][nbProc]['libl'] if 'procedures' in data else '',

Binary file not shown.