Ejemplo n.º 1
0
    def get_tas_for_course(self, course_id, course_section):
        courses = Course.objects.filter(course_id__iexact=course_id,
                                        section__iexact=course_section)

        if courses.count() == 0:
            raise Exception("Course does not exist.")

        ta_course_rels = TaCourse.objects.filter(course=courses.first())

        account_objects = []

        for ta_course_rel in ta_course_rels:
            account = ta_course_rel.assigned_ta
            role_string = AccountUtil.decode_roles(account.roles)
            account_objects.append({
                'username':
                account.username,
                'name':
                account.name,
                'phoneNumber':
                account.phone_number,
                'address':
                account.address,
                'email':
                account.email,
                'roles':
                role_string,
                'remaining':
                ta_course_rel.remaining_sections
            })

        return account_objects
Ejemplo n.º 2
0
    def get_account_details(self, username):
        accounts = Account.objects.filter(username__iexact=username)
        if accounts.count() == 0:
            return None
        account = accounts.first()

        role_string = AccountUtil.decode_roles(account.roles)

        return {'username': account.username, 'name': account.name,
                'phoneNumber': account.phone_number, 'address': account.address,
                'email': account.email,
                'roles': role_string}
Ejemplo n.º 3
0
    def get_accounts(self) -> list:
        accounts = Account.objects.all()
        account_objects = []

        for account in accounts:
            role_string = AccountUtil.decode_roles(account.roles)
            account_objects.append({'username': account.username, 'name': account.name,
                                    'phoneNumber': account.phone_number, 'address': account.address,
                                    'email': account.email,
                                    'roles': role_string})

        return account_objects
Ejemplo n.º 4
0
    def create_account(self, username: str, name: str, roles: list) -> str:
        accounts = Account.objects.filter(username__iexact=username)
        if accounts.count() != 0:
            return f"Account with username {username} already exists."

        try:
            role_string = AccountUtil.generate_role_string(roles)
        except Exception as e:
            return str(e)

        Account.objects.create(username=username, name=name, roles=role_string, email=username+'@uwm.edu')
        return f"Account for user {username} successfully created with roles {', '.join(roles)}."
Ejemplo n.º 5
0
    def post(self, request):
        username = request.POST.get('username', '')
        name = request.POST.get('name', '')
        phoneNumber = request.POST.get('phonenumber', '')
        address = request.POST.get('address', '')
        email = request.POST.get('email', '')
        roles = request.POST.getlist('roles[]')
        if len(roles) == 0:
            roles = ['ta']
        roles = AccountUtil.generate_role_string(roles)

        self.account_service.update_account_info(
            username, {
                'name': name,
                'phone_number': phoneNumber,
                'address': address,
                'email': email,
                'roles': roles
            })

        return redirect('/edit_account?update=true&username=' + username)
Ejemplo n.º 6
0
 def test_generate_role_string_ta_only(self):
     expected_response = 0x1
     actual_response = AccountUtil.generate_role_string(["ta"])
     self.assertEqual(expected_response, actual_response)
Ejemplo n.º 7
0
 def test_generate_role_string_combo(self):
     expected_response = 0xA
     actual_response = AccountUtil.generate_role_string(
         ["supervisor", "instructor"])
     self.assertEqual(expected_response, actual_response)
Ejemplo n.º 8
0
 def test_generate_role_string_supervisor_only(self):
     expected_response = 0x8
     actual_response = AccountUtil.generate_role_string(["supervisor"])
     self.assertEqual(expected_response, actual_response)
Ejemplo n.º 9
0
 def test_generate_role_string_instructor_only(self):
     expected_response = 0x2
     actual_response = AccountUtil.generate_role_string(["instructor"])
     self.assertEqual(expected_response, actual_response)