diff --git a/api/dashboard/lc/dash_lc_serializer.py b/api/dashboard/lc/dash_lc_serializer.py index 49043313..d61c827f 100644 --- a/api/dashboard/lc/dash_lc_serializer.py +++ b/api/dashboard/lc/dash_lc_serializer.py @@ -485,7 +485,7 @@ def get_interest_group(self, obj): return obj.values('ig_id').distinct().count() def get_total_no_of_users(self, obj): - return UserCircleLink.objects.all().count() + return UserCircleLink.objects.filter(accepted=True).count() def get_learning_circle(self, obj): return obj.count() diff --git a/api/dashboard/roles/dash_roles_views.py b/api/dashboard/roles/dash_roles_views.py index b208467c..c16e7a49 100644 --- a/api/dashboard/roles/dash_roles_views.py +++ b/api/dashboard/roles/dash_roles_views.py @@ -197,11 +197,12 @@ def put(self, request, role_id): return CustomResponse(response=serialized_users.data).get_success_response() @role_required([RoleType.ADMIN.value]) - def patch(self, request): + def post(self, request, role_id): """ Assigns a large bunch of users a certain role """ request_data = request.data.copy() + request_data["role"] = role_id request_data["created_by"] = JWTUtils.fetch_user_id(request) serialized_users = dash_roles_serializer.RoleAssignmentSerializer( data=request_data @@ -214,31 +215,34 @@ def patch(self, request): return CustomResponse(response=serialized_users.errors).get_failure_response() @role_required([RoleType.ADMIN.value]) - def delete(self, request): + def patch(self, request, role_id): """ Removes a role from a large bunch of users """ - role = Role.objects.get(pk=request.data.get("role")) - user_role_links = UserRoleLink.objects.filter( - user__pk__in=request.data.get("users"), - role=role, - ) - number = user_role_links.count() + try: + role = Role.objects.get(pk=role_id) + user_role_links = UserRoleLink.objects.filter( + user__pk__in=request.data.get("users"), + role=role, + ) + number = user_role_links.count() - DiscordWebhooks.general_updates( - WebHookCategory.BULK_ROLE.value, - WebHookActions.DELETE.value, - role.title, - ",".join(list(user_role_links.values_list("user_id", flat=True))), - ) + DiscordWebhooks.general_updates( + WebHookCategory.BULK_ROLE.value, + WebHookActions.DELETE.value, + role.title, + ",".join(list(user_role_links.values_list("user_id", flat=True))), + ) - user_role_links.delete() + user_role_links.delete() - return CustomResponse( - general_message=( - f"Successfully removed the '{role.title}' role from {number} users" - ) - ).get_success_response() + return CustomResponse( + general_message=( + f"Successfully removed the '{role.title}' role from {number} users" + ) + ).get_success_response() + except Role.DoesNotExist as e: + return CustomResponse(general_message=str(e)).get_failure_response() class UserRole(APIView): @@ -425,7 +429,9 @@ def post(self, request): row["created_by_id"] = request_user_id valid_rows.append(row) - users_by_role = {role_title: users for role_title, users in users_by_role.items() if users} + users_by_role = { + role_title: users for role_title, users in users_by_role.items() if users + } user_roles_serializer = dash_roles_serializer.UserRoleBulkAssignSerializer( data=valid_rows, many=True ) diff --git a/db/hackathon.py b/db/hackathon.py index d7705367..5847084f 100644 --- a/db/hackathon.py +++ b/db/hackathon.py @@ -1,8 +1,9 @@ from django.db import models -from db.organization import Organization, District +from db.organization import District, Organization from db.user import User -from decouple import config as decouple_config + +from .helper import get_system_admin_id # fmt: off # noinspection PyPep8 @@ -26,9 +27,9 @@ class Hackathon(models.Model): event_start = models.DateTimeField(blank=True, null=True) event_end = models.DateTimeField(blank=True, null=True) status = models.CharField(max_length=20, blank=True, null=True) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', related_name='hackathon_updated_by') + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='hackathon_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', related_name='hackathon_created_by') + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='hackathon_created_by') created_at = models.DateTimeField(auto_now_add=True) class Meta: @@ -42,9 +43,9 @@ class HackathonForm(models.Model): field_name = models.CharField(max_length=255) field_type = models.CharField(max_length=50) is_required = models.BooleanField(default=False) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', related_name='hackathon_form_updated_by') + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='hackathon_form_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', related_name='hackathon_form_created_by') + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='hackathon_form_created_by') created_at = models.DateTimeField(auto_now_add=True) class Meta: @@ -56,9 +57,9 @@ class HackathonOrganiserLink(models.Model): id = models.CharField(primary_key=True, max_length=36) organiser = models.ForeignKey(User, on_delete=models.CASCADE) hackathon = models.ForeignKey(Hackathon, on_delete=models.CASCADE) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', related_name='hackathon_organiser_link_updated_by') + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='hackathon_organiser_link_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', related_name='hackathon_organiser_link_created_by') + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='hackathon_organiser_link_created_by') created_at = models.DateTimeField(auto_now_add=True) class Meta: @@ -70,9 +71,9 @@ class HackathonUserSubmission(models.Model): id = models.CharField(primary_key=True, max_length=36) user = models.ForeignKey(User, on_delete=models.CASCADE) hackathon = models.ForeignKey(Hackathon, on_delete=models.CASCADE) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', related_name='hackathon_submission_updated_by') + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='hackathon_submission_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', related_name='hackathon_submission_created_by') + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='hackathon_submission_created_by') created_at = models.DateTimeField(auto_now_add=True) data = models.JSONField(max_length=2000, blank=True, null=True) diff --git a/db/helper.py b/db/helper.py new file mode 100644 index 00000000..aa38a05a --- /dev/null +++ b/db/helper.py @@ -0,0 +1,6 @@ +from decouple import config + + +def get_system_admin_id(): + from db.user import User + return User.objects.get(pk=config("SYSTEM_ADMIN_ID")) diff --git a/db/integrations.py b/db/integrations.py index 0d49ec2d..377524ce 100644 --- a/db/integrations.py +++ b/db/integrations.py @@ -1,10 +1,11 @@ import uuid -from decouple import config as decouple_config from django.db import models from db.user import User +from .helper import get_system_admin_id + # fmt: off # noinspection PyPep8 @@ -21,7 +22,7 @@ class Meta: db_table = "integration" -# + class IntegrationAuthorization(models.Model): id = models.CharField(max_length=36, primary_key=True, default=uuid.uuid4) integration = models.ForeignKey(Integration, on_delete=models.CASCADE, null=False, related_name="integration_authorization_integration",) diff --git a/db/learning_circle.py b/db/learning_circle.py index 7332bfff..ec5a90b0 100644 --- a/db/learning_circle.py +++ b/db/learning_circle.py @@ -4,8 +4,8 @@ from db.task import InterestGroup, Organization from db.user import User -from decouple import config as decouple_config +from .helper import get_system_admin_id # fmt: off # noinspection PyPep8 @@ -22,10 +22,10 @@ class LearningCircle(models.Model): meet_time = models.CharField(max_length=10, blank=True, null=True) day = models.CharField(max_length=20, blank=True, null=True) note = models.CharField(max_length=500, blank=True, null=True) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="updated_by", + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="updated_by", related_name="learning_circle_updated_by") updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="learning_circle_created_by") created_at = models.DateTimeField(auto_now=True) @@ -59,10 +59,10 @@ class CircleMeetingLog(models.Model): attendees = models.CharField(max_length=216) agenda = models.CharField(max_length=2000) images = models.ImageField(max_length=200, upload_to='lc/meet-report') - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='circle_meeting_log_created_by') created_at = models.DateTimeField(auto_now=True) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='circle_meeting_log_updated_by') updated_at = models.DateTimeField(auto_now=True) diff --git a/db/notification.py b/db/notification.py index 539ee1f6..402ff843 100644 --- a/db/notification.py +++ b/db/notification.py @@ -1,10 +1,11 @@ import uuid -from decouple import config as decouple_config from django.db import models from db.user import User +from .helper import get_system_admin_id + # fmt: off # noinspection PyPep8 @@ -16,7 +17,7 @@ class Notification(models.Model): button = models.CharField(max_length=10, blank=True, null=True) url = models.CharField(max_length=100, blank=True, null=True) created_at = models.DateTimeField(auto_now_add=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", related_name="created_notifications") + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="created_notifications") class Meta: managed = False diff --git a/db/organization.py b/db/organization.py index f1eb7d52..bc5a1594 100644 --- a/db/organization.py +++ b/db/organization.py @@ -1,8 +1,8 @@ import uuid -from decouple import config as decouple_config from django.db import models +from .helper import get_system_admin_id from .user import User # fmt: off @@ -11,10 +11,10 @@ class Country(models.Model): id = models.CharField(primary_key=True, max_length=36, default=uuid.uuid4) name = models.CharField(max_length=75, null=False, unique=True) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='country_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='country_created_by') created_at = models.DateTimeField(auto_now_add=True) @@ -27,10 +27,10 @@ class State(models.Model): id = models.CharField(primary_key=True, max_length=36, default=uuid.uuid4) name = models.CharField(max_length=75) country = models.ForeignKey(Country, on_delete=models.CASCADE, related_name='state_country') - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='state_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='state_created_by') created_at = models.DateTimeField(auto_now_add=True) @@ -43,10 +43,10 @@ class Zone(models.Model): id = models.CharField(primary_key=True, max_length=36, default=uuid.uuid4) name = models.CharField(max_length=75) state = models.ForeignKey(State, on_delete=models.CASCADE, related_name='zone_state') - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='zone_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='zone_created_by') created_at = models.DateTimeField(auto_now_add=True) @@ -59,10 +59,10 @@ class District(models.Model): id = models.CharField(primary_key=True, max_length=36, default=uuid.uuid4) name = models.CharField(max_length=75) zone = models.ForeignKey(Zone, on_delete=models.CASCADE, related_name="district_zone") - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='district_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='district_created_by') created_at = models.DateTimeField(auto_now_add=True) @@ -75,10 +75,10 @@ class OrgAffiliation(models.Model): id = models.CharField(primary_key=True, max_length=36, default=uuid.uuid4()) title = models.CharField(max_length=75) updated_by = models.ForeignKey( - User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', related_name='org_affiliation_updated_by') + User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='org_affiliation_updated_by') updated_at = models.DateTimeField(auto_now=True) created_by = models.ForeignKey( - User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', related_name='org_affiliation_created_by') + User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='org_affiliation_created_by') created_at = models.DateTimeField(auto_now_add=True) class Meta: @@ -93,10 +93,10 @@ class Organization(models.Model): org_type = models.CharField(max_length=25) affiliation = models.ForeignKey(OrgAffiliation, on_delete=models.CASCADE, blank=True, null=True, related_name='organization_affiliation') district = models.ForeignKey(District, on_delete=models.CASCADE, related_name='organization_district') - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='organization_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='organization_created_by') created_at = models.DateTimeField(auto_now_add=True) @@ -108,10 +108,10 @@ class Meta: class Department(models.Model): id = models.CharField(primary_key=True, max_length=36, default=uuid.uuid4()) title = models.CharField(max_length=100) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='department_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='department_created_by') created_at = models.DateTimeField(auto_now_add=True) @@ -124,10 +124,10 @@ class College(models.Model): id = models.CharField(primary_key=True, max_length=36, default=uuid.uuid4()) level = models.IntegerField(default=0) org = models.OneToOneField(Organization, on_delete=models.CASCADE, related_name='college_org', unique=True) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='college_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='college_created_by') created_at = models.DateTimeField(auto_now_add=True) @@ -140,10 +140,10 @@ class OrgDiscordLink(models.Model): id = models.CharField(primary_key=True, max_length=36) discord_id = models.CharField(unique=True, max_length=36) org = models.OneToOneField(Organization, on_delete=models.CASCADE, related_name='org_discord_link_org_id') - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='org_discord_link_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='org_discord_link_created_by') created_at = models.DateTimeField(auto_now_add=True) @@ -161,7 +161,7 @@ class UserOrganizationLink(models.Model): graduation_year = models.CharField(max_length=10, blank=True, null=True) verified = models.BooleanField() is_alumni = models.IntegerField(blank=True, null=True, default=False) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='user_organization_link_created_by') created_at = models.DateTimeField(auto_now_add=True) diff --git a/db/settings.py b/db/settings.py index e5dd11b5..2ce359dc 100644 --- a/db/settings.py +++ b/db/settings.py @@ -1,4 +1,3 @@ -from decouple import config as decouple_config from django.db import models diff --git a/db/task.py b/db/task.py index d9a5f818..382d0ce7 100644 --- a/db/task.py +++ b/db/task.py @@ -1,10 +1,10 @@ import uuid -from decouple import config as decouple_config from django.db import models from db.organization import Organization +from .helper import get_system_admin_id from .user import User # fmt: off @@ -16,14 +16,14 @@ class Channel(models.Model): discord_id = models.CharField(max_length=36) updated_by = models.ForeignKey( User, - on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), + on_delete=models.SET(get_system_admin_id), db_column="updated_by", related_name="channel_updated_by", ) updated_at = models.DateTimeField(auto_now=True) created_by = models.ForeignKey( User, - on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), + on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="channel_created_by", ) @@ -39,10 +39,10 @@ class InterestGroup(models.Model): name = models.CharField(max_length=75, unique=True) code = models.CharField(max_length=10, unique=True) icon = models.CharField(max_length=10) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="updated_by", + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="updated_by", related_name="interest_group_updated_by") updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="interest_group_created_by") created_at = models.DateTimeField(auto_now_add=True) @@ -56,10 +56,10 @@ class Level(models.Model): level_order = models.IntegerField() name = models.CharField(max_length=36) karma = models.IntegerField() - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="level_created_by") created_at = models.DateTimeField(auto_now_add=True) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="updated_by", + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="updated_by", related_name="level_updated_by") updated_at = models.DateTimeField(auto_now=True) @@ -72,10 +72,10 @@ class UserLvlLink(models.Model): id = models.CharField(primary_key=True, max_length=36, default=uuid.uuid4) user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="user_lvl_link_user") level = models.ForeignKey(Level, on_delete=models.CASCADE, related_name="user_lvl_link_level") - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="updated_by", + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="updated_by", related_name="user_lvl_link_updated_by") updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="user_lvl_link_created_by") created_at = models.DateTimeField(auto_now_add=True) @@ -87,10 +87,10 @@ class Meta: class TaskType(models.Model): id = models.CharField(primary_key=True, max_length=36) title = models.CharField(max_length=75) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="updated_by", + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="updated_by", related_name="task_type_updated_by") updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="task_type_created_by") created_at = models.DateTimeField(auto_now_add=True) @@ -133,10 +133,10 @@ class Wallet(models.Model): karma = models.IntegerField(default=0) karma_last_updated_at = models.DateTimeField(blank=True, null=True, auto_now=True) coin = models.FloatField(default=0) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="updated_by", + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="updated_by", related_name="wallet_updated_by") updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="wallet_created_by") created_at = models.DateTimeField(auto_now_add=True) @@ -155,16 +155,16 @@ class KarmaActivityLog(models.Model): lobby_message_id = models.CharField(max_length=36, blank=True, null=True) dm_message_id = models.CharField(max_length=36, blank=True, null=True) peer_approved = models.BooleanField(blank=True, null=True) - peer_approved_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="peer_approved_by", blank=True, + peer_approved_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="peer_approved_by", blank=True, null=True, related_name="karma_activity_log_peer_approved_by") appraiser_approved = models.BooleanField(blank=True, null=True) - appraiser_approved_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="appraiser_approved_by", + appraiser_approved_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="appraiser_approved_by", blank=True, null=True, related_name="karma_activity_log_appraiser_approved_by") - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="updated_by", + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="updated_by", related_name="karma_activity_log_updated_by") updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="karma_activity_log_created_by") created_at = models.DateTimeField(auto_now_add=True) @@ -179,10 +179,10 @@ class MucoinActivityLog(models.Model): coin = models.FloatField() status = models.CharField(max_length=36) task = models.ForeignKey(TaskList, on_delete=models.CASCADE, related_name="mucoin_activity_log_task_list") - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="updated_by", + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="updated_by", related_name="mucoin_activity_log_updated_by") updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="mucoin_activity_log_created_by") created_at = models.DateTimeField(auto_now_add=True) @@ -196,7 +196,7 @@ class MucoinInviteLog(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="mucoin_invite_log_user") email = models.CharField(max_length=200) invite_code = models.CharField(max_length=36) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="mucoin_invite_log_created_by") created_at = models.DateTimeField(auto_now_add=True) @@ -209,7 +209,7 @@ class UserIgLink(models.Model): id = models.CharField(primary_key=True, max_length=36, default=uuid.uuid4) user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="user_ig_link_user") ig = models.ForeignKey(InterestGroup, on_delete=models.CASCADE, related_name="user_ig_link_ig") - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="user_ig_link_created_by") created_at = models.DateTimeField(auto_now_add=True) @@ -229,10 +229,10 @@ class VoucherLog(models.Model): claimed = models.BooleanField() event = models.CharField(max_length=50, null=True) description = models.CharField(max_length=2000, null=True) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="updated_by", + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="updated_by", related_name="voucher_log_updated_by") updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="voucher_log_created_by") created_at = models.DateTimeField(auto_now_add=True) @@ -245,10 +245,10 @@ class Events(models.Model): id = models.CharField(primary_key=True, max_length=36, default=uuid.uuid4) name = models.CharField(max_length=75) description = models.CharField(max_length=200, null=True) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="updated_by", + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="updated_by", related_name="event_updated_by") updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column="created_by", + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column="created_by", related_name="event_created_by") created_at = models.DateTimeField(auto_now_add=True) diff --git a/db/url_shortener.py b/db/url_shortener.py index 5b63f6ab..5d3f6cbb 100644 --- a/db/url_shortener.py +++ b/db/url_shortener.py @@ -1,8 +1,9 @@ -from decouple import config as decouple_config from django.db import models from db.user import User +from .helper import get_system_admin_id + # fmt: off # noinspection PyPep8 @@ -12,10 +13,10 @@ class UrlShortener(models.Model): short_url = models.CharField(unique=True, max_length=100) long_url = models.CharField(max_length=500) count = models.IntegerField(blank=True, null=True, default=0) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='url_shortener_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='url_shortener_created_by') created_at = models.DateTimeField(auto_now_add=True) diff --git a/db/user.py b/db/user.py index 5dfb5e58..c5354e91 100644 --- a/db/user.py +++ b/db/user.py @@ -1,9 +1,9 @@ import uuid -from decouple import config as decouple_config from django.core.files.storage import FileSystemStorage from django.db import models +from db.helper import get_system_admin_id from .managers import user_manager # fmt: off @@ -18,14 +18,14 @@ class User(models.Model): email = models.EmailField(unique=True, max_length=200) password = models.CharField(max_length=200, blank=True, null=True) mobile = models.CharField(unique=True, max_length=15, error_messages={"unique" : "user with this mobile number already exists"}) - gender = models.CharField(max_length=10, blank=True, null=True, choices=[("Male", "Male"), ("Female", "Female")]) + gender = models.CharField(max_length=10, blank=True, null=True, choices=[("Male", "Male"), ("Female", "Female"), ("Other", "Other")]) dob = models.DateField(blank=True, null=True) admin = models.BooleanField(default=False) exist_in_guild = models.BooleanField(default=False) district = models.ForeignKey("District", on_delete=models.CASCADE, blank=True, null=True) created_at = models.DateTimeField(auto_now_add=True) suspended_at = models.DateTimeField(blank=True, null=True) - suspended_by = models.ForeignKey("self", on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), blank=True, null=True, related_name="user_suspended_by_user", db_column="suspended_by") + suspended_by = models.ForeignKey("self", on_delete=models.SET(get_system_admin_id), blank=True, null=True, related_name="user_suspended_by_user", db_column="suspended_by") objects = user_manager.ActiveUserManager() every = models.Manager() @@ -65,9 +65,9 @@ class UserReferralLink(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_referral_link_user') referral = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_referral_link_referral') is_coin = models.BooleanField(default=False) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), related_name='user_referral_link_updated_by', db_column='updated_by') + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), related_name='user_referral_link_updated_by', db_column='updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), related_name='user_referral_link_created_by', db_column='created_by') + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), related_name='user_referral_link_created_by', db_column='created_by') created_at = models.DateTimeField(auto_now_add=True) class Meta: @@ -79,9 +79,9 @@ class Role(models.Model): id = models.CharField(primary_key=True, max_length=36) title = models.CharField(max_length=75) description = models.CharField(max_length=300, blank=True, null=True) - updated_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='updated_by', related_name='role_updated_by') + updated_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='updated_by', related_name='role_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', related_name='role_created_by') + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='role_created_by') created_at = models.DateTimeField(auto_now_add=True) class Meta: @@ -94,7 +94,7 @@ class UserRoleLink(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='user_role_link_user') role = models.ForeignKey(Role, on_delete=models.CASCADE) verified = models.BooleanField(default=False) - created_by = models.ForeignKey(User, on_delete=models.SET(decouple_config("SYSTEM_ADMIN_ID")), db_column='created_by', related_name='user_role_link_created_by') + created_by = models.ForeignKey(User, on_delete=models.SET(get_system_admin_id), db_column='created_by', related_name='user_role_link_created_by') created_at = models.DateTimeField(auto_now_add=True) class Meta: @@ -117,8 +117,8 @@ class Socials(models.Model): stackoverflow = models.CharField(max_length=60, blank=True, null=True) medium = models.CharField(max_length=60, blank=True, null=True) hackerrank = models.CharField(max_length=60, blank=True, null=True) - created_by = models.ForeignKey(User, on_delete=models.SET(models.SET(decouple_config("SYSTEM_ADMIN_ID"))), db_column='created_by', related_name='socials_created_by') - updated_by = models.ForeignKey(User, on_delete=models.SET(models.SET(decouple_config("SYSTEM_ADMIN_ID"))), db_column='updated_by', related_name='socials_updated_by') + created_by = models.ForeignKey(User, on_delete=models.SET(models.SET(get_system_admin_id)), db_column='created_by', related_name='socials_created_by') + updated_by = models.ForeignKey(User, on_delete=models.SET(models.SET(get_system_admin_id)), db_column='updated_by', related_name='socials_updated_by') created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(blank=True, null=True, auto_now=True) @@ -129,7 +129,7 @@ class Meta: class ForgotPassword(models.Model): id = models.CharField(primary_key=True, max_length=36) - user = models.ForeignKey(User, on_delete=models.SET(models.SET(decouple_config("SYSTEM_ADMIN_ID")))) + user = models.ForeignKey(User, on_delete=models.SET(models.SET(get_system_admin_id))) expiry = models.DateTimeField() created_at = models.DateTimeField(auto_now_add=True) @@ -142,9 +142,9 @@ class UserSettings(models.Model): id = models.CharField(primary_key=True, max_length=36, default=uuid.uuid4) user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="user_settings_user") is_public = models.BooleanField(default=False) - updated_by = models.ForeignKey(User, on_delete=models.SET(models.SET(decouple_config("SYSTEM_ADMIN_ID"))), db_column='updated_by', related_name='user_settings_updated_by') + updated_by = models.ForeignKey(User, on_delete=models.SET(models.SET(get_system_admin_id)), db_column='updated_by', related_name='user_settings_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(models.SET(decouple_config("SYSTEM_ADMIN_ID"))), db_column='created_by', related_name='user_settings_created_by') + created_by = models.ForeignKey(User, on_delete=models.SET(models.SET(get_system_admin_id)), db_column='created_by', related_name='user_settings_created_by') created_at = models.DateTimeField(auto_now_add=True) class Meta: @@ -156,9 +156,9 @@ class DynamicRole(models.Model): id = models.CharField(primary_key=True, max_length=36) type = models.CharField(max_length=50) role = models.ForeignKey(Role, on_delete=models.CASCADE, db_column='role', related_name='dynamic_role_role') - updated_by = models.ForeignKey(User, on_delete=models.SET(models.SET(decouple_config("SYSTEM_ADMIN_ID"))), db_column='updated_by', related_name='dynamic_role_updated_by') + updated_by = models.ForeignKey(User, on_delete=models.SET(models.SET(get_system_admin_id)), db_column='updated_by', related_name='dynamic_role_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey(User, on_delete=models.SET(models.SET(decouple_config("SYSTEM_ADMIN_ID"))), db_column='created_by', related_name='dynamic_role_created_by') + created_by = models.ForeignKey(User, on_delete=models.SET(models.SET(get_system_admin_id)), db_column='created_by', related_name='dynamic_role_created_by') created_at = models.DateTimeField(auto_now_add=True) class Meta: @@ -170,9 +170,9 @@ class DynamicUser(models.Model): id = models.CharField(primary_key=True, max_length=36) type = models.CharField(max_length=50) user = models.ForeignKey('User', on_delete=models.CASCADE, related_name='dynamic_user_user') - updated_by = models.ForeignKey('User', on_delete=models.SET(models.SET(decouple_config("SYSTEM_ADMIN_ID"))), db_column='updated_by', related_name='dynamic_user_updated_by') + updated_by = models.ForeignKey('User', on_delete=models.SET(models.SET(get_system_admin_id)), db_column='updated_by', related_name='dynamic_user_updated_by') updated_at = models.DateTimeField(auto_now=True) - created_by = models.ForeignKey('User', on_delete=models.SET(models.SET(decouple_config("SYSTEM_ADMIN_ID"))), db_column='created_by', related_name='dynamic_user_created_by') + created_by = models.ForeignKey('User', on_delete=models.SET(models.SET(get_system_admin_id)), db_column='created_by', related_name='dynamic_user_created_by') created_at = models.DateTimeField(auto_now_add=True) class Meta: