Finished manage institution site. Redone how cooperation history works.
This commit is contained in:
@@ -71,8 +71,7 @@ class UserCooperationHistory(db.Model):
|
||||
user = db.Column(db.Integer, sqlalchemy.ForeignKey('registered_user.id'), nullable=False)
|
||||
institution = db.Column(db.Integer, sqlalchemy.ForeignKey('institution.id'), nullable=False)
|
||||
role = db.Column(db.String, nullable=False)
|
||||
school_year = db.Column(db.String, nullable=False)
|
||||
badge_text = db.Column(db.String, nullable=True)
|
||||
timestamp = db.Column(db.DateTime, default=datetime.utcnow, nullable=False)
|
||||
|
||||
|
||||
class Institution(db.Model):
|
||||
|
||||
@@ -300,7 +300,6 @@ class UploadHandlerSolar():
|
||||
|
||||
@staticmethod
|
||||
def check_form(form):
|
||||
logging.info(form)
|
||||
region = form['regija']
|
||||
program = form['program']
|
||||
predmet = form['predmet']
|
||||
@@ -529,10 +528,10 @@ def get_institution_contract(institution_id):
|
||||
|
||||
|
||||
def get_institution_cooperation_history(institution_id):
|
||||
return db.session.query(UserCooperationHistory.role,
|
||||
UserCooperationHistory.school_year,
|
||||
UserCooperationHistory.badge_text,
|
||||
RegisteredUser.name,
|
||||
items = db.session.query(UserCooperationHistory.role,
|
||||
UserCooperationHistory.timestamp,
|
||||
RegisteredUser.id,
|
||||
RegisteredUser.name
|
||||
).select_from(
|
||||
UserCooperationHistory,
|
||||
).join(
|
||||
@@ -540,28 +539,59 @@ def get_institution_cooperation_history(institution_id):
|
||||
UserCooperationHistory.user == RegisteredUser.id,
|
||||
).filter(
|
||||
UserCooperationHistory.institution == institution_id,
|
||||
).order_by(UserCooperationHistory.school_year.desc()).all()
|
||||
).order_by(UserCooperationHistory.timestamp.desc()).all()
|
||||
|
||||
|
||||
res = []
|
||||
|
||||
prev_schoolyear = None
|
||||
item_buff = []
|
||||
users_seen = set()
|
||||
for item in items:
|
||||
timestamp = item.timestamp
|
||||
year = timestamp.year
|
||||
month = timestamp.month
|
||||
|
||||
if month >= 9 :
|
||||
school_year = '{}/{}'.format(year, str(year+1)[-2:])
|
||||
else:
|
||||
school_year = '{}/{}'.format(year-1, str(year)[-2:])
|
||||
|
||||
if school_year != prev_schoolyear:
|
||||
if len(item_buff) > 0:
|
||||
res.append((prev_schoolyear, item_buff))
|
||||
prev_schoolyear = school_year
|
||||
item_buff = []
|
||||
users_seen = set()
|
||||
|
||||
if not item.id in users_seen:
|
||||
users_seen.add(item.id)
|
||||
item_buff.append(item)
|
||||
|
||||
if len(item_buff) > 0:
|
||||
res.append((prev_schoolyear, item_buff))
|
||||
|
||||
return res
|
||||
|
||||
|
||||
def get_cooperation_history():
|
||||
return UserCooperationHistory.query.all()
|
||||
|
||||
|
||||
def add_cooperation_history_item(user_id, institution_id, role, school_year, badge_text):
|
||||
def add_cooperation_history_item(user_id, institution_id, role):
|
||||
model_obj = UserCooperationHistory(
|
||||
user=user_id,
|
||||
institution=institution_id,
|
||||
role=role,
|
||||
school_year=school_year,
|
||||
badge_text=badge_text
|
||||
timestamp=datetime.now()
|
||||
)
|
||||
db.session.add(model_obj)
|
||||
db.session.commit()
|
||||
return model_obj.id
|
||||
|
||||
def del_cooperation_history_item(entry_id):
|
||||
db.session.query(UserCooperationHistory).filter_by(id=entry_id).delete()
|
||||
db.session.commit()
|
||||
#def del_cooperation_history_item(entry_id):
|
||||
# db.session.query(UserCooperationHistory).filter_by(id=entry_id).delete()
|
||||
# db.session.commit()
|
||||
|
||||
def has_user_corpus_access(user_id, corpus_name):
|
||||
user = RegisteredUser.query.filter_by(id=user_id).first()
|
||||
@@ -597,7 +627,6 @@ def get_user_obj_by_email(email):
|
||||
def get_institution_obj(institution_id):
|
||||
return Institution.query.filter_by(id=institution_id).first()
|
||||
|
||||
|
||||
def get_institution_obj_by_name(institution_name):
|
||||
return Institution.query.filter_by(name=institution_name).first()
|
||||
|
||||
@@ -666,6 +695,12 @@ def update_user_role(user_id, role):
|
||||
return rowcount
|
||||
|
||||
|
||||
def update_user_institution_role(user_id, institution_id, role):
|
||||
rowcount = db.session.query(UserInstitutionMapping).filter_by(user=user_id, institution=institution_id).update({'role': role})
|
||||
db.session.commit()
|
||||
return rowcount
|
||||
|
||||
|
||||
def update_user_email(user_id, new_email):
|
||||
rowcount = db.session.query(RegisteredUser).filter_by(id=user_id).update({'email': new_email})
|
||||
db.session.commit()
|
||||
@@ -708,6 +743,22 @@ def del_user_from_institution(user_id, institution_id):
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def get_user_institution_role_str(user_id, institution_id):
|
||||
res = UserInstitutionMapping.query.filter_by(
|
||||
user=user_id
|
||||
).filter_by(
|
||||
institution=institution_id
|
||||
).first()
|
||||
if not res:
|
||||
return ''
|
||||
role_str_map = {
|
||||
'coordinator': 'Koordinator/-ka',
|
||||
'mentor': 'Mentor/-ica',
|
||||
'other': 'Druga vloga'
|
||||
}
|
||||
return role_str_map[res.role]
|
||||
|
||||
|
||||
def get_all_active_users():
|
||||
return RegisteredUser.query.filter_by(active=True).order_by(RegisteredUser.id).all()
|
||||
|
||||
@@ -722,7 +773,6 @@ def get_all_users_join_institutions(active=True):
|
||||
RegisteredUser.id == UserInstitutionMapping.user).filter(RegisteredUser.active == active).order_by(RegisteredUser.id).all()
|
||||
|
||||
|
||||
|
||||
def get_all_active_institution_users(institution_id):
|
||||
return RegisteredUser.query.filter_by(active=True).join(UserInstitutionMapping,
|
||||
RegisteredUser.id == UserInstitutionMapping.user).filter(UserInstitutionMapping.institution == institution_id).all()
|
||||
|
||||
Reference in New Issue
Block a user