Skip to content

Commit

Permalink
Merge pull request #31 from uw-it-aca/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
devights committed Jan 23, 2024
2 parents dde90c9 + a1f42f0 commit b0bbceb
Show file tree
Hide file tree
Showing 32 changed files with 64 additions and 29 deletions.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

import os
Expand Down
2 changes: 1 addition & 1 deletion uw_bridge/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

"""
Expand Down
2 changes: 1 addition & 1 deletion uw_bridge/custom_fields.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

"""
Expand Down
2 changes: 1 addition & 1 deletion uw_bridge/dao.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

"""
Expand Down
24 changes: 15 additions & 9 deletions uw_bridge/models.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

import json
from restclients_core import models
from uw_bridge.util import date_to_str


class BridgeCustomField(models.Model):
Expand Down Expand Up @@ -59,6 +60,7 @@ class BridgeUser(models.Model):
last_name = models.CharField(max_length=128, null=True, default=None)
department = models.CharField(max_length=256, null=True, default=None)
job_title = models.CharField(max_length=160, null=True, default=None)
hired_at = models.DateTimeField(null=True, default=None)
is_manager = models.NullBooleanField(default=None)
locale = models.CharField(max_length=2, default='en')
manager_id = models.IntegerField(default=0)
Expand Down Expand Up @@ -120,10 +122,11 @@ def has_custom_field(self):
return len(self.custom_fields.keys()) > 0

def to_json(self, omit_custom_fields=False):
ret_user = {"uid": self.get_uid(),
"full_name": self.full_name,
"email": self.email,
}
ret_user = {
"uid": self.get_uid(),
"full_name": self.full_name,
"email": self.email,
}

if self.has_bridge_id():
ret_user["id"] = self.bridge_id
Expand All @@ -140,6 +143,9 @@ def to_json(self, omit_custom_fields=False):
if self.department is not None:
ret_user["department"] = self.department

if self.hired_at is not None:
ret_user["hired_at"] = date_to_str(self.hired_at)

if self.job_title is not None:
ret_user["job_title"] = self.job_title

Expand All @@ -149,7 +155,7 @@ def to_json(self, omit_custom_fields=False):
ret_user["manager_id"] = "uid:{0}@uw.edu".format(
self.manager_netid)
else:
ret_user["manager_id"] = None
pass

return ret_user

Expand All @@ -173,9 +179,9 @@ def roles_to_json(self):

def __str__(self):
json_data = self.to_json()
json_data["deleted_at"] = self.deleted_at
json_data["logged_in_at"] = self.logged_in_at
json_data["updated_at"] = self.updated_at
json_data["deleted_at"] = date_to_str(self.deleted_at)
json_data["logged_in_at"] = date_to_str(self.logged_in_at)
json_data["updated_at"] = date_to_str(self.updated_at)
json_data["completed_courses_count"] = self.completed_courses_count

if len(self.custom_fields):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"full_name":"Bill Average Teacher",
"sortable_name":"Teacher, Bill Average",
"email":"bill@u.washington.edu",
"hire_date": "2016-08-12T00:00:00-07:00",
"is_manager":true,
"locale":"en",
"roles":["author", "fb412e52"],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"full_name":"Bill Average Teacher",
"sortable_name":"Teacher, Bill Average",
"email":"bill@u.washington.edu",
"hire_date": "2016-08-12T00:00:00-07:00",
"is_manager":true,
"locale":"en",
"roles":["author", "fb412e52"],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"full_name":"Bill Average Teacher",
"sortable_name":"Teacher, Bill Average",
"email":"bill@u.washington.edu",
"hire_date": "2016-08-12T00:00:00-07:00",
"is_manager":true,
"locale":"en",
"roles":[],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"full_name":"Bill Average Teacher",
"sortable_name":"Teacher, Bill Average",
"email":"bill@u.washington.edu",
"hire_date": "2016-08-12T00:00:00-07:00",
"is_manager":true,
"manager_name": "X Y",
"manager_id": "1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"full_name":"Bill Average Teacher",
"sortable_name":"Teacher, Bill Average",
"email":"bill@u.washington.edu",
"hire_date": "2016-08-12T00:00:00.000-07:00",
"is_manager":true,
"locale":"en",
"roles":[],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
"unsubscribed":null,
"welcomedAt":"2016-08-08T13:58:20.635-07:00",
"loggedInAt":"2016-08-08T13:58:20.635-07:00",
"hire_date": "2016-08-08T00:00:00-07:00",
"is_manager":true,
"manager_id": "195",
"job_title":null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"sortable_name":"Teacher, Bill Average",
"email":"bill@u.washington.edu",
"locale":"en",
"hire_date": "2016-08-12T00:00:00-07:00",
"is_manager":true,
"roles":[],
"name":"Bill Average Teacher",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"full_name":"Bill Average Teacher",
"sortable_name":"Teacher, Bill Average",
"email":"bill@u.washington.edu",
"hire_date": "2016-08-08T00:00:00-07:00",
"is_manager":true,
"manager_name": "X Y",
"manager_id": "1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"full_name":"Bill Average Teacher",
"sortable_name":"Teacher, Bill Average",
"email":"bill@u.washington.edu",
"hire_date": "2016-08-08T00:00:00-07:00",
"is_manager":true,
"locale":"en",
"roles":[],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
"full_name":"James Student",
"sortable_name":"Student, James Average",
"email":"javerage@uw.edu",
"hire_date": null,
"is_manager": false,
"locale":"en",
"roles":["account_admin"],
"name":"James Average Student",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"full_name":"Bill Average Teacher",
"sortable_name":"Teacher, Bill Average",
"email":"bill@u.washington.edu",
"hire_date": "2016-08-12T00:00:00-07:00",
"is_manager":true,
"locale":"en",
"roles":[],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
"full_name":"Bill Average Teacher",
"sortable_name":"Teacher, Bill Average",
"email":"bill@u.washington.edu",
"hire_date": "2016-08-12T00:00:00-07:00",
"is_manager":true,
"locale":"en",
"roles":[],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
"sortable_name":"Student, None Average",
"email":"none@u.washington.edu",
"locale":"en",
"hire_date": null,
"is_manager": false,
"roles":[],
"name":"None Average Student",
"avatar_url":null,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
"full_name":"Eight Class Student",
"sortable_name":"Student, Eight Class",
"email":"eight@uw.edu",
"is_manager":false,
"locale":"en",
"roles":[],
"name":"Eight Class Student",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
"full_name":"James Student",
"sortable_name":"Student, James",
"email":"javerage@uw.edu",
"hire_date": null,
"is_manager": false,
"locale":"en",
"roles":["account_admin", "author", "fb412e52"],
"name":"James Student",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"full_name":"Eight Class Student",
"sortable_name":"Student, Eight Class",
"email":"eight@uw.edu",
"hire_date": null,
"is_manager":false,
"locale":"en",
"roles":[],
Expand All @@ -63,6 +64,8 @@
"full_name":"James Student",
"sortable_name":"Student, James",
"email":"javerage@uw.edu",
"hire_date": null,
"is_manager": false,
"locale":"en",
"roles":["account_admin", "author", "fb412e52"],
"name":"James Student",
Expand Down
2 changes: 1 addition & 1 deletion uw_bridge/test.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

# This is just a test runner for coverage
Expand Down
2 changes: 1 addition & 1 deletion uw_bridge/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

from uw_bridge.util import fdao_bridge_override
2 changes: 1 addition & 1 deletion uw_bridge/tests/test_custom_fields.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

from unittest import TestCase
Expand Down
2 changes: 1 addition & 1 deletion uw_bridge/tests/test_dao.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

from unittest import TestCase
Expand Down
7 changes: 3 additions & 4 deletions uw_bridge/tests/test_models.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

from datetime import datetime
Expand Down Expand Up @@ -77,7 +77,6 @@ def test_bridge_user(self):
'last_name': 'Student',
'department': "XYZ",
'job_title': "y",
'manager_id': None,
'sortable_name': 'Student, Iam A',
'uid': 'iamstudent@uw.edu'})

Expand Down Expand Up @@ -114,7 +113,7 @@ def test_bridge_user(self):
{'value': '123456789',
'custom_field_id': '6',
'id': '2'}])

self.maxDiff = None
user.bridge_id = 123
self.assertEqual(
user.to_json_patch(),
Expand All @@ -127,7 +126,6 @@ def test_bridge_user(self):
'full_name': 'Iam Student',
'sortable_name': 'Student, Iam A',
'department': 'XYZ',
'manager_id': None,
'job_title': 'y',
'custom_field_values': [
{'value': '12345678901234567890123456789012',
Expand Down Expand Up @@ -158,6 +156,7 @@ def test_bridge_user(self):
{'value': '123456789',
'custom_field_id': '6',
'id': '2'}]}]})
self.assertIsNotNone(str(user))

user.update_custom_field(BridgeCustomField.REGID_NAME, None)
self.assertIsNone(
Expand Down
2 changes: 1 addition & 1 deletion uw_bridge/tests/test_user_roles.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

from unittest import TestCase
Expand Down
9 changes: 7 additions & 2 deletions uw_bridge/tests/test_users.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

from unittest import TestCase
Expand Down Expand Up @@ -110,7 +110,7 @@ def test_process_apage(self):
"welcomedAt": None,
"loggedInAt": "2019-05-14T10:17:34.757-07:00",
"passwordIsSet": True,
"hire_date": None,
"hire_date": "2016-08-12T00:00:00.000-07:00",
"is_manager": False,
"job_title": "Software Engineer",
"bio": None,
Expand All @@ -125,6 +125,7 @@ def test_process_apage(self):
"links": {"custom_field_values": ["754517"]}}]},
bridge_users)
user = bridge_users[0]
self.maxDiff = None
self.assertEqual(
user.to_json_patch(),
{'user': {
Expand All @@ -137,6 +138,7 @@ def test_process_apage(self):
'sortable_name': 'Smith, Bill',
'department': 'Unix Engineering',
'job_title': 'Software Engineer',
"hired_at": "2016-08-12T00:00:00-07:00",
'manager_id': 10,
"custom_field_values": [
{'value': '6B79E4406A7D1',
Expand All @@ -163,6 +165,7 @@ def test_get_user(self):
self.assertEqual(user.netid, "javerage")
self.assertEqual(user.get_uid(), "javerage@uw.edu")
self.assertFalse(user.is_deleted())
self.assertIsNone(user.hired_at)
self.assertEqual(
str(user.updated_at), '2016-07-25 16:24:42.131000-07:00')
self.assertEqual(
Expand Down Expand Up @@ -354,6 +357,8 @@ def test_update_user(self):
self.assertFalse(upded_user.is_deleted())
self.assertEqual(str(upded_user.updated_at),
'2016-09-08 13:58:20.635000-07:00')
self.assertEqual(str(upded_user.hired_at),
'2016-08-12 00:00:00-07:00')

user = BridgeUser(netid='bill',
first_name='Bill Average',
Expand Down
2 changes: 1 addition & 1 deletion uw_bridge/tests/test_util.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

from unittest import TestCase
Expand Down
2 changes: 1 addition & 1 deletion uw_bridge/user_roles.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

"""
Expand Down
3 changes: 2 additions & 1 deletion uw_bridge/users.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

"""
Expand Down Expand Up @@ -273,6 +273,7 @@ def _process_apage(self, resp_data, bridge_users):
department=user_data.get("department"),
job_title=user_data.get("job_title"),
locale=user_data.get("locale", "en"),
hired_at=parse_date(user_data.get("hire_date")),
is_manager=user_data.get("is_manager"),
unsubscribed=user_data.get("unsubscribed"),
deleted_at=parse_date(user_data.get("deleted_at")),
Expand Down
7 changes: 6 additions & 1 deletion uw_bridge/util.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Copyright 2023 UW-IT, University of Washington
# Copyright 2024 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

from commonconf import override_settings
Expand All @@ -13,3 +13,8 @@ def parse_date(date_str):
if date_str is not None:
return parse(date_str)
return None


def date_to_str(dt):
# datetime.datetime.isoformat
return dt.isoformat() if dt is not None else None

0 comments on commit b0bbceb

Please sign in to comment.