コード例 #1
0
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)
コード例 #2
0
    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())
コード例 #3
0
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)
コード例 #4
0
    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())
コード例 #5
0
    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)
コード例 #6
0
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)
コード例 #7
0
    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)
コード例 #8
0
    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)
コード例 #9
0
    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)
コード例 #10
0
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)