1
0
forked from ScoDoc/ScoDoc

Fix minimal pour #304

This commit is contained in:
Emmanuel Viennet 2022-02-12 12:23:53 +01:00
parent 9e69dcd05e
commit 0383b82597
2 changed files with 15 additions and 15 deletions

View File

@ -68,17 +68,17 @@ des tuples (name, value, formsemestre_id).
Si formsemestre_id est NULL, la valeur concerne tous les semestres, Si formsemestre_id est NULL, la valeur concerne tous les semestres,
sinon, elle ne concerne que le semestre indiqué. sinon, elle ne concerne que le semestre indiqué.
* Utilisation dans ScoDoc8 * Utilisation dans ScoDoc 9
- lire une valeur: - lire une valeur:
get_preference(name, formsemestre_id) get_preference(name, formsemestre_id)
nb: les valeurs sont des chaines, sauf: nb: les valeurs sont des chaines, sauf:
. si le type est spécfié (float ou int) . si le type est spécifié (float ou int)
. les boolcheckbox qui sont des entiers 0 ou 1 . les boolcheckbox qui sont des entiers 0 ou 1
- avoir un mapping (read only) de toutes les valeurs: - avoir un mapping (read only) de toutes les valeurs:
sco_preferences.SemPreferences(formsemestre_id) sco_preferences.SemPreferences(formsemestre_id)
- editer les preferences globales: - éditer les preferences globales:
sco_preferences.get_base_preferences(self).edit() sco_preferences.get_base_preferences(self).edit()
- editer les preferences d'un semestre: - éditer les preferences d'un semestre:
SemPreferences(formsemestre_id).edit() SemPreferences(formsemestre_id).edit()
* Implémentation: sco_preferences.py * Implémentation: sco_preferences.py
@ -123,22 +123,22 @@ from app.scodoc.TrivialFormulator import TrivialFormulator
import app.scodoc.notesdb as ndb import app.scodoc.notesdb as ndb
import app.scodoc.sco_utils as scu import app.scodoc.sco_utils as scu
_SCO_BASE_PREFERENCES = {} # { dept_acronym: BasePreferences instance }
def clear_base_preferences(): def clear_base_preferences():
"""Clear cached preferences""" """Clear cached preferences"""
# usefull only for tests, where the same process may run # usefull only for tests, where the same process may run
# successively on several databases # successively on several databases
_SCO_BASE_PREFERENCES.clear() g._SCO_BASE_PREFERENCES = {} # { dept_id: BasePreferences instance }
def get_base_preferences(): def get_base_preferences():
"""Return global preferences for the current department""" """Return global preferences for the current department"""
dept_acronym = g.scodoc_dept dept_id = g.scodoc_dept_id
if not dept_acronym in _SCO_BASE_PREFERENCES: if not hasattr(g, "_SCO_BASE_PREFERENCES"):
_SCO_BASE_PREFERENCES[dept_acronym] = BasePreferences(dept_acronym) g._SCO_BASE_PREFERENCES = {}
return _SCO_BASE_PREFERENCES[dept_acronym] if not dept_id in g._SCO_BASE_PREFERENCES:
g._SCO_BASE_PREFERENCES[dept_id] = BasePreferences(dept_id)
return g._SCO_BASE_PREFERENCES[dept_id]
def get_preference(name, formsemestre_id=None): def get_preference(name, formsemestre_id=None):
@ -263,10 +263,10 @@ class BasePreferences(object):
filter_nulls=False, filter_nulls=False,
) )
def __init__(self, dept_acronym: str): def __init__(self, dept_id: int):
dept = Departement.query.filter_by(acronym=dept_acronym).first() dept = Departement.query.get(dept_id)
if not dept: if not dept:
raise ScoValueError(f"Invalid departement: {dept_acronym}") raise ScoValueError(f"Invalid departement: {dept_id}")
self.dept_id = dept.id self.dept_id = dept.id
self.init() self.init()
self.load() self.load()

View File

@ -1,7 +1,7 @@
# -*- mode: python -*- # -*- mode: python -*-
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
SCOVERSION = "9.1.54" SCOVERSION = "9.2a-54"
SCONAME = "ScoDoc" SCONAME = "ScoDoc"