forked from ScoDoc/ScoDoc
API: ajout champ dept_name dans /departements et /departement
This commit is contained in:
parent
5001fbf4c8
commit
424cddc193
@ -16,7 +16,7 @@ from flask import jsonify, request
|
||||
from flask_login import login_required
|
||||
|
||||
import app
|
||||
from app import db, log
|
||||
from app import db
|
||||
from app.api import api_bp as bp
|
||||
from app.scodoc.sco_utils import json_error
|
||||
from app.decorators import scodoc, permission_required
|
||||
@ -43,7 +43,7 @@ def get_departement(dept_ident: str) -> Departement:
|
||||
@permission_required(Permission.ScoView)
|
||||
def departements_list():
|
||||
"""Liste les départements"""
|
||||
return jsonify([dept.to_dict() for dept in Departement.query])
|
||||
return jsonify([dept.to_dict(with_dept_name=True) for dept in Departement.query])
|
||||
|
||||
|
||||
@bp.route("/departements_ids")
|
||||
@ -67,13 +67,14 @@ def departement(acronym: str):
|
||||
{
|
||||
"id": 1,
|
||||
"acronym": "TAPI",
|
||||
"dept_name" : "TEST",
|
||||
"description": null,
|
||||
"visible": true,
|
||||
"date_creation": "Fri, 15 Apr 2022 12:19:28 GMT"
|
||||
}
|
||||
"""
|
||||
dept = Departement.query.filter_by(acronym=acronym).first_or_404()
|
||||
return jsonify(dept.to_dict())
|
||||
return jsonify(dept.to_dict(with_dept_name=True))
|
||||
|
||||
|
||||
@bp.route("/departement/id/<int:dept_id>")
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
"""ScoDoc models : departements
|
||||
"""
|
||||
from typing import Any
|
||||
|
||||
from app import db
|
||||
from app.models import SHORT_STR_LEN
|
||||
from app.models.preferences import ScoPreference
|
||||
from app.scodoc.sco_exceptions import ScoValueError
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ class Departement(db.Model):
|
||||
def __repr__(self):
|
||||
return f"<{self.__class__.__name__}(id={self.id}, acronym='{self.acronym}')>"
|
||||
|
||||
def to_dict(self):
|
||||
def to_dict(self, with_dept_name=True, with_dept_preferences=False):
|
||||
data = {
|
||||
"id": self.id,
|
||||
"acronym": self.acronym,
|
||||
@ -47,6 +47,17 @@ class Departement(db.Model):
|
||||
"visible": self.visible,
|
||||
"date_creation": self.date_creation,
|
||||
}
|
||||
if with_dept_name:
|
||||
pref = ScoPreference.query.filter_by(
|
||||
dept_id=self.id, name="DeptName"
|
||||
).first()
|
||||
data["dept_name"] = pref.value if pref else None
|
||||
# Ceci n'est pas encore utilisé, mais pourrait être publié
|
||||
# par l'API après nettoyage des préférences.
|
||||
if with_dept_preferences:
|
||||
data["preferences"] = {
|
||||
p.name: p.value for p in ScoPreference.query.filter_by(dept_id=self.id)
|
||||
}
|
||||
return data
|
||||
|
||||
@classmethod
|
||||
|
@ -1,7 +1,7 @@
|
||||
# -*- mode: python -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
SCOVERSION = "9.4.7"
|
||||
SCOVERSION = "9.4.8"
|
||||
|
||||
SCONAME = "ScoDoc"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user