placement_group_size_control #2

Closed
jmplace wants to merge 150 commits from placement_group_size_control into master
5 changed files with 28 additions and 5 deletions
Showing only changes of commit dffb369bb0 - Show all commits

View File

@ -177,8 +177,9 @@ class User(UserMixin, db.Model):
if "roles_string" in data: if "roles_string" in data:
self.user_roles = [] self.user_roles = []
for r_d in data["roles_string"].split(","): for r_d in data["roles_string"].split(","):
role, dept = UserRole.role_dept_from_string(r_d) if r_d:
self.add_role(role, dept) role, dept = UserRole.role_dept_from_string(r_d)
self.add_role(role, dept)
def get_token(self, expires_in=3600): def get_token(self, expires_in=3600):
now = datetime.utcnow() now = datetime.utcnow()
@ -407,6 +408,9 @@ class UserRole(db.Model):
""" """
fields = role_dept.split("_", 1) # maxsplit=1, le dept peut contenir un "_" fields = role_dept.split("_", 1) # maxsplit=1, le dept peut contenir un "_"
if len(fields) != 2: if len(fields) != 2:
current_app.logger.warning(
f"role_dept_from_string: Invalid role_dept '{role_dept}'"
)
raise ScoValueError("Invalid role_dept") raise ScoValueError("Invalid role_dept")
role_name, dept = fields role_name, dept = fields
if dept == "": if dept == "":

View File

@ -167,6 +167,23 @@ def bonus_iutlh(notes_sport, coefs, infos=None):
return bonus return bonus
def bonus_nantes(notes_sport, coefs, infos=None):
"""IUT de Nantes (Septembre 2018)
Nous avons différents types de bonification
bonfication Sport / Culture / engagement citoyen
Nous ajoutons sur le bulletin une bonification de 0,2 pour chaque item
la bonification totale ne doit pas excéder les 0,5 point.
Sur le bulletin nous ne mettons pas une note sur 20 mais directement les bonifications.
Dans ScoDoc: on a déclaré une UE "sport&culture" dans laquelle on aura des modules
pour chaque activité (Sport, Associations, ...)
avec à chaque fois une note (ScoDoc l'affichera comme une note sur 20, mais en fait ce sera la
valeur de la bonification: entrer 0,1/20 signifiera un bonus de 0,1 point la moyenne générale)
"""
bonus = min(0.5, sum([x for x in notes_sport])) # plafonnement à 0.5 points
return bonus
# Bonus sport IUT Tours # Bonus sport IUT Tours
def bonus_tours(notes_sport, coefs, infos=None): def bonus_tours(notes_sport, coefs, infos=None):
"""Calcul bonus sport & culture IUT Tours sur moyenne generale """Calcul bonus sport & culture IUT Tours sur moyenne generale

View File

@ -231,8 +231,10 @@ def import_users(users):
roles_list = [] roles_list = []
for role in u["roles"].split(","): for role in u["roles"].split(","):
try: try:
_, _ = UserRole.role_dept_from_string(role.strip()) role = role.strip()
roles_list.append(role.strip()) if role:
_, _ = UserRole.role_dept_from_string(role)
roles_list.append(role)
except ScoValueError as value_error: except ScoValueError as value_error:
user_ok = False user_ok = False
append_msg("role %s : %s" % (role, value_error)) append_msg("role %s : %s" % (role, value_error))

View File

@ -168,6 +168,7 @@ def create_user_form(user_name=None, edit=0, all_roles=1):
orig_roles = { # set des roles existants avant édition orig_roles = { # set des roles existants avant édition
UserRole.role_dept_from_string(role_dept) UserRole.role_dept_from_string(role_dept)
for role_dept in initvalues["roles"] for role_dept in initvalues["roles"]
if role_dept
} }
if not initvalues["active"]: if not initvalues["active"]:
editable_roles_set = set() # can't change roles of a disabled user editable_roles_set = set() # can't change roles of a disabled user

View File

@ -95,7 +95,6 @@ def _clear_users_db():
try: try:
db.session.query(UserRole).delete() db.session.query(UserRole).delete()
db.session.query(User).delete() db.session.query(User).delete()
db.session.query(User).delete()
db.session.commit() db.session.commit()
except: except:
db.session.rollback() db.session.rollback()