forked from ScoDoc/DocScoDoc
131 lines
2.9 KiB
Python
131 lines
2.9 KiB
Python
# -*- mode: python -*-
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""Configuration pour debugguer en mode console
|
|
|
|
Lancer ScoDoc ainsi: (comme root)
|
|
|
|
/opt/scodoc/bin/zopectl debug
|
|
|
|
Puis
|
|
|
|
from debug import *
|
|
context = go(app)
|
|
# ou
|
|
context = go_dept(app, 'CJ')
|
|
|
|
authuser = app.acl_users.getUserById('admin')
|
|
# ou app.ScoDoc.acl_users.getUserById('toto') pour un utilisateur scodoc
|
|
authuser = authuser.__of__(app.acl_users)
|
|
|
|
Exemple:
|
|
sems = context.Notes.formsemestre_list()
|
|
formsemestre_id = sems[0]['formsemestre_id']
|
|
|
|
# Affiche tous les semestres:
|
|
for sem in sems:
|
|
print sem['formsemestre_id'], sem['titre_num']
|
|
|
|
# Recupere la table de notes:
|
|
nt = context.Notes._getNotesCache().get_NotesTable(context.Notes, formsemestre_id)
|
|
|
|
|
|
"""
|
|
import pdb
|
|
import pprint
|
|
|
|
import notesdb as ndb
|
|
from notesdb import * # pylint: disable=unused-wildcard-import
|
|
from notes_log import log
|
|
import sco_utils as scu
|
|
from sco_utils import * # pylint: disable=unused-wildcard-import
|
|
|
|
from gen_tables import GenTable
|
|
import sco_archives
|
|
import sco_groups
|
|
import sco_evaluations
|
|
import sco_formsemestre
|
|
import sco_formsemestre_edit
|
|
import sco_compute_moy
|
|
import sco_parcours_dut
|
|
import sco_codes_parcours
|
|
import sco_bulletins
|
|
import sco_excel
|
|
import sco_formsemestre_status
|
|
import sco_bulletins_xml
|
|
|
|
# Prend le premier departement comme context
|
|
|
|
|
|
def go(app, n=0, verbose=True):
|
|
context = app.ScoDoc.objectValues("Folder")[n].Scolarite
|
|
if verbose:
|
|
print("context in dept ", context.DeptId())
|
|
return context
|
|
|
|
|
|
def go_dept(app, dept, verbose=True):
|
|
objs = app.ScoDoc.objectValues("Folder")
|
|
for o in objs:
|
|
try:
|
|
context = o.Scolarite
|
|
except AttributeError:
|
|
# ignore other folders, like old "icons"
|
|
continue
|
|
if context.DeptId() == dept:
|
|
if verbose:
|
|
print("context in dept ", context.DeptId())
|
|
return context
|
|
raise ValueError("dep %s not found" % dept)
|
|
|
|
|
|
class FakeUser:
|
|
def __init__(self, name):
|
|
self.name = name
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
def has_permission(self, op, context):
|
|
return True
|
|
|
|
def has_role(self, role):
|
|
return True
|
|
|
|
|
|
class DummyResponse:
|
|
"""Emulation vide de Reponse http Zope"""
|
|
|
|
def __init__(self):
|
|
self.header = {}
|
|
self.redirected = ""
|
|
|
|
def setHeader(self, name, value):
|
|
self.header[name] = value
|
|
|
|
def redirect(self, url):
|
|
self.redirected = url
|
|
|
|
|
|
class DummyRequest:
|
|
"""Emulation vide de Request Zope"""
|
|
|
|
def __init__(self):
|
|
self.RESPONSE = DummyResponse()
|
|
self.AUTHENTICATED_USER = FakeUser("admin")
|
|
self.form = {}
|
|
self.URL = "http://scodoc/"
|
|
self.URL0 = self.URL
|
|
self.BASE0 = "localhost"
|
|
self.REMOTE_HOST = "localhost"
|
|
self.REMOTE_ADDR = "127.0.0.1"
|
|
self.HTTP_REFERER = ""
|
|
self.REQUEST_METHOD = "get"
|
|
self.QUERY_STRING = ""
|
|
|
|
|
|
REQUEST = DummyRequest()
|
|
|
|
# handful shorcut
|
|
pp = pprint.pprint
|