diff --git a/back/development.ini.template b/back/development.ini.template index 5eddcc65..3fca472b 100644 --- a/back/development.ini.template +++ b/back/development.ini.template @@ -78,11 +78,12 @@ affaire_type_cadastration_id = 2 affaire_type_ppe_id = 3 affaire_type_revision_abornement_id = 4 affaire_type_mpd_id = 8 -affaire_remaniement_parcellaire_id = 9 +affaire_type_remaniement_parcellaire_id = 9 affaire_type_retablissement_pfp3_id = 12 affaire_type_autre_id = 7 affaire_type_part_copropriete_id = 10 affaire_type_modification_ppe_id = 20 +affaire_type_retour_etat_juridique_id = 21 affaire_type_modification_ordre_separation = 100 # ID Numéros-types biens-fonds diff --git a/back/infolica/scripts/utils.py b/back/infolica/scripts/utils.py index 2c14adbe..5e33e280 100644 --- a/back/infolica/scripts/utils.py +++ b/back/infolica/scripts/utils.py @@ -414,8 +414,8 @@ def affaireUpdatePermission(cls, request, affaire_type): # Affaire autre elif affaire_type == request.registry.settings['affaire_type_autre_id']: permission = request.registry.settings['affaire_autre_edition'] - # Affaire affaire_remaniement_parcellaire_id - elif affaire_type == request.registry.settings['affaire_remaniement_parcellaire_id']: + # Affaire affaire_type_remaniement_parcellaire_id + elif affaire_type == request.registry.settings['affaire_type_remaniement_parcellaire_id']: permission = request.registry.settings['affaire_remaniement_parcellaire_edition'] return permission diff --git a/back/infolica/views/affaire.py b/back/infolica/views/affaire.py index a930907b..0847bbf9 100644 --- a/back/infolica/views/affaire.py +++ b/back/infolica/views/affaire.py @@ -135,7 +135,7 @@ def affaire_cockpit_view(request): etape_datetime = datetime.strftime(affaire.etape_datetime, '%Y-%m-%d %H:%M:%S') etape_days_elapsed = (datetime.now().date() - affaire.etape_datetime.date()).days etape_days_elapsed_text = "aujourd'hui" if etape_days_elapsed == 0 else ("hier" if etape_days_elapsed == 1 else str(etape_days_elapsed) + " jours") - title = affaire.technicien_initiales + " — Affaire " + str(affaire.id) + " — " + affaire.cadastre + " — " + affaire.nom + " — Dans cette étape depuis " + etape_days_elapsed_text + title = affaire.technicien_initiales + " — Affaire " + str(affaire.id) + " — " + affaire.cadastre + " — " + (affaire.nom if affaire.nom is not None else "~ Aucune description ~") + " — Dans cette étape depuis " + etape_days_elapsed_text nb_preavis = request.dbsession.query(func.count(Preavis.affaire_id)).filter(Preavis.affaire_id == affaire.id).scalar() nb_closed_preavis = request.dbsession.query(func.count(Preavis.affaire_id)).filter(Preavis.affaire_id == affaire.id, Preavis.date_reponse != None).scalar() diff --git a/back/production.ini.template b/back/production.ini.template index be175ddf..919287ca 100644 --- a/back/production.ini.template +++ b/back/production.ini.template @@ -77,11 +77,12 @@ affaire_type_cadastration_id = 2 affaire_type_ppe_id = 3 affaire_type_revision_abornement_id = 4 affaire_type_mpd_id = 8 -affaire_remaniement_parcellaire_id = 9 +affaire_type_remaniement_parcellaire_id = 9 affaire_type_retablissement_pfp3_id = 12 affaire_type_autre_id = 7 affaire_type_part_copropriete_id = 10 affaire_type_modification_ppe_id = 20 +affaire_type_retour_etat_juridique_id = 21 affaire_type_modification_ordre_separation = 100 # ID Numéros-types biens-fonds diff --git a/front/src/components/Affaires/InfosGenerales/InfosGenerales.vue b/front/src/components/Affaires/InfosGenerales/InfosGenerales.vue index 81cd8f00..838bf215 100644 --- a/front/src/components/Affaires/InfosGenerales/InfosGenerales.vue +++ b/front/src/components/Affaires/InfosGenerales/InfosGenerales.vue @@ -456,6 +456,14 @@ export default { }); }, + /** + * open create contact + */ + openCreateContact(client_id) { + let routeData = this.$router.resolve({name: "ClientsEdit", params: {id: client_id}}); + window.open(routeData.href, "_blank"); + }, + }, mounted: function() { diff --git a/front/src/components/Affaires/InfosGenerales/infosGenerales.html b/front/src/components/Affaires/InfosGenerales/infosGenerales.html index 53679cc7..e21b5ff3 100644 --- a/front/src/components/Affaires/InfosGenerales/infosGenerales.html +++ b/front/src/components/Affaires/InfosGenerales/infosGenerales.html @@ -163,7 +163,7 @@ md-dense> @@ -192,7 +192,7 @@ md-dense> diff --git a/front/src/components/Affaires/NewAffaire/NewAffaire.vue b/front/src/components/Affaires/NewAffaire/NewAffaire.vue index fcae1836..5bf65e15 100644 --- a/front/src/components/Affaires/NewAffaire/NewAffaire.vue +++ b/front/src/components/Affaires/NewAffaire/NewAffaire.vue @@ -907,22 +907,23 @@ export default { } // is facture required? - await this.getAffaireTypeRequirements(selectedType.id) + await this.getAffaireTypeRequirements(selectedType.id); + let client_cadastration_id = Number(process.env.VUE_APP_CLIENT_CADASTRATION_ID); if (this.form.type.id === this.typesAffaires_conf.cadastration) { this.showClientsForm = false; - this.form.client_commande_id = process.env.VUE_APP_CLIENT_CADASTRATION_ID; - this.form.client_envoi_id = process.env.VUE_APP_CLIENT_CADASTRATION_ID; + this.form.client_commande_id = client_cadastration_id; + this.form.client_envoi_id = client_cadastration_id; this.form.client_envoi_complement = null; - this.client_facture_id = process.env.VUE_APP_CLIENT_CADASTRATION_ID; + this.client_facture_id = client_cadastration_id; this.client_facture_premiere_ligne = null; this.form.nom = "Cadastration sur "; } else if (this.form.type.id === this.typesAffaires_conf.mpd) { - this.form.client_commande_id = process.env.VUE_APP_CLIENT_CADASTRATION_ID; - this.form.client_envoi_id = process.env.VUE_APP_CLIENT_CADASTRATION_ID; + this.form.client_commande_id = client_cadastration_id; + this.form.client_envoi_id = client_cadastration_id; this.form.client_envoi_complement = null; this.client_facture_premiere_ligne = null; - this.client_facture_id = process.env.VUE_APP_CLIENT_CADASTRATION_ID; + this.client_facture_id = client_cadastration_id; this.client_facture_premiere_ligne = null; this.form.nom = "Mise à jour périodique"; } else { diff --git a/front/src/components/Affaires/NewAffaire/newAffaire.html b/front/src/components/Affaires/NewAffaire/newAffaire.html index 9a2fed09..3b1f6f0a 100644 --- a/front/src/components/Affaires/NewAffaire/newAffaire.html +++ b/front/src/components/Affaires/NewAffaire/newAffaire.html @@ -234,7 +234,6 @@

Nouvelle affaire

Nouvelle affaire Nouvelle affaire
-
Général
- Tout cocher -
+ Tout cocher +
Répertoire de travail (bon endroit, bonne structure) Fichier PDF après MPD figurant les travaux en couleur Scan du croquis terrain @@ -372,8 +372,8 @@
Base de données
- Tout cocher -
+ Tout cocher +
Toutes les pastilles sont vertes ou grises Réservation des numéros de points particuliers (660) Réservation des numéros de bâtiments @@ -385,8 +385,8 @@
Normes
- Tout cocher -
+ Tout cocher +
Les objets du type : balcons, petits bâtiments, petites surfaces de nature respectent les normes (ne pas en saisir trop) Pas de bâtiments ni de couverts digitalisés
diff --git a/front/src/components/Login/Login.vue b/front/src/components/Login/Login.vue index 0f7a1443..01b65a10 100644 --- a/front/src/components/Login/Login.vue +++ b/front/src/components/Login/Login.vue @@ -40,7 +40,7 @@ export default { if (process.env.VUE_APP_SERVICE_MO === response.data.service) { this.$router.push(this.$route.query.redirect || { name: "Cockpit"}); } else { - this.$router.push(this.$route.query.redirect || { name: "Preavis"}); + this.$router.push(this.$route.query.redirect || { name: "Preavis"}); } } else { this.showProgess = false; @@ -48,9 +48,9 @@ export default { } }) //Error - .catch(err => { + .catch(() => { this.showProgess = false; - handleException(err, this); + this.$root.$emit('ShowError', "Le nom d'utilisateur ou le mot de passe est incorrect") }); }, diff --git a/front/src/components/Utils/ClientSearch/ClientSearch.vue b/front/src/components/Utils/ClientSearch/ClientSearch.vue index 0538922d..0388b894 100644 --- a/front/src/components/Utils/ClientSearch/ClientSearch.vue +++ b/front/src/components/Utils/ClientSearch/ClientSearch.vue @@ -21,6 +21,10 @@ export default { type: Number, default: null }, + client_id: { + type: Number, + default: null + }, label: { type: String, default: 'Client' @@ -51,7 +55,6 @@ export default { return { client: null, liste_clients: [], - searchTerm: null }; }, @@ -107,6 +110,11 @@ export default { async getClientById(client_id) { + if (client_id === null) { + this.client = ''; + return; + } + this.$http.get( process.env.VUE_APP_API_URL + process.env.VUE_APP_CLIENT_AGGREGATED_BY_ID_ENDPOINT + '/' + client_id, { @@ -154,24 +162,6 @@ export default { }, - computed: { - value: { - get() { - return this.client_id; - }, - set(value) { - if (value && value.id) { - this.client_id = value.id; - this.$emit('update:client_id', value.id); - } - if (value === null || value === '') { - this.client_id = value; - this.$emit('update:client_id', value); - } - } - } - }, - mounted: function() { if (this.initial_client_id !== null) { this.getClientById(this.initial_client_id); @@ -179,6 +169,25 @@ export default { this.$root.$on('resetSearchClientTerm', () => { document.querySelector('#clientSearchAutocomplete > button').click(); }); + }, + + watch: { + client_id: function() { + if (this.client_id !== null) { + this.getClientById(this.client_id); + } else { + this.client = ''; + } + }, + + client: function() { + if (this.client && this.client.id) { + this.$emit('update:client_id', this.client.id); + } else { + this.client_id = null; + this.$emit('update:client_id', null); + } + } } }; diff --git a/front/src/services/exceptionsHandler.js b/front/src/services/exceptionsHandler.js index 220fe08a..6e06e797 100644 --- a/front/src/services/exceptionsHandler.js +++ b/front/src/services/exceptionsHandler.js @@ -12,12 +12,8 @@ export const handleException = function (error, component) { } //Not authorized else if(code === 403){ - if(component.$router && component.$router.currentRoute && component.$router.currentRoute.name != 'Login') { - component.$router.push({name: "Login", query: { redirect: component.$router.currentRoute.path }}); - component.$root.$emit("ShowError", "Veuillez vous connecter pour continuer"); - } else { - component.$root.$emit("ShowError", "Le nom d'utilisateur ou le mot de passe est incorrect"); - } + let a = component.$router.push({name: "Login", query: { redirect: component.$router.currentRoute.path }}); + a.then(() => { component.$root.$emit("ShowError", "Veuillez vous connecter pour continuer") }); } //Custom error else if(error && error.msg){ @@ -38,4 +34,3 @@ export const handleException = function (error, component) { component.$root.$emit("ShowError", "Une erreur est survenue, contacter l'administrateur."); } }; - diff --git a/front/src/services/helper.js b/front/src/services/helper.js index 26376d67..4498c17b 100644 --- a/front/src/services/helper.js +++ b/front/src/services/helper.js @@ -8,8 +8,11 @@ export const checkLogged = function () { var session_user = JSON.parse(localStorage.getItem('infolica_user')) || null; //Set current user functions - if(session_user) + if(session_user){ setCurrentUserFunctions(); + } else { + alert("Veuillez vous connecter pour continuer"); + } return session_user !== null; };