forked from ScoDoc/ScoDoc
New-Style Classes
This commit is contained in:
parent
510e6dc9c7
commit
8d8b8a3ae9
@ -113,7 +113,7 @@ def TrivialFormulator(
|
|||||||
return res, form, t.result
|
return res, form, t.result
|
||||||
|
|
||||||
|
|
||||||
class TF:
|
class TF(object):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
form_url,
|
form_url,
|
||||||
|
@ -92,7 +92,7 @@ def go_dept(app, dept, verbose=True):
|
|||||||
raise ValueError("dep %s not found" % dept)
|
raise ValueError("dep %s not found" % dept)
|
||||||
|
|
||||||
|
|
||||||
class FakeUser:
|
class FakeUser(object):
|
||||||
def __init__(self, name):
|
def __init__(self, name):
|
||||||
self.name = name
|
self.name = name
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ class FakeUser:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
class DummyResponse:
|
class DummyResponse(object):
|
||||||
"""Emulation vide de Reponse http Zope"""
|
"""Emulation vide de Reponse http Zope"""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -120,7 +120,7 @@ class DummyResponse:
|
|||||||
self.redirected = url
|
self.redirected = url
|
||||||
|
|
||||||
|
|
||||||
class DummyRequest:
|
class DummyRequest(object):
|
||||||
"""Emulation vide de Request Zope"""
|
"""Emulation vide de Request Zope"""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -72,7 +72,7 @@ def mark_paras(L, tags):
|
|||||||
return L
|
return L
|
||||||
|
|
||||||
|
|
||||||
class DEFAULT_TABLE_PREFERENCES:
|
class DEFAULT_TABLE_PREFERENCES(object):
|
||||||
"""Default preferences for tables created without preferences argument"""
|
"""Default preferences for tables created without preferences argument"""
|
||||||
|
|
||||||
values = {
|
values = {
|
||||||
@ -85,7 +85,7 @@ class DEFAULT_TABLE_PREFERENCES:
|
|||||||
return self.values[k]
|
return self.values[k]
|
||||||
|
|
||||||
|
|
||||||
class GenTable:
|
class GenTable(object):
|
||||||
"""Simple 2D tables with export to HTML, PDF, Excel, CSV.
|
"""Simple 2D tables with export to HTML, PDF, Excel, CSV.
|
||||||
Can be sub-classed to generate fancy formats.
|
Can be sub-classed to generate fancy formats.
|
||||||
"""
|
"""
|
||||||
@ -679,7 +679,7 @@ class GenTable:
|
|||||||
|
|
||||||
|
|
||||||
# -----
|
# -----
|
||||||
class SeqGenTable:
|
class SeqGenTable(object):
|
||||||
"""Sequence de GenTable: permet de générer un classeur excel avec un tab par table.
|
"""Sequence de GenTable: permet de générer un classeur excel avec un tab par table.
|
||||||
L'ordre des tabs est conservé (1er tab == 1ere table ajoutée)
|
L'ordre des tabs est conservé (1er tab == 1ere table ajoutée)
|
||||||
"""
|
"""
|
||||||
|
@ -20,7 +20,7 @@ DEFAULT_LOG_DIR = "/tmp" # clients should call set_log_directory to change this
|
|||||||
ALARM_DESTINATION = "emmanuel.viennet@univ-paris13.fr" # XXX a mettre en preference
|
ALARM_DESTINATION = "emmanuel.viennet@univ-paris13.fr" # XXX a mettre en preference
|
||||||
|
|
||||||
|
|
||||||
class _logguer:
|
class _logguer(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.file = None
|
self.file = None
|
||||||
self.directory = None
|
self.directory = None
|
||||||
|
@ -153,7 +153,7 @@ def comp_etud_sum_coef_modules_ue(context, formsemestre_id, etudid, ue_id):
|
|||||||
return s
|
return s
|
||||||
|
|
||||||
|
|
||||||
class NotesTable:
|
class NotesTable(object):
|
||||||
"""Une NotesTable représente un tableau de notes pour un semestre de formation.
|
"""Une NotesTable représente un tableau de notes pour un semestre de formation.
|
||||||
Les colonnes sont des modules.
|
Les colonnes sont des modules.
|
||||||
Les lignes des étudiants.
|
Les lignes des étudiants.
|
||||||
|
@ -253,7 +253,7 @@ def DBDelete(cnx, table, colid, val, commit=False):
|
|||||||
# REQN = 0
|
# REQN = 0
|
||||||
|
|
||||||
|
|
||||||
class EditableTable:
|
class EditableTable(object):
|
||||||
"""--- generic class: SQL table with create/edit/list/delete"""
|
"""--- generic class: SQL table with create/edit/list/delete"""
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
|
@ -85,7 +85,7 @@ def comp_nom_semestre_dans_parcours(context, sem):
|
|||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------------------
|
||||||
class JuryPE:
|
class JuryPE(object):
|
||||||
"""Classe memorisant toutes les informations necessaires pour etablir un jury de PE. Modele
|
"""Classe memorisant toutes les informations necessaires pour etablir un jury de PE. Modele
|
||||||
base sur NotesTable
|
base sur NotesTable
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ import datetime
|
|||||||
from app.scodoc import notes_table
|
from app.scodoc import notes_table
|
||||||
|
|
||||||
|
|
||||||
class TableTag:
|
class TableTag(object):
|
||||||
"""
|
"""
|
||||||
Classe mémorisant les moyennes des étudiants à différents tag et permettant de calculer les rangs et les statistiques :
|
Classe mémorisant les moyennes des étudiants à différents tag et permettant de calculer les rangs et les statistiques :
|
||||||
- nom : Nom représentatif des données de la Table
|
- nom : Nom représentatif des données de la Table
|
||||||
|
@ -84,7 +84,7 @@ def MonthNbDays(month, year):
|
|||||||
return 30
|
return 30
|
||||||
|
|
||||||
|
|
||||||
class ddmmyyyy:
|
class ddmmyyyy(object):
|
||||||
"""immutable dates"""
|
"""immutable dates"""
|
||||||
|
|
||||||
def __init__(self, date=None, fmt="ddmmyyyy", work_saturday=False):
|
def __init__(self, date=None, fmt="ddmmyyyy", work_saturday=False):
|
||||||
@ -987,7 +987,7 @@ def MonthTableBody(
|
|||||||
# absences à une date donnée).
|
# absences à une date donnée).
|
||||||
#
|
#
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
class CAbsSemEtud:
|
class CAbsSemEtud(object):
|
||||||
"""Comptes d'absences d'un etudiant dans un semestre"""
|
"""Comptes d'absences d'un etudiant dans un semestre"""
|
||||||
|
|
||||||
def __init__(self, context, sem, etudid):
|
def __init__(self, context, sem, etudid):
|
||||||
|
@ -220,7 +220,7 @@ class DictCol(dict):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class ApoElt:
|
class ApoElt(object):
|
||||||
"""Definition d'un Element Apogee
|
"""Definition d'un Element Apogee
|
||||||
sur plusieurs colonnes du fichier CSV
|
sur plusieurs colonnes du fichier CSV
|
||||||
"""
|
"""
|
||||||
@ -248,7 +248,7 @@ class ApoElt:
|
|||||||
return "ApoElt(code='%s', cols=%s)" % (self.code, pprint.pformat(self.cols))
|
return "ApoElt(code='%s', cols=%s)" % (self.code, pprint.pformat(self.cols))
|
||||||
|
|
||||||
|
|
||||||
class EtuCol:
|
class EtuCol(object):
|
||||||
"""Valeurs colonnes d'un element pour un etudiant"""
|
"""Valeurs colonnes d'un element pour un etudiant"""
|
||||||
|
|
||||||
def __init__(self, nip, apo_elt, init_vals):
|
def __init__(self, nip, apo_elt, init_vals):
|
||||||
@ -669,7 +669,7 @@ class ApoEtud(dict):
|
|||||||
return cur_sem, autre_sem
|
return cur_sem, autre_sem
|
||||||
|
|
||||||
|
|
||||||
class ApoData:
|
class ApoData(object):
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
data,
|
data,
|
||||||
|
@ -70,7 +70,7 @@ from app.scodoc import sco_pvjury
|
|||||||
from app.scodoc import sco_pvpdf
|
from app.scodoc import sco_pvpdf
|
||||||
|
|
||||||
|
|
||||||
class BaseArchiver:
|
class BaseArchiver(object):
|
||||||
def __init__(self, archive_type=""):
|
def __init__(self, archive_type=""):
|
||||||
dirs = [Config.INSTANCE_HOME, "var", "scodoc", "archives"]
|
dirs = [Config.INSTANCE_HOME, "var", "scodoc", "archives"]
|
||||||
if archive_type:
|
if archive_type:
|
||||||
|
@ -130,7 +130,7 @@ BACS_SSP = {(t[0], t[1]): t[2:] for t in _BACS}
|
|||||||
BACS_S = {t[0]: t[2:] for t in _BACS}
|
BACS_S = {t[0]: t[2:] for t in _BACS}
|
||||||
|
|
||||||
|
|
||||||
class Baccalaureat:
|
class Baccalaureat(object):
|
||||||
def __init__(self, bac, specialite=""):
|
def __init__(self, bac, specialite=""):
|
||||||
self.bac = bac
|
self.bac = bac
|
||||||
self.specialite = specialite
|
self.specialite = specialite
|
||||||
|
@ -97,7 +97,7 @@ def bulletin_get_class_name_displayed(context, formsemestre_id):
|
|||||||
return "invalide ! (voir paramètres)"
|
return "invalide ! (voir paramètres)"
|
||||||
|
|
||||||
|
|
||||||
class BulletinGenerator:
|
class BulletinGenerator(object):
|
||||||
"Virtual superclass for PDF bulletin generators" ""
|
"Virtual superclass for PDF bulletin generators" ""
|
||||||
# Here some helper methods
|
# Here some helper methods
|
||||||
# see sco_bulletins_standard.BulletinGeneratorStandard subclass for real methods
|
# see sco_bulletins_standard.BulletinGeneratorStandard subclass for real methods
|
||||||
|
@ -387,7 +387,7 @@ class BulletinGeneratorLegacy(sco_bulletins_generator.BulletinGenerator):
|
|||||||
sco_bulletins_generator.register_bulletin_class(BulletinGeneratorLegacy)
|
sco_bulletins_generator.register_bulletin_class(BulletinGeneratorLegacy)
|
||||||
|
|
||||||
|
|
||||||
class BulTableStyle:
|
class BulTableStyle(object):
|
||||||
"""Construction du style de tables reportlab platypus pour les bulletins "classiques" """
|
"""Construction du style de tables reportlab platypus pour les bulletins "classiques" """
|
||||||
|
|
||||||
LINEWIDTH = 0.5
|
LINEWIDTH = 0.5
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
# Cache data
|
# Cache data
|
||||||
class simpleCache:
|
class simpleCache(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.cache = {}
|
self.cache = {}
|
||||||
self.inval_cache() # >
|
self.inval_cache() # >
|
||||||
|
@ -171,7 +171,7 @@ DEVENIRS_NEXT2 = {NEXT_OR_NEXT2: 1, NEXT2: 1}
|
|||||||
NO_SEMESTRE_ID = -1 # code semestre si pas de semestres
|
NO_SEMESTRE_ID = -1 # code semestre si pas de semestres
|
||||||
|
|
||||||
# Regles gestion parcours
|
# Regles gestion parcours
|
||||||
class DUTRule:
|
class DUTRule(object):
|
||||||
def __init__(self, rule_id, premise, conclusion):
|
def __init__(self, rule_id, premise, conclusion):
|
||||||
self.rule_id = rule_id
|
self.rule_id = rule_id
|
||||||
self.premise = premise
|
self.premise = premise
|
||||||
@ -196,7 +196,7 @@ class DUTRule:
|
|||||||
DEFAULT_TYPE_PARCOURS = 100 # pour le menu de creation nouvelle formation
|
DEFAULT_TYPE_PARCOURS = 100 # pour le menu de creation nouvelle formation
|
||||||
|
|
||||||
|
|
||||||
class TypeParcours:
|
class TypeParcours(object):
|
||||||
TYPE_PARCOURS = None # id, utilisé par notes_formation.type_parcours
|
TYPE_PARCOURS = None # id, utilisé par notes_formation.type_parcours
|
||||||
NAME = None # required
|
NAME = None # required
|
||||||
NB_SEM = 1 # Nombre de semestres
|
NB_SEM = 1 # Nombre de semestres
|
||||||
@ -213,7 +213,9 @@ class TypeParcours:
|
|||||||
UNUSED_CODES = set() # Ensemble des codes jury non autorisés dans ce parcours
|
UNUSED_CODES = set() # Ensemble des codes jury non autorisés dans ce parcours
|
||||||
UE_IS_MODULE = False # 1 seul module par UE (si plusieurs modules, etudiants censéments inscrits à un seul d'entre eux)
|
UE_IS_MODULE = False # 1 seul module par UE (si plusieurs modules, etudiants censéments inscrits à un seul d'entre eux)
|
||||||
ECTS_ONLY = False # Parcours avec progression basée uniquement sur les ECTS
|
ECTS_ONLY = False # Parcours avec progression basée uniquement sur les ECTS
|
||||||
ALLOWED_UE_TYPES = list(UE_TYPE_NAME.keys()) # par defaut, autorise tous les types d'UE
|
ALLOWED_UE_TYPES = list(
|
||||||
|
UE_TYPE_NAME.keys()
|
||||||
|
) # par defaut, autorise tous les types d'UE
|
||||||
|
|
||||||
def check(self, formation=None):
|
def check(self, formation=None):
|
||||||
return True, "" # status, diagnostic_message
|
return True, "" # status, diagnostic_message
|
||||||
|
@ -35,7 +35,7 @@ def get_evaluations_cache(context):
|
|||||||
return CACHE_evaluations[u]
|
return CACHE_evaluations[u]
|
||||||
|
|
||||||
|
|
||||||
class CacheNotesTable:
|
class CacheNotesTable(object):
|
||||||
"""gestion rudimentaire de cache pour les NotesTables"""
|
"""gestion rudimentaire de cache pour les NotesTables"""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
@ -191,7 +191,12 @@ class CacheNotesTable:
|
|||||||
if r:
|
if r:
|
||||||
log(
|
log(
|
||||||
"get_bulletins_pdf(%s): cache hit %s (id=%s, thread=%s)"
|
"get_bulletins_pdf(%s): cache hit %s (id=%s, thread=%s)"
|
||||||
% (version, formsemestre_id, id(self), six.moves._thread.get_ident())
|
% (
|
||||||
|
version,
|
||||||
|
formsemestre_id,
|
||||||
|
id(self),
|
||||||
|
six.moves._thread.get_ident(),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
return r
|
return r
|
||||||
finally:
|
finally:
|
||||||
|
@ -125,7 +125,7 @@ FLAG = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class DataEtudiant:
|
class DataEtudiant(object):
|
||||||
"""
|
"""
|
||||||
Structure de donnée des informations pour un étudiant
|
Structure de donnée des informations pour un étudiant
|
||||||
"""
|
"""
|
||||||
@ -230,7 +230,7 @@ def entete_liste_etudiant():
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
class EtapeBilan:
|
class EtapeBilan(object):
|
||||||
"""
|
"""
|
||||||
Structure de donnée représentation l'état global de la comparaison ScoDoc/Apogée
|
Structure de donnée représentation l'état global de la comparaison ScoDoc/Apogée
|
||||||
"""
|
"""
|
||||||
|
@ -576,7 +576,7 @@ admission_list = _admissionEditor.list
|
|||||||
admission_edit = _admissionEditor.edit
|
admission_edit = _admissionEditor.edit
|
||||||
|
|
||||||
# Edition simultanee de identite et admission
|
# Edition simultanee de identite et admission
|
||||||
class EtudIdentEditor:
|
class EtudIdentEditor(object):
|
||||||
def create(self, cnx, args, context=None, REQUEST=None):
|
def create(self, cnx, args, context=None, REQUEST=None):
|
||||||
etudid = identite_create(cnx, args, context, REQUEST)
|
etudid = identite_create(cnx, args, context, REQUEST)
|
||||||
args["etudid"] = etudid
|
args["etudid"] = etudid
|
||||||
|
@ -179,7 +179,7 @@ def Excel_MakeStyle(
|
|||||||
return style
|
return style
|
||||||
|
|
||||||
|
|
||||||
class ScoExcelSheet:
|
class ScoExcelSheet(object):
|
||||||
def __init__(self, sheet_name="feuille", default_style=None):
|
def __init__(self, sheet_name="feuille", default_style=None):
|
||||||
self.sheet_name = sheet_name
|
self.sheet_name = sheet_name
|
||||||
self.cells = [] # list of list
|
self.cells = [] # list of list
|
||||||
|
@ -386,7 +386,7 @@ def _write_formsemestre_aux(context, sem, fieldname, valuename):
|
|||||||
|
|
||||||
|
|
||||||
# ------ Utilisé pour stocker le VDI avec le code étape (noms de fichiers maquettes et code semestres)
|
# ------ Utilisé pour stocker le VDI avec le code étape (noms de fichiers maquettes et code semestres)
|
||||||
class ApoEtapeVDI:
|
class ApoEtapeVDI(object):
|
||||||
_ETAPE_VDI_SEP = "!"
|
_ETAPE_VDI_SEP = "!"
|
||||||
|
|
||||||
def __init__(self, etape_vdi=None, etape="", vdi=""):
|
def __init__(self, etape_vdi=None, etape="", vdi=""):
|
||||||
|
@ -1517,7 +1517,7 @@ def make_query_groups(group_ids):
|
|||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
class GroupIdInferer:
|
class GroupIdInferer(object):
|
||||||
"""Sert à retrouver l'id d'un groupe dans un semestre donné
|
"""Sert à retrouver l'id d'un groupe dans un semestre donné
|
||||||
à partir de son nom.
|
à partir de son nom.
|
||||||
Attention: il peut y avoir plusieurs groupes de même nom
|
Attention: il peut y avoir plusieurs groupes de même nom
|
||||||
|
@ -295,7 +295,7 @@ if (group_id) {
|
|||||||
return "\n".join(H)
|
return "\n".join(H)
|
||||||
|
|
||||||
|
|
||||||
class DisplayedGroupsInfos:
|
class DisplayedGroupsInfos(object):
|
||||||
"""Container with attributes describing groups to display in the page
|
"""Container with attributes describing groups to display in the page
|
||||||
.groups_query_args : 'group_ids=xxx&group_ids=yyy'
|
.groups_query_args : 'group_ids=xxx&group_ids=yyy'
|
||||||
.base_url : url de la requete, avec les groupes, sans les autres paramètres
|
.base_url : url de la requete, avec les groupes, sans les autres paramètres
|
||||||
|
@ -130,7 +130,7 @@ def scolar_news_summary(context, n=5):
|
|||||||
|
|
||||||
news = list(selected_news.values())
|
news = list(selected_news.values())
|
||||||
# sort by date, descending
|
# sort by date, descending
|
||||||
news.sort(itemgetter("date"), reverse=True)
|
news.sort(key=itemgetter("date"), reverse=True)
|
||||||
news = news[:n]
|
news = news[:n]
|
||||||
# mimic EditableTable.list output formatting:
|
# mimic EditableTable.list output formatting:
|
||||||
for n in news:
|
for n in news:
|
||||||
|
@ -63,7 +63,7 @@ from app.scodoc.dutrules import DUTRules # regles generees a partir du CSV
|
|||||||
from app.scodoc.sco_exceptions import ScoValueError
|
from app.scodoc.sco_exceptions import ScoValueError
|
||||||
|
|
||||||
|
|
||||||
class DecisionSem:
|
class DecisionSem(object):
|
||||||
"Decision prenable pour un semestre"
|
"Decision prenable pour un semestre"
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
@ -116,7 +116,7 @@ def SituationEtudParcours(context, etud, formsemestre_id):
|
|||||||
return SituationEtudParcoursGeneric(context, etud, formsemestre_id, nt)
|
return SituationEtudParcoursGeneric(context, etud, formsemestre_id, nt)
|
||||||
|
|
||||||
|
|
||||||
class SituationEtudParcoursGeneric:
|
class SituationEtudParcoursGeneric(object):
|
||||||
"Semestre dans un parcours"
|
"Semestre dans un parcours"
|
||||||
|
|
||||||
def __init__(self, context, etud, formsemestre_id, nt):
|
def __init__(self, context, etud, formsemestre_id, nt):
|
||||||
|
@ -334,7 +334,7 @@ def pdf_basic_page(
|
|||||||
import threading, time, six.moves.queue, six.moves._thread
|
import threading, time, six.moves.queue, six.moves._thread
|
||||||
|
|
||||||
|
|
||||||
class PDFLock:
|
class PDFLock(object):
|
||||||
def __init__(self, timeout=15):
|
def __init__(self, timeout=15):
|
||||||
self.Q = six.moves.queue.Queue(1)
|
self.Q = six.moves.queue.Queue(1)
|
||||||
self.timeout = timeout
|
self.timeout = timeout
|
||||||
|
@ -40,7 +40,7 @@ _SCO_PERMISSIONS = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
class Permission:
|
class Permission(object):
|
||||||
"Permissions for ScoDoc"
|
"Permissions for ScoDoc"
|
||||||
NBITS = 1 # maximum bits used (for formatting)
|
NBITS = 1 # maximum bits used (for formatting)
|
||||||
ALL_PERMISSIONS = [-1]
|
ALL_PERMISSIONS = [-1]
|
||||||
|
@ -50,7 +50,7 @@ def has_portal(context):
|
|||||||
return get_portal_url(context)
|
return get_portal_url(context)
|
||||||
|
|
||||||
|
|
||||||
class PortalInterface:
|
class PortalInterface(object):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.warning = False
|
self.warning = False
|
||||||
|
|
||||||
@ -157,10 +157,14 @@ def get_inscrits_etape(context, code_etape, anneeapogee=None, ntrials=2):
|
|||||||
req = (
|
req = (
|
||||||
etud_url
|
etud_url
|
||||||
+ "?"
|
+ "?"
|
||||||
+ six.moves.urllib.parse.urlencode((("etape", code_etape), ("annee", anneeapogee)))
|
+ six.moves.urllib.parse.urlencode(
|
||||||
|
(("etape", code_etape), ("annee", anneeapogee))
|
||||||
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
req = etud_url + "?" + six.moves.urllib.parse.urlencode((("etape", code_etape),))
|
req = (
|
||||||
|
etud_url + "?" + six.moves.urllib.parse.urlencode((("etape", code_etape),))
|
||||||
|
)
|
||||||
actual_timeout = float(portal_timeout) / ntrials
|
actual_timeout = float(portal_timeout) / ntrials
|
||||||
if portal_timeout > 0:
|
if portal_timeout > 0:
|
||||||
actual_timeout = max(1, actual_timeout)
|
actual_timeout = max(1, actual_timeout)
|
||||||
@ -565,7 +569,9 @@ def get_maquette_apogee(context, etape="", annee_scolaire=""):
|
|||||||
req = (
|
req = (
|
||||||
maquette_url
|
maquette_url
|
||||||
+ "?"
|
+ "?"
|
||||||
+ six.moves.urllib.parse.urlencode((("etape", etape), ("annee", annee_scolaire)))
|
+ six.moves.urllib.parse.urlencode(
|
||||||
|
(("etape", etape), ("annee", annee_scolaire))
|
||||||
|
)
|
||||||
)
|
)
|
||||||
doc = scu.query_portal(req, timeout=portal_timeout)
|
doc = scu.query_portal(req, timeout=portal_timeout)
|
||||||
return doc
|
return doc
|
||||||
|
@ -479,7 +479,7 @@ def table_suivi_cohorte(
|
|||||||
# 3-- Regroupe les semestres par date de debut
|
# 3-- Regroupe les semestres par date de debut
|
||||||
P = [] # liste de periodsem
|
P = [] # liste de periodsem
|
||||||
|
|
||||||
class periodsem:
|
class periodsem(object):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# semestre de depart:
|
# semestre de depart:
|
||||||
|
@ -59,7 +59,7 @@ from app.scodoc.sco_permissions import Permission
|
|||||||
# module_tag_set( module_id, taglist ) -> modifie les tags
|
# module_tag_set( module_id, taglist ) -> modifie les tags
|
||||||
|
|
||||||
|
|
||||||
class ScoTag:
|
class ScoTag(object):
|
||||||
"""Generic tags for ScoDoc"""
|
"""Generic tags for ScoDoc"""
|
||||||
|
|
||||||
# must be overloaded:
|
# must be overloaded:
|
||||||
|
@ -204,7 +204,7 @@ class DictDefault(dict): # obsolete, use collections.defaultdict
|
|||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
class WrapDict:
|
class WrapDict(object):
|
||||||
"""Wrap a dict so that getitem returns '' when values are None"""
|
"""Wrap a dict so that getitem returns '' when values are None"""
|
||||||
|
|
||||||
def __init__(self, adict, NoneValue=""):
|
def __init__(self, adict, NoneValue=""):
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
# souvent de comprendre le code qui les utilise pour ne pas faire d'erreur: attention.
|
# souvent de comprendre le code qui les utilise pour ne pas faire d'erreur: attention.
|
||||||
|
|
||||||
|
|
||||||
class CFG:
|
class CFG(object):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
# souvent de comprendre le code qui les utilise pour ne pas faire d'erreur: attention.
|
# souvent de comprendre le code qui les utilise pour ne pas faire d'erreur: attention.
|
||||||
|
|
||||||
|
|
||||||
class CFG:
|
class CFG(object):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,7 +23,12 @@ from config import Config
|
|||||||
from app.scodoc.sco_exceptions import ScoConfigurationError
|
from app.scodoc.sco_exceptions import ScoConfigurationError
|
||||||
|
|
||||||
|
|
||||||
class ScoDeptDescription:
|
class ScoDeptDescription(object):
|
||||||
|
"""Description d'un département
|
||||||
|
.dept_id : eg "RT"
|
||||||
|
.db_uri : dept database URI
|
||||||
|
"""
|
||||||
|
|
||||||
def __init__(self, filename):
|
def __init__(self, filename):
|
||||||
"""Read dept description from dept file"""
|
"""Read dept description from dept file"""
|
||||||
if os.path.split(filename)[1][-4:] != ".cfg":
|
if os.path.split(filename)[1][-4:] != ".cfg":
|
||||||
|
@ -63,7 +63,7 @@ def logging_meth(func):
|
|||||||
return wrapper_logging_meth
|
return wrapper_logging_meth
|
||||||
|
|
||||||
|
|
||||||
class ScoFake:
|
class ScoFake(object):
|
||||||
def __init__(self, context, verbose=True):
|
def __init__(self, context, verbose=True):
|
||||||
self.context = context
|
self.context = context
|
||||||
self.verbose = verbose
|
self.verbose = verbose
|
||||||
|
Loading…
Reference in New Issue
Block a user