implement languages update

This commit is contained in:
2021-06-27 13:51:07 +02:00
parent 15b71459ee
commit 5113f6995e
2 changed files with 62 additions and 1 deletions

View File

@ -1,7 +1,7 @@
from flask import make_response, request
from sqlalchemy import not_
from ki.models import Address, Contact, ContactType, User, Profile, ProfileSkill, Skill
from ki.models import Address, Contact, ContactType, Language, User, Profile, ProfileLanguage, ProfileSkill, Skill
from app import db
@ -21,6 +21,28 @@ def update_address(profile, address_data):
address.country = address_data.get("country", "")
def update_languages(profile, languages_data):
profile_language_ids = []
for language_data in languages_data:
language_id = language_data["language"]["id"]
language = Language.query.get(language_id)
profile_language = ProfileLanguage.query.filter(ProfileLanguage.profile == profile,
ProfileLanguage.language_id == language_id).first()
if profile_language is None:
profile_language = ProfileLanguage(profile=profile, language=language)
db.session.add(profile_language)
profile_language.level = language_data["level"]
profile_language_ids.append(language_id)
ProfileLanguage.query.filter(ProfileLanguage.profile == profile,
not_(ProfileLanguage.language_id.in_(profile_language_ids))).delete()
def update_skills(profile, skills_data):
profile_skill_ids = []
@ -89,6 +111,7 @@ def update_profile(user_id: int):
update_address(profile, request.json.get("address", {}))
update_contacts(profile, request.json.get("contacts", {}))
update_skills(profile, request.json.get("skills", {}))
update_languages(profile, request.json.get("languages", {}))
db.session.commit()