def process_row(row): email = row["Email"].strip().lower() github = row["Github Username"].strip() first_name = row["First Name"].strip() last_name = row["Surname"].strip() user, _ = User.objects.get_or_create(email=email, defaults={ "first_name": first_name, "last_name": last_name, }) SocialProfile.objects.get_or_create(user=user, defaults={"github_name": github}) RecruitCohort.objects.get_or_create( user=user, cohort=cohort, start_date=cohort.start_date, end_date=cohort.end_date, employer_partner=employer, ) print(f"user: {user}") print() current_courses = CourseRegistration.objects.get_or_create( user=user, curriculum=curriculum) AgileCard.objects.filter(assignees__in=[user]).delete() generate_and_update_all_cards_for_user(user=user)
def test_generate_project_cards_twice_no_progress(self): generate_and_update_all_cards_for_user(self.user1, None) generate_and_update_all_cards_for_user(self.user1, None) cards = models.AgileCard.objects.all() self.assertEqual(cards.count(), 1) card = cards.first() self.assertIn(self.user1, card.assignees.all())
def delete_and_recreate_user_cards(user_id): from curriculum_tracking.card_generation_helpers import ( generate_and_update_all_cards_for_user, ) from curriculum_tracking.models import AgileCard from core.models import User user = User.objects.get(pk=user_id) AgileCard.objects.filter(assignees__in=[user]).delete() generate_and_update_all_cards_for_user(user, None)
def test_generate_project_cards_twice_has_progress(self): factories.RecruitProjectFactory( recruit_users=[self.user1], content_item=self.content_item, flavours=[JAVASCRIPT], ) generate_and_update_all_cards_for_user(self.user1, None) generate_and_update_all_cards_for_user(self.user1, None) cards = models.AgileCard.objects.all() self.assertEqual(cards.count(), 1) card = cards.first() self.assertIn(self.user1, card.assignees.all())
def handle(self, *args, **options): user = None who = options["who"] if who: if "@" in who: user = User.objects.get(email=who) models.AgileCard.objects.filter(assignees__in=[user]).delete() generate_and_update_all_cards_for_user(user, None) else: team = core_models.Team.objects.get(name=who) for user in team.users.all(): models.AgileCard.objects.filter(assignees__in=[user]).delete() generate_and_update_all_cards_for_user(user, None)
def process_row(row): email = row["Gmail Address"].strip().lower() github = row["Github Name"] dept_name = row["Department"] first_name = row["First name"] last_name = row["Last name"] user, _ = User.objects.get_or_create( email=email, defaults={"first_name": first_name, "last_name": last_name,} ) SocialProfile.objects.get_or_create(user=user, defaults={"github_name": github}) if dept_name == DEPT_DS: cohort = cohort_data_sci curriculums = data_science_curriculums elif dept_name == DEPT_WEB: cohort = cohort_web_dev curriculums = web_dev_curriculums else: raise Exception(f"unrecognised department '{dept_name}'") RecruitCohort.objects.get_or_create( user=user, cohort=cohort, start_date=cohort.start_date, end_date=cohort.end_date, employer_partner=employer, ) current_courses = CourseRegistration.objects.filter(user=user).order_by("order") if current_courses: assert [ o.curriculum for o in current_courses ] == curriculums, f"Course mismatch:\n\t{[o.curriculum for o in current_courses]} != {curriculums}" else: for i, o in enumerate(curriculums): CourseRegistration.objects.create(order=i, curriculum=o, user=user) current_courses = CourseRegistration.objects.filter(user=user).order_by("order") print(f"user: {user}") print(f"department: {dept_name}") print(f"cohort: {cohort}") print(f"courses: {[o.curriculum for o in current_courses]}") print() generate_and_update_all_cards_for_user(user=user)
def handle(self, *args, **options): user = None who = options["who"] if who: if "@" in who: user = User.objects.get(email=who) models.AgileCard.objects.filter(assignees__in=[user]).delete() generate_and_update_all_cards_for_user(user, None) else: user_group = core_models.UserGroup.objects.get(name=who) # generate_all_content_cards_for_user_group(user_group) for o in core_models.UserGroupMembership.objects.filter( group=user_group, permission_student=True): user = o.user models.AgileCard.objects.filter( assignees__in=[user]).delete() generate_and_update_all_cards_for_user(user, None)
def handle(self, *args, **options): user = None who = options["who"] name = options["curriculum"] if name: curriculum = Curriculum.objects.get(name=name) else: curriculum = None if who: if "@" in who: user = User.objects.get(email=who) generate_and_update_all_cards_for_user(user, curriculum) else: team = core_models.Team.objects.get(name=who) generate_all_content_cards_for_team(team, curriculum)
def handle(self, *args, **options): user = None cohort = None who = options["who"] name = options["curriculum"] if name: curriculum = Curriculum.objects.get( Q(short_name=name) | Q(name=name)) else: curriculum = None if who: if "@" in who: user = User.objects.get(email=who) generate_and_update_all_cards_for_user(user, curriculum) else: user_group = core_models.UserGroup.objects.get(name=who) generate_all_content_cards_for_user_group( user_group, curriculum)
def process_users_row(row): email = row["Email Address"].strip().lower() github = row["Github"] first_name = row["First name"] last_name = row["Last name"] user, _ = User.objects.get_or_create( email=email, defaults={"first_name": first_name, "last_name": last_name,} ) github = github.split("/")[-1] SocialProfile.objects.get_or_create(user=user, defaults={"github_name": github}) cohort = cohort_web_dev curriculums = web_dev_curriculums RecruitCohort.objects.get_or_create( user=user, cohort=cohort, start_date=cohort.start_date, end_date=cohort.end_date, employer_partner=employer, ) current_courses = CourseRegistration.objects.filter(user=user).order_by("order") if current_courses: assert [ o.curriculum for o in current_courses ] == curriculums, f"Course mismatch:\n\t{[o.curriculum for o in current_courses]} != {curriculums}" else: for i, o in enumerate(curriculums): CourseRegistration.objects.create(order=i, curriculum=o, user=user) current_courses = CourseRegistration.objects.filter(user=user).order_by("order") print(f"user: {user}") print(f"cohort: {cohort}") print(f"courses: {[o.curriculum for o in current_courses]}") print() generate_and_update_all_cards_for_user(user=user)