diff --git a/NearBeach/decorators/check_user_permissions/check_user_permissions.py b/NearBeach/decorators/check_user_permissions/check_user_permissions.py deleted file mode 100644 index 7cddd80e7..000000000 --- a/NearBeach/decorators/check_user_permissions/check_user_permissions.py +++ /dev/null @@ -1,151 +0,0 @@ -# from django.core.exceptions import PermissionDenied -# from django.db.models import Q, Max -# from functools import wraps -# -# from NearBeach.models import ( -# UserGroup, -# Group, -# ObjectAssignment, -# KanbanCard, -# PermissionSet, -# RequirementItem, -# Requirement, -# ChangeTask, -# ) -# -# -# def check_change_task_permissions(min_permission_level): -# """Check the user's ability to interact with change tasks via the RFC""" -# def decorator(func): -# @wraps(func) -# def inner(request, *args, **kwargs): -# # If user is admin - grant them all permission -# if request.user.is_superuser: -# # Return the function with a user_level of 4 -# return func(request, *args, **kwargs, user_level=4) -# -# # Checks the user permissions -# passes, user_level = object_change_task(request, kwargs) -# -# if not passes: -# raise PermissionDenied -# -# if user_level >= min_permission_level: -# # Everything is fine - continue on -# return func(request, *args, **kwargs, user_level=user_level) -# -# # Does not meet conditions -# raise PermissionDenied -# -# return inner -# -# return decorator -# -# -# -# -# def check_user_kanban_permissions(min_permission_level): -# """ -# Checks the user permissions for the kanban board. It returns the user's permission -# levels, unless they have none. If there are none - it returns permission denied. -# """ -# def decorator(func): -# @wraps(func) -# def inner(request, kanban_card_id, *args, **kwargs): -# # If user is admin - grant them all permissions -# if request.user.is_superuser: -# # Return the function with a user_level of 4 -# return func(request, kanban_card_id, *args, **kwargs, user_level=4) -# -# passes, user_level = object_kanban_board(request, kanban_card_id) -# -# if not passes: -# raise PermissionDenied -# -# if user_level >= min_permission_level: -# # Everything is fine - continue on -# return func( -# request, kanban_card_id, *args, **kwargs, user_level=user_level -# ) -# -# # Does not meet conditions -# raise PermissionDenied -# -# return inner -# -# return decorator -# -# -# -# def check_user_permissions(min_permission_level, object_lookup=""): -# """ -# Check the user permissions - if they pass they can implement the function. -# Otherwise send them to the permission denied page -# """ -# -# -# -# def check_user_requirement_item_permissions(min_permission_level): -# """ -# Function is only used when checking user permissions against -# customers - as they are different -# """ -# -# def decorator(func): -# @wraps(func) -# def inner(request, *args, **kwargs): -# # if user is admin -grant them all permissions -# if request.user.is_superuser: -# # Return the function with a user_level of 4 -# return func(request, *args, **kwargs, user_level=4) -# -# passes, user_level = object_requirement_item(request, kwargs) -# -# if not passes: -# raise PermissionDenied -# -# if user_level >= min_permission_level: -# # Everything is fine - continue on -# return func(request, *args, **kwargs, user_level=user_level) -# -# # Does not meet conditions -# raise PermissionDenied -# -# return inner -# -# return decorator -# -# -# def check_rfc_permissions(min_permission_level): -# """Check the user's RFC permissions""" -# -# def decorator(func): -# @wraps(func) -# def inner(request, *args, **kwargs): -# # If user is admin - grant them all permissions -# if request.user.is_superuser: -# # Return the function with a user_level of 4 -# return func(request, *args, **kwargs, user_level=4) -# -# passes, user_level = object_rfc(request, kwargs) -# -# if not passes: -# raise PermissionDenied -# -# if user_level >= min_permission_level: -# # Everything is fine - continue on -# return func(request, *args, **kwargs, user_level=user_level) -# -# # Does not meet conditions -# raise PermissionDenied -# -# return inner -# -# return decorator -# -# -# # - - - - diff --git a/NearBeach/decorators/check_user_permissions/object_permissions.py b/NearBeach/decorators/check_user_permissions/object_permissions.py index 597211bcc..364174ffa 100644 --- a/NearBeach/decorators/check_user_permissions/object_permissions.py +++ b/NearBeach/decorators/check_user_permissions/object_permissions.py @@ -64,25 +64,28 @@ def inner(request, *args, **kwargs): else: destination = args[0] + # Place Extra Permissions into the kwargs + kwargs["extra_permissions"] = extra_permissions + # If sub object, use partials if destination == "kanban_card": # Setup kwargs to have kanban_card_id kwargs["kanban_card_id"] = kwargs["location_id"] - passes, user_level, extra_level = kanban_card_permissions(request, kwargs, extra_permissions) + passes, user_level, extra_level = kanban_card_permissions(request, kwargs) elif destination == "requirement_item": # Setup kwargs to have requirement item id kwargs["requirement_item_id"] = kwargs["location_id"] - passes, user_level, extra_level = requirement_item_permissions(request, kwargs, extra_permissions) + passes, user_level, extra_level = requirement_item_permissions(request, kwargs) elif destination == "change_task": # Setup kwargs to have change task id kwargs["change_task_id"] = kwargs["location_id"] - passes, user_level, extra_level = change_task_permissions(request, kwargs, extra_permissions) + passes, user_level, extra_level = change_task_permissions(request, kwargs) elif destination == "organisation": - passes, user_level, extra_level = organisation_permissions(request, kwargs, extra_permissions) + passes, user_level, extra_level = organisation_permissions(request, kwargs) elif destination == "customer": passes, user_level, extra_level = customer_permissions(request, kwargs) else: - passes, user_level, extra_level = generic_permissions(request, destination, kwargs, extra_permissions) + passes, user_level, extra_level = generic_permissions(request, destination, kwargs) if not passes: raise PermissionDenied @@ -99,7 +102,7 @@ def inner(request, *args, **kwargs): return decorator -def check_specific_object_permissions(min_permission_level, object_lookup): +def check_specific_object_permissions(min_permission_level, object_lookup, extra_permissions=""): """ Checks the user's permissions against the provided object_lookup. From here it will determine which partial permission it should @@ -117,16 +120,17 @@ def inner(request, *args, **kwargs): if object_lookup == "": raise PermissionDenied + # Add extra permissions to kwargs + # kwargs["extra_permissions"] = extra_permissions + # Use the FUNCTION_DICT to determine which partial permissions we need to # reference - passes, user_level, _ = FUNCTION_DICT[object_lookup](request, kwargs, "") + passes, user_level, extra_level = FUNCTION_DICT[object_lookup](request, kwargs) if not passes: raise PermissionDenied - raise error_403 - # HttpResponseRedirect()HttpResponseRedirect - if user_level >= min_permission_level: + if user_level >= min_permission_level or extra_level: # Everything is fine - continue on return func(request, *args, **kwargs, user_level=user_level) diff --git a/NearBeach/decorators/check_user_permissions/organisation_permissions.py b/NearBeach/decorators/check_user_permissions/organisation_permissions.py index bde84218d..dbd8cfeba 100644 --- a/NearBeach/decorators/check_user_permissions/organisation_permissions.py +++ b/NearBeach/decorators/check_user_permissions/organisation_permissions.py @@ -41,3 +41,45 @@ def inner(request, *args, **kwargs): return inner return decorator + + +def check_user_organisation_note_permissions(): + """ + Function is only used when checking user permissions against + organisations. Min Permission Level determines if the user + will have enough permission to proceed. + """ + + def decorator(func): + @wraps(func) + def inner(request, *args, **kwargs): + # if user is admin -grant them all permissions + if request.user.is_superuser: + # Return the function with a user_level of 4 + return func(request, *args, **kwargs, user_level=4) + + # Default user level is 0 + user_group_results = UserGroup.objects.filter( + is_deleted=False, + username=request.user, + ) + + # Get the max permission value from user_group_results + user_level = user_group_results.aggregate( + Max("permission_set__organisation") + )["permission_set__organisation__max"] + + extra_level = user_group_results.aggregate( + Max("permission_set__organisation_note"), + )["permission_set__organisation_note__max"] + + if user_level >= 2 or extra_level > 0: + # Everything is fine - continue on + return func(request, *args, **kwargs, user_level=user_level) + + # Does not meet conditions + raise PermissionDenied + + return inner + + return decorator \ No newline at end of file diff --git a/NearBeach/decorators/check_user_permissions/partials/change_task_permissions.py b/NearBeach/decorators/check_user_permissions/partials/change_task_permissions.py index 1e8d44bdc..63cdaf918 100644 --- a/NearBeach/decorators/check_user_permissions/partials/change_task_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/change_task_permissions.py @@ -2,7 +2,12 @@ from django.db.models import Max, Q -def change_task_permissions(request, kwargs, extra_permissions=""): +def change_task_permissions(request, kwargs): + # Extra Permissions + extra_permissions = "" + if "extra_permissions" in kwargs: + extra_permissions = kwargs.get("extra_permissions") + # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, @@ -47,10 +52,5 @@ def change_task_permissions(request, kwargs, extra_permissions=""): permission_set__document=1, ).count() > 0 - # if extra_permissions == "history": - # extra_level = user_group_results.filter( - # permission_set__rfc_history=1, - # ).count() > 0 - # Return return True, user_level, extra_level diff --git a/NearBeach/decorators/check_user_permissions/partials/generic_permissions.py b/NearBeach/decorators/check_user_permissions/partials/generic_permissions.py index 73c754107..016ed11db 100644 --- a/NearBeach/decorators/check_user_permissions/partials/generic_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/generic_permissions.py @@ -5,7 +5,12 @@ from NearBeach.models import Group, ObjectAssignment, UserGroup -def generic_permissions(request, object_lookup, kwargs, extra_permissions): +def generic_permissions(request, object_lookup, kwargs): + # Extra Permissions + extra_permissions = "" + if "extra_permissions" in kwargs: + extra_permissions = kwargs.get("extra_permissions") + # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, @@ -43,11 +48,9 @@ def generic_permissions(request, object_lookup, kwargs, extra_permissions): permission_set__document=1, ).count() > 0 - # TODO: Implement a more generic version, so we can include other objects like requirements, organisations, customers etc. - if object_lookup in ["project", "task"]: - if extra_permissions == "history": - extra_level = user_group_results.filter( - **{F"permission_set__{object_lookup}_history": 1} - ).count() > 0 + if extra_permissions == "note": + extra_level = user_group_results.filter( + **{F"permission_set__{object_lookup}_note": 1} + ).count() > 0 return True, user_level, extra_level diff --git a/NearBeach/decorators/check_user_permissions/partials/kanban_board_permissions.py b/NearBeach/decorators/check_user_permissions/partials/kanban_board_permissions.py index e88537cde..31b098afa 100644 --- a/NearBeach/decorators/check_user_permissions/partials/kanban_board_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/kanban_board_permissions.py @@ -3,7 +3,7 @@ # Internal Function -def kanban_board_permissions(request, kwargs, extra_permissions=""): +def kanban_board_permissions(request, kwargs): # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, diff --git a/NearBeach/decorators/check_user_permissions/partials/kanban_card_permissions.py b/NearBeach/decorators/check_user_permissions/partials/kanban_card_permissions.py index 7235263a7..bbc2c0545 100644 --- a/NearBeach/decorators/check_user_permissions/partials/kanban_card_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/kanban_card_permissions.py @@ -3,7 +3,12 @@ # Internal Function -def kanban_card_permissions(request, kwargs, extra_permissions): +def kanban_card_permissions(request, kwargs): + # Extra Permissions + extra_permissions = "" + if "extra_permissions" in kwargs: + extra_permissions = kwargs.get("extra_permissions") + # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, @@ -29,7 +34,7 @@ def kanban_card_permissions(request, kwargs, extra_permissions): # Check to make sure the user groups intersect if len(group_results) == 0: # There are no matching groups - i.e. the user does not have any permission - return False, 0 + return False, 0, False # Get the max permission value from user_group_results user_level = user_group_results.aggregate( @@ -43,9 +48,9 @@ def kanban_card_permissions(request, kwargs, extra_permissions): permission_set__document=1, ).count() > 0 - if extra_permissions == "history": + if extra_permissions == "note": extra_level = user_group_results.filter( - permission_set__kanban_comment=1, + permission_set__kanban_note=1, ).count() > 0 return True, user_level, extra_level diff --git a/NearBeach/decorators/check_user_permissions/partials/kanban_column_permissions.py b/NearBeach/decorators/check_user_permissions/partials/kanban_column_permissions.py index 6711ab026..6a9aab3d9 100644 --- a/NearBeach/decorators/check_user_permissions/partials/kanban_column_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/kanban_column_permissions.py @@ -3,7 +3,7 @@ # Internal Function -def kanban_column_permissions(request, kwargs, extra_permissions=""): +def kanban_column_permissions(request, kwargs): # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, diff --git a/NearBeach/decorators/check_user_permissions/partials/kanban_level_permissions.py b/NearBeach/decorators/check_user_permissions/partials/kanban_level_permissions.py index 7e2e68da6..e2b4d5a77 100644 --- a/NearBeach/decorators/check_user_permissions/partials/kanban_level_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/kanban_level_permissions.py @@ -3,7 +3,7 @@ # Internal Function -def kanban_level_permissions(request, kwargs, extra_permissions=""): +def kanban_level_permissions(request, kwargs): # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, diff --git a/NearBeach/decorators/check_user_permissions/partials/object_note_permissions.py b/NearBeach/decorators/check_user_permissions/partials/object_note_permissions.py index 43e21ee13..b2399c16a 100644 --- a/NearBeach/decorators/check_user_permissions/partials/object_note_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/object_note_permissions.py @@ -2,7 +2,7 @@ from django.db.models import Max, Q -def object_note_permissions(request, kwargs, extra_permissions=""): +def object_note_permissions(request, kwargs): """ Checks the user's permission to determine if they have permission to delete this note. Currently only; diff --git a/NearBeach/decorators/check_user_permissions/partials/organisation_permissions.py b/NearBeach/decorators/check_user_permissions/partials/organisation_permissions.py index 4f4d36a24..3637e3df3 100644 --- a/NearBeach/decorators/check_user_permissions/partials/organisation_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/organisation_permissions.py @@ -2,7 +2,10 @@ from NearBeach.models import UserGroup -def organisation_permissions(request, kwargs, extra_permissions=""): +def organisation_permissions(request, kwargs): + # Extra Permissions + extra_permissions = kwargs.get("extra_permissions", "") + # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, @@ -21,9 +24,9 @@ def organisation_permissions(request, kwargs, extra_permissions=""): permission_set__document=1, ).count() > 0 - # if extra_permissions == "history": - # extra_level = user_group_results.filter( - # permission_set__organisation_history=1, - # ).count() > 0 + if extra_permissions == "organisation_note": + extra_level = user_group_results.filter( + permission_set__organisation_note=1, + ).count() > 0 return True, user_level, extra_level diff --git a/NearBeach/decorators/check_user_permissions/partials/project_permissions.py b/NearBeach/decorators/check_user_permissions/partials/project_permissions.py index 6ffba9c82..07c03a92f 100644 --- a/NearBeach/decorators/check_user_permissions/partials/project_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/project_permissions.py @@ -2,7 +2,7 @@ from django.db.models import Max, Q -def project_permissions(request, kwargs, extra_permissions=""): +def project_permissions(request, kwargs): # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, diff --git a/NearBeach/decorators/check_user_permissions/partials/request_for_change_permissions.py b/NearBeach/decorators/check_user_permissions/partials/request_for_change_permissions.py index 284217269..dcaefab11 100644 --- a/NearBeach/decorators/check_user_permissions/partials/request_for_change_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/request_for_change_permissions.py @@ -3,7 +3,7 @@ # Internal Function -def request_for_change_permissions(request, kwargs, extra_permissions=""): +def request_for_change_permissions(request, kwargs): # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, diff --git a/NearBeach/decorators/check_user_permissions/partials/requirement_item_permissions.py b/NearBeach/decorators/check_user_permissions/partials/requirement_item_permissions.py index 1832e8a5c..46ef995b1 100644 --- a/NearBeach/decorators/check_user_permissions/partials/requirement_item_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/requirement_item_permissions.py @@ -2,7 +2,12 @@ from django.db.models import Max, Q -def requirement_item_permissions(request, kwargs, extra_permissions=""): +def requirement_item_permissions(request, kwargs): + # Extra Permissions + extra_permissions = "" + if "extra_permissions" in kwargs: + extra_permissions = kwargs.get("extra_permissions") + # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, @@ -52,9 +57,9 @@ def requirement_item_permissions(request, kwargs, extra_permissions=""): permission_set__document=1, ).count() > 0 - # if extra_permissions == "history": - # extra_level = user_group_results.filter( - # permission_set__requirement_item_history=1 - # ).count() > 0 + if extra_permissions == "note": + extra_level = user_group_results.filter( + permission_set__requirement_item_note=1 + ).count() > 0 return True, user_level, extra_level diff --git a/NearBeach/decorators/check_user_permissions/partials/requirement_permissions.py b/NearBeach/decorators/check_user_permissions/partials/requirement_permissions.py index 848fd90cc..c4750ffed 100644 --- a/NearBeach/decorators/check_user_permissions/partials/requirement_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/requirement_permissions.py @@ -2,7 +2,7 @@ from django.db.models import Max, Q -def requirement_permissions(request, kwargs, extra_permissions=""): +def requirement_permissions(request, kwargs): # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, diff --git a/NearBeach/decorators/check_user_permissions/partials/tag_permissions.py b/NearBeach/decorators/check_user_permissions/partials/tag_permissions.py index 94a12af09..063e55252 100644 --- a/NearBeach/decorators/check_user_permissions/partials/tag_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/tag_permissions.py @@ -2,7 +2,7 @@ from NearBeach.models import UserGroup -def tag_permissions(request, kwargs, extra_permissions=""): +def tag_permissions(request, kwargs): # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, diff --git a/NearBeach/decorators/check_user_permissions/partials/task_permissions.py b/NearBeach/decorators/check_user_permissions/partials/task_permissions.py index 37fbcb768..b4ce8ff74 100644 --- a/NearBeach/decorators/check_user_permissions/partials/task_permissions.py +++ b/NearBeach/decorators/check_user_permissions/partials/task_permissions.py @@ -2,7 +2,7 @@ from django.db.models import Max, Q -def task_permissions(request, kwargs, extra_permissions=""): +def task_permissions(request, kwargs): # Default user level is 0 user_group_results = UserGroup.objects.filter( is_deleted=False, diff --git a/NearBeach/fixtures/NearBeach_basic_setup.json b/NearBeach/fixtures/NearBeach_basic_setup.json index a0f4b7749..61d4990dc 100644 --- a/NearBeach/fixtures/NearBeach_basic_setup.json +++ b/NearBeach/fixtures/NearBeach_basic_setup.json @@ -2094,6 +2094,33 @@ "is_deleted": false } }, +{ + "model": "NearBeach.objectassignment", + "pk": 39, + "fields": { + "assigned_user": 8, + "group_id": null, + "requirement": null, + "requirement_item": null, + "project": null, + "task": 2, + "kanban_board": null, + "kanban_card": null, + "request_for_change": null, + "customer": null, + "organisation": null, + "change_task": null, + "meta_object": null, + "meta_object_title": "", + "meta_object_status": "", + "link_relationship": "", + "parent_link": "", + "date_created": "2024-09-25T09:46:04.567Z", + "date_modified": "2024-09-25T09:46:04.567Z", + "change_user": 7, + "is_deleted": false + } +}, { "model": "NearBeach.objectnote", "pk": 1, @@ -2173,18 +2200,21 @@ "administration_create_user": 4, "bug_client": 4, "customer": 4, - "kanban_board": 0, + "kanban_board": 4, "kanban_card": 4, "organisation": 4, "project": 4, - "request_for_change": 0, + "request_for_change": 4, "requirement": 4, "task": 4, - "tag": 0, + "tag": 4, "document": 1, - "kanban_comment": 1, - "project_history": 1, - "task_history": 1, + "kanban_note": 1, + "project_note": 1, + "task_note": 1, + "requirement_note": 0, + "requirement_item_note": 0, + "organisation_note": 0, "date_created": "2023-02-15T08:56:14.213Z", "date_modified": "2023-02-15T08:56:14.213Z", "change_user": 1, @@ -2211,9 +2241,12 @@ "task": 4, "tag": 4, "document": 0, - "kanban_comment": 0, - "project_history": 0, - "task_history": 0, + "kanban_note": 0, + "project_note": 0, + "task_note": 0, + "requirement_note": 0, + "requirement_item_note": 0, + "organisation_note": 0, "date_created": "2023-02-15T08:59:39.865Z", "date_modified": "2023-05-24T11:22:55.972Z", "change_user": 1, @@ -2240,9 +2273,12 @@ "task": 3, "tag": 3, "document": 0, - "kanban_comment": 0, - "project_history": 0, - "task_history": 0, + "kanban_note": 0, + "project_note": 0, + "task_note": 0, + "requirement_note": 0, + "requirement_item_note": 0, + "organisation_note": 0, "date_created": "2023-02-15T09:00:25.979Z", "date_modified": "2023-05-24T11:23:06.295Z", "change_user": 1, @@ -2269,9 +2305,12 @@ "task": 2, "tag": 2, "document": 0, - "kanban_comment": 0, - "project_history": 0, - "task_history": 0, + "kanban_note": 0, + "project_note": 0, + "task_note": 0, + "requirement_note": 0, + "requirement_item_note": 0, + "organisation_note": 0, "date_created": "2023-02-15T09:01:39.074Z", "date_modified": "2023-05-24T11:23:18.253Z", "change_user": 1, @@ -2298,9 +2337,12 @@ "task": 1, "tag": 1, "document": 0, - "kanban_comment": 0, - "project_history": 0, - "task_history": 0, + "kanban_note": 0, + "project_note": 0, + "task_note": 0, + "requirement_note": 0, + "requirement_item_note": 0, + "organisation_note": 0, "date_created": "2023-02-15T09:02:30.893Z", "date_modified": "2023-05-24T11:23:33.179Z", "change_user": 1, @@ -2327,11 +2369,14 @@ "task": 1, "tag": 1, "document": 1, - "kanban_comment": 1, - "project_history": 1, - "task_history": 1, + "kanban_note": 1, + "project_note": 1, + "task_note": 1, + "requirement_note": 1, + "requirement_item_note": 1, + "organisation_note": 1, "date_created": "2023-02-15T09:03:06.209Z", - "date_modified": "2023-05-24T11:23:42.894Z", + "date_modified": "2024-09-25T10:00:38.360Z", "change_user": 1, "is_deleted": false } @@ -3070,6 +3115,21 @@ "is_deleted": false } }, +{ + "model": "NearBeach.usergroup", + "pk": 8, + "fields": { + "username": 8, + "group": 2, + "permission_set": 6, + "report_to": null, + "group_leader": false, + "date_created": "2024-09-25T09:10:37.683Z", + "date_modified": "2024-09-25T09:10:37.683Z", + "change_user": 7, + "is_deleted": false + } +}, { "model": "NearBeach.userjob", "pk": 1, @@ -3118,6 +3178,38 @@ "is_deleted": false } }, +{ + "model": "NearBeach.userjob", + "pk": 4, + "fields": { + "username": 5, + "job_date": "2024-09-26", + "job_sort_number": 0, + "kanban_card": null, + "project": null, + "task": 2, + "date_created": "2024-09-25T09:42:44.248Z", + "date_modified": "2024-09-25T09:42:47.033Z", + "change_user": 5, + "is_deleted": false + } +}, +{ + "model": "NearBeach.userjob", + "pk": 5, + "fields": { + "username": 8, + "job_date": "2024-09-25", + "job_sort_number": 0, + "kanban_card": null, + "project": null, + "task": 2, + "date_created": "2024-09-25T09:46:15.465Z", + "date_modified": "2024-09-25T09:46:15.465Z", + "change_user": 8, + "is_deleted": false + } +}, { "model": "NearBeach.usersetting", "pk": 1, @@ -3129,6 +3221,17 @@ } } }, +{ + "model": "NearBeach.usersetting", + "pk": 2, + "fields": { + "username": 8, + "setting_type": "theme", + "setting_data": { + "theme": "dark" + } + } +}, { "model": "admin.logentry", "pk": 1, @@ -3143,233 +3246,2607 @@ } }, { - "model": "auth.user", + "model": "auth.permission", "pk": 1, "fields": { - "password": "pbkdf2_sha256$720000$xBoXxSEeVXBdR0rm6efbo0$//JuZL1sOsIXbgd6qdboRpMTz0MgwRi9Oi5AsuaSVx8=", - "last_login": "2024-05-13T08:35:31.081Z", - "is_superuser": true, - "username": "admin", - "first_name": "Admin", - "last_name": "User", - "email": "support@nearbeach.org", - "is_staff": true, - "is_active": true, - "date_joined": "2023-02-15T08:52:25.503Z", - "groups": [], - "user_permissions": [] + "name": "Can add change task", + "content_type": 1, + "codename": "add_changetask" } }, { - "model": "auth.user", + "model": "auth.permission", "pk": 2, "fields": { - "password": "pbkdf2_sha256$720000$qPwbmUsqdz96LSSCZoFdkm$yT30PhvOS91E/Jn/ZS0fstZYzWLSgvzLHLhJc8V4xSg=", - "last_login": "2024-05-13T08:35:38.559Z", - "is_superuser": false, - "username": "team_leader", - "first_name": "Team", - "last_name": "Leader", - "email": "support@nearbeach.org", - "is_staff": false, - "is_active": true, - "date_joined": "2023-02-15T09:08:39.426Z", - "groups": [], - "user_permissions": [] + "name": "Can change change task", + "content_type": 1, + "codename": "change_changetask" } }, { - "model": "auth.user", + "model": "auth.permission", "pk": 3, "fields": { - "password": "pbkdf2_sha256$390000$fciTE1U9rkrQT7CxjHi2ae$B7zRiPi1Yvj6DsipShCbeJ2vaB2eSlOt7V7T8Pd1NDQ=", - "last_login": null, - "is_superuser": false, - "username": "team_member", - "first_name": "Team", - "last_name": "Member", - "email": "support@nearbeach.org", - "is_staff": false, - "is_active": true, - "date_joined": "2023-02-15T09:09:18.372Z", - "groups": [], - "user_permissions": [] + "name": "Can delete change task", + "content_type": 1, + "codename": "delete_changetask" } }, { - "model": "auth.user", + "model": "auth.permission", "pk": 4, "fields": { - "password": "pbkdf2_sha256$390000$g4K0zwz343vSUFJ98oChdw$kVnvD01xefHMYKJlVBCzHc7fsgQ37IobChg7e0WCCRc=", - "last_login": null, - "is_superuser": false, - "username": "team_intern", - "first_name": "Team", - "last_name": "Intern", - "email": "support@nearbeach.org", - "is_staff": false, - "is_active": true, - "date_joined": "2023-02-15T09:09:54.016Z", - "groups": [], - "user_permissions": [] + "name": "Can view change task", + "content_type": 1, + "codename": "view_changetask" } }, { - "model": "auth.user", + "model": "auth.permission", "pk": 5, "fields": { - "password": "pbkdf2_sha256$720000$lme60tWetgq1EdCCjo4iPZ$tGR4stCLa56Rt/LjtHYKCff2RDtJ0RJ4pFr4fC24TXo=", - "last_login": "2024-05-13T10:30:22.990Z", - "is_superuser": false, - "username": "read_only", - "first_name": "Read", - "last_name": "Only", - "email": "support@nearbeach.org", - "is_staff": false, - "is_active": true, - "date_joined": "2023-02-15T09:10:40.680Z", - "groups": [], - "user_permissions": [] + "name": "Can add customer", + "content_type": 2, + "codename": "add_customer" } }, { - "model": "auth.user", + "model": "auth.permission", "pk": 6, "fields": { - "password": "pbkdf2_sha256$390000$3pWQzzL3ZWG5rSXBMRZ1nU$phvpS5OFRmW+BHal2eEViCtXpGFIo47RVcyUWTSjjLg=", - "last_login": null, - "is_superuser": false, - "username": "no_group", - "first_name": "No", - "last_name": "Group", - "email": "support@nearbeach.org", - "is_staff": false, - "is_active": true, - "date_joined": "2023-02-15T09:11:23.252Z", - "groups": [], - "user_permissions": [] + "name": "Can change customer", + "content_type": 2, + "codename": "change_customer" } }, { - "model": "auth.user", + "model": "auth.permission", "pk": 7, "fields": { - "password": "pbkdf2_sha256$600000$mm3IyCbjcofqWTSssaWcu6$dmbngBObwSr8Glv4jKyL1LandqtPNJ3epNfTT9dTs4U=", - "last_login": "2023-09-06T09:37:03.266Z", - "is_superuser": true, - "username": "dark_admin", - "first_name": "Dark", - "last_name": "Admin", - "email": "support@nearbeach.org", - "is_staff": false, - "is_active": true, - "date_joined": "2023-09-06T09:36:15.453Z", - "groups": [], - "user_permissions": [] + "name": "Can delete customer", + "content_type": 2, + "codename": "delete_customer" } }, { - "model": "sessions.session", - "pk": "1dxxe5glzsbvq94spcivlz28kvq8vazx", + "model": "auth.permission", + "pk": 8, "fields": { - "session_data": ".eJxVjEEOgyAQRe_CuiEoI4wuu-8ZyABjtTXagKya3r2SuGi3_73_3sJR2SdXMic3RzGITlx-N0_hyWsF8UHrfZNhW_c0e1kVedIsb1vk5Xq6f4GJ8nS8jUdq0IIhrbANYDmy5l5FGAMCtR1Y4xtkYgjYKd1Ab9AAe2DSBPqIztnl8uJUs2IYacn8-QK2uz9a:1s6Swp:5KDFXsDZsmVAprYtI7TP_dX-ddlKrYDYujwVQTCZbSU", - "expire_date": "2024-05-27T10:30:23.003Z" + "name": "Can view customer", + "content_type": 2, + "codename": "view_customer" } }, { - "model": "sessions.session", - "pk": "4ihdjbrhcx7hokg3uisrpinxhca0e34d", + "model": "auth.permission", + "pk": 9, "fields": { - "session_data": ".eJxVjEEOwiAQRe_C2hAYoNQu3XsGwgyDrZrWQFkZ726bdKHb_95_bxFiW8fQKpcwJTEILU6_G0Z68LyDdI_zbZG0zGuZUO6KPGiV1yXx83K4f4Ex1nF7O0Ai68FFdqlPkdH1nBUmC-SzNqAUeaMMGtuBBsAz6q7LtrfaGqdoi0411PbismfFsJbGny-LGT7k:1rWvse:lyt6TXjJYt27JiKtOvUdRIF7rY3B9FsAx6nGOaFkuVA", - "expire_date": "2024-02-19T10:07:12.158Z" + "name": "Can add document", + "content_type": 3, + "codename": "add_document" } }, { - "model": "sessions.session", - "pk": "6ijlztlbeuobpqj85nn5sz82nxb27b6e", + "model": "auth.permission", + "pk": 10, "fields": { - "session_data": ".eJxVjMsOwiAUBf-FtSHQF-DSvd9AuC9bNa2BsjL-u23ShW7PzJm3iqmuY6yFc5xInZVVp98NEj543gHd03xbNC7zmifQu6IPWvR1IX5eDvcvMKYybm8YerLGJ9dZsCKBxAV0BJ4QWtMIQOux6xu2GFhcFxjZGRnA9uJbNlt0KrHUF-c9q85rrvz5Ar6eQGE:1r3DhY:kBkq63w57t7pLz9nNmDjiZ9gx_r6SSDLMLyMP__LaKY", - "expire_date": "2023-11-29T11:04:56.353Z" + "name": "Can change document", + "content_type": 3, + "codename": "change_document" } }, { - "model": "sessions.session", - "pk": "8m5uznyh101is14fmwrekdyh1rf0y6ft", + "model": "auth.permission", + "pk": 11, "fields": { - "session_data": ".eJxVjEEOwiAQRe_C2hAYoNQu3XsGwgyDrZrWQFkZ726bdKHb_95_bxFiW8fQKpcwJTEILU6_G0Z68LyDdI_zbZG0zGuZUO6KPGiV1yXx83K4f4Ex1nF7O0Ai68FFdqlPkdH1nBUmC-SzNqAUeaMMGtuBBsAz6q7LtrfaGqdoi0411PbismfFsJbGny-LGT7k:1rW4H5:z0s-sSFp5Omsk3ltbIEgBmp6Ll-0CCRZo0oHPsZgHl4", - "expire_date": "2024-02-17T00:52:51.968Z" + "name": "Can delete document", + "content_type": 3, + "codename": "delete_document" } }, { - "model": "sessions.session", - "pk": "922i2920gbdv4xctpizrk8pypiaysael", + "model": "auth.permission", + "pk": 12, "fields": { - "session_data": ".eJxVjEEOwiAQRe_C2hAYoNQu3XsGwgyDrZrWQFkZ726bdKHb_95_bxFiW8fQKpcwJTEILU6_G0Z68LyDdI_zbZG0zGuZUO6KPGiV1yXx83K4f4Ex1nF7O0Ai68FFdqlPkdH1nBUmC-SzNqAUeaMMGtuBBsAz6q7LtrfaGqdoi0411PbismfFsJbGny-LGT7k:1s6Sva:uc1eEmvvEv9_L46aDGeLvGYfSLgwPVARk6sdNAHWLGk", - "expire_date": "2024-05-27T10:29:06.063Z" + "name": "Can view document", + "content_type": 3, + "codename": "view_document" } }, { - "model": "sessions.session", - "pk": "bjg85wdarjo3cgh7m5n5ghtyuml55cpw", + "model": "auth.permission", + "pk": 13, "fields": { - "session_data": ".eJxVjjsOwjAQRO_iGln-yklKes5gjb1rEkAJipMKcXewlALaeTNP8xIR-zbGvfIaJxKDMOL0myXkO88N0A3zdZF5mbd1SrJV5EGrvCzEj_PR_ROMqON3nYKzSoOSt9YA1rJP8KZouD4HogJCVlmHYgz3Fsjadz5rx0oF17VXU411f_LatGIoeFR-fwDnpUAT:1rWu2C:w9CQ0CqBFz3eAoPmkTJMR7Jl_30-3aTVL3156Fwm8UA", - "expire_date": "2024-02-19T08:08:56.987Z" + "name": "Can add group", + "content_type": 4, + "codename": "add_group" } }, { - "model": "sessions.session", - "pk": "g9wggp3nsnnsn06gb2s4807w9536fmli", + "model": "auth.permission", + "pk": 14, "fields": { - "session_data": ".eJxVjDsOgzAQBe_iOrLWBptPmT5nsNa7SyCJANm4inL3gESRtG_mzVsFLNsYSpYUJla9Muryu0Wkp8wH4AfO90XTMm9pivpQ9Emzvi0sr-vp_gVGzOP-loYHdrECh-Qje0CBCtC4drDka0RjW4hkGts5Ai-NjSI8CIN0Rmrao1MOuaySjqzqt1Tk8wW8ZUBn:1q1mZn:tXT9RZUZ_xCydCcGBQH0DKMpyY0Vm2j9YeaOsqaTWug", - "expire_date": "2023-06-07T11:22:43.278Z" + "name": "Can change group", + "content_type": 4, + "codename": "change_group" } }, { - "model": "sessions.session", - "pk": "jf4rxb43g0qzwg0jblkwjg2xqtoz0ope", + "model": "auth.permission", + "pk": 15, "fields": { - "session_data": ".eJxVjjsOwjAQRO_iGln-yklKes5gjb1rEkAJipMKcXewlALaeTNP8xIR-zbGvfIaJxKDMOL0myXkO88N0A3zdZF5mbd1SrJV5EGrvCzEj_PR_ROMqON3nYKzSoOSt9YA1rJP8KZouD4HogJCVlmHYgz3Fsjadz5rx0oF17VXU411f_LatGIoeFR-fwDnpUAT:1s6R9m:qyY_lFApfV6G3NPniA1Nzshbmg-FY9fJYvUlZu5IFRs", - "expire_date": "2024-05-27T08:35:38.574Z" + "name": "Can delete group", + "content_type": 4, + "codename": "delete_group" } }, { - "model": "sessions.session", - "pk": "kml4rul4ztacc8rth3cm01bw5x5i983r", + "model": "auth.permission", + "pk": 16, "fields": { - "session_data": ".eJxVjDsOgzAQBe_iOrLWBptPmT5nsNa7SyCJANm4inL3gESRtG_mzVsFLNsYSpYUJla9Muryu0Wkp8wH4AfO90XTMm9pivpQ9Emzvi0sr-vp_gVGzOP-loYHdrECh-Qje0CBCtC4drDka0RjW4hkGts5Ai-NjSI8CIN0Rmrao1MOuaySjqzqt1Tk8wW8ZUBn:1pU3v8:fiZm-IlzIW779V5YsFMBp0JR4B4L2Jft8b9ZHIKdGn4", - "expire_date": "2023-03-06T11:01:22.209Z" + "name": "Can view group", + "content_type": 4, + "codename": "view_group" } }, { - "model": "sessions.session", - "pk": "mapudo1arv41bj7qaevnliswe5d9l6tu", + "model": "auth.permission", + "pk": 17, "fields": { - "session_data": ".eJxVjEEOwiAQRe_C2hAybWHo0r1nIAMMgjatKe3KeHdL0oVu_3v_vYWjfctur7y6EsUoQFx-N0_hyXMD8UHzfZFhmbe1eNkUedIqb0vk6Xq6f4FMNR9vqw3rHjwmJLJoAJSyqU8QPcTENmjGDjwjQlM9DxBUT6HDCIaSOqKlurq_eG1ZMSaaKn--zyE_-w:1pU2E1:GrhctJb4A0BHVABE_4btsX6s-BtlIgVJsGHnI_I6ukM", - "expire_date": "2023-03-06T09:12:45.111Z" + "name": "Can add kanban board", + "content_type": 5, + "codename": "add_kanbanboard" } }, { - "model": "sessions.session", - "pk": "owt532l68p5tnjt8utn8fg5q06vsiwmw", + "model": "auth.permission", + "pk": 18, "fields": { - "session_data": ".eJxVjEEOgyAQRe_CuiEIo4jL7nsGMjBDtW3UgKya3r2auGi3_73_3sJj3UZfC2c_kRiEFZffLWB88nwAeuB8X2Rc5i1PQR6KPGmRt4X4dT3dv8CIZdzfOnZsnU5Guw6MSx0y9GwILTrVABIF2yvqGSIlpU1yChib1DK3FgLs0an4UlfOR1YMW678-QKagj_Z:1qdoy7:ikguhaQ5OjgCpnqvgjdUBVUxwwsYoewvRLjwf1Cl2SA", - "expire_date": "2023-09-20T09:37:03.276Z" + "name": "Can change kanban board", + "content_type": 5, + "codename": "change_kanbanboard" } }, { - "model": "sessions.session", - "pk": "vtnt5jh48qc9lm3apgq6ppwyqwbsmbkc", + "model": "auth.permission", + "pk": 19, "fields": { - "session_data": ".eJxVjDsOgzAQBe_iOrLWBptPmT5nsNa7SyCJANm4inL3gESRtG_mzVsFLNsYSpYUJla9Muryu0Wkp8wH4AfO90XTMm9pivpQ9Emzvi0sr-vp_gVGzOP-loYHdrECh-Qje0CBCtC4drDka0RjW4hkGts5Ai-NjSI8CIN0Rmrao1MOuaySjqzqt1Tk8wW8ZUBn:1pSDwg:7aeBahHYeqv4iuCmRuzXy6KRCL7lDDZm5OntHf58-jQ", - "expire_date": "2023-03-01T09:19:22.771Z" + "name": "Can delete kanban board", + "content_type": 5, + "codename": "delete_kanbanboard" } }, { - "model": "sessions.session", - "pk": "w3iepd6fu5cfao0mpwh97dp39fgh7ujn", + "model": "auth.permission", + "pk": 20, "fields": { - "session_data": ".eJxVjEEOwiAQRe_C2hAYoNQu3XsGwgyDrZrWQFkZ726bdKHb_95_bxFiW8fQKpcwJTEILU6_G0Z68LyDdI_zbZG0zGuZUO6KPGiV1yXx83K4f4Ex1nF7O0Ai68FFdqlPkdH1nBUmC-SzNqAUeaMMGtuBBsAz6q7LtrfaGqdoi0411PbismfFsJbGny-LGT7k:1rm8cG:YKlIkAtjptFKY3cmZkt8jsVLAhI7ajhEUr0BE4D7S5Y", - "expire_date": "2024-04-01T08:45:08.164Z" + "name": "Can view kanban board", + "content_type": 5, + "codename": "view_kanbanboard" + } +}, +{ + "model": "auth.permission", + "pk": 21, + "fields": { + "name": "Can add kanban card", + "content_type": 6, + "codename": "add_kanbancard" + } +}, +{ + "model": "auth.permission", + "pk": 22, + "fields": { + "name": "Can change kanban card", + "content_type": 6, + "codename": "change_kanbancard" + } +}, +{ + "model": "auth.permission", + "pk": 23, + "fields": { + "name": "Can delete kanban card", + "content_type": 6, + "codename": "delete_kanbancard" + } +}, +{ + "model": "auth.permission", + "pk": 24, + "fields": { + "name": "Can view kanban card", + "content_type": 6, + "codename": "view_kanbancard" + } +}, +{ + "model": "auth.permission", + "pk": 25, + "fields": { + "name": "Can add list of requirement item status", + "content_type": 7, + "codename": "add_listofrequirementitemstatus" + } +}, +{ + "model": "auth.permission", + "pk": 26, + "fields": { + "name": "Can change list of requirement item status", + "content_type": 7, + "codename": "change_listofrequirementitemstatus" + } +}, +{ + "model": "auth.permission", + "pk": 27, + "fields": { + "name": "Can delete list of requirement item status", + "content_type": 7, + "codename": "delete_listofrequirementitemstatus" + } +}, +{ + "model": "auth.permission", + "pk": 28, + "fields": { + "name": "Can view list of requirement item status", + "content_type": 7, + "codename": "view_listofrequirementitemstatus" + } +}, +{ + "model": "auth.permission", + "pk": 29, + "fields": { + "name": "Can add list of requirement item type", + "content_type": 8, + "codename": "add_listofrequirementitemtype" + } +}, +{ + "model": "auth.permission", + "pk": 30, + "fields": { + "name": "Can change list of requirement item type", + "content_type": 8, + "codename": "change_listofrequirementitemtype" + } +}, +{ + "model": "auth.permission", + "pk": 31, + "fields": { + "name": "Can delete list of requirement item type", + "content_type": 8, + "codename": "delete_listofrequirementitemtype" + } +}, +{ + "model": "auth.permission", + "pk": 32, + "fields": { + "name": "Can view list of requirement item type", + "content_type": 8, + "codename": "view_listofrequirementitemtype" + } +}, +{ + "model": "auth.permission", + "pk": 33, + "fields": { + "name": "Can add list of requirement status", + "content_type": 9, + "codename": "add_listofrequirementstatus" + } +}, +{ + "model": "auth.permission", + "pk": 34, + "fields": { + "name": "Can change list of requirement status", + "content_type": 9, + "codename": "change_listofrequirementstatus" + } +}, +{ + "model": "auth.permission", + "pk": 35, + "fields": { + "name": "Can delete list of requirement status", + "content_type": 9, + "codename": "delete_listofrequirementstatus" + } +}, +{ + "model": "auth.permission", + "pk": 36, + "fields": { + "name": "Can view list of requirement status", + "content_type": 9, + "codename": "view_listofrequirementstatus" + } +}, +{ + "model": "auth.permission", + "pk": 37, + "fields": { + "name": "Can add list of requirement type", + "content_type": 10, + "codename": "add_listofrequirementtype" + } +}, +{ + "model": "auth.permission", + "pk": 38, + "fields": { + "name": "Can change list of requirement type", + "content_type": 10, + "codename": "change_listofrequirementtype" + } +}, +{ + "model": "auth.permission", + "pk": 39, + "fields": { + "name": "Can delete list of requirement type", + "content_type": 10, + "codename": "delete_listofrequirementtype" + } +}, +{ + "model": "auth.permission", + "pk": 40, + "fields": { + "name": "Can view list of requirement type", + "content_type": 10, + "codename": "view_listofrequirementtype" + } +}, +{ + "model": "auth.permission", + "pk": 41, + "fields": { + "name": "Can add list of rfc status", + "content_type": 11, + "codename": "add_listofrfcstatus" + } +}, +{ + "model": "auth.permission", + "pk": 42, + "fields": { + "name": "Can change list of rfc status", + "content_type": 11, + "codename": "change_listofrfcstatus" + } +}, +{ + "model": "auth.permission", + "pk": 43, + "fields": { + "name": "Can delete list of rfc status", + "content_type": 11, + "codename": "delete_listofrfcstatus" + } +}, +{ + "model": "auth.permission", + "pk": 44, + "fields": { + "name": "Can view list of rfc status", + "content_type": 11, + "codename": "view_listofrfcstatus" + } +}, +{ + "model": "auth.permission", + "pk": 45, + "fields": { + "name": "Can add organisation", + "content_type": 12, + "codename": "add_organisation" + } +}, +{ + "model": "auth.permission", + "pk": 46, + "fields": { + "name": "Can change organisation", + "content_type": 12, + "codename": "change_organisation" + } +}, +{ + "model": "auth.permission", + "pk": 47, + "fields": { + "name": "Can delete organisation", + "content_type": 12, + "codename": "delete_organisation" + } +}, +{ + "model": "auth.permission", + "pk": 48, + "fields": { + "name": "Can view organisation", + "content_type": 12, + "codename": "view_organisation" + } +}, +{ + "model": "auth.permission", + "pk": 49, + "fields": { + "name": "Can add permission set", + "content_type": 13, + "codename": "add_permissionset" + } +}, +{ + "model": "auth.permission", + "pk": 50, + "fields": { + "name": "Can change permission set", + "content_type": 13, + "codename": "change_permissionset" + } +}, +{ + "model": "auth.permission", + "pk": 51, + "fields": { + "name": "Can delete permission set", + "content_type": 13, + "codename": "delete_permissionset" + } +}, +{ + "model": "auth.permission", + "pk": 52, + "fields": { + "name": "Can view permission set", + "content_type": 13, + "codename": "view_permissionset" + } +}, +{ + "model": "auth.permission", + "pk": 53, + "fields": { + "name": "Can add request for change", + "content_type": 14, + "codename": "add_requestforchange" + } +}, +{ + "model": "auth.permission", + "pk": 54, + "fields": { + "name": "Can change request for change", + "content_type": 14, + "codename": "change_requestforchange" + } +}, +{ + "model": "auth.permission", + "pk": 55, + "fields": { + "name": "Can delete request for change", + "content_type": 14, + "codename": "delete_requestforchange" + } +}, +{ + "model": "auth.permission", + "pk": 56, + "fields": { + "name": "Can view request for change", + "content_type": 14, + "codename": "view_requestforchange" + } +}, +{ + "model": "auth.permission", + "pk": 57, + "fields": { + "name": "Can add requirement", + "content_type": 15, + "codename": "add_requirement" + } +}, +{ + "model": "auth.permission", + "pk": 58, + "fields": { + "name": "Can change requirement", + "content_type": 15, + "codename": "change_requirement" + } +}, +{ + "model": "auth.permission", + "pk": 59, + "fields": { + "name": "Can delete requirement", + "content_type": 15, + "codename": "delete_requirement" + } +}, +{ + "model": "auth.permission", + "pk": 60, + "fields": { + "name": "Can view requirement", + "content_type": 15, + "codename": "view_requirement" + } +}, +{ + "model": "auth.permission", + "pk": 61, + "fields": { + "name": "Can add tag", + "content_type": 16, + "codename": "add_tag" + } +}, +{ + "model": "auth.permission", + "pk": 62, + "fields": { + "name": "Can change tag", + "content_type": 16, + "codename": "change_tag" + } +}, +{ + "model": "auth.permission", + "pk": 63, + "fields": { + "name": "Can delete tag", + "content_type": 16, + "codename": "delete_tag" + } +}, +{ + "model": "auth.permission", + "pk": 64, + "fields": { + "name": "Can view tag", + "content_type": 16, + "codename": "view_tag" + } +}, +{ + "model": "auth.permission", + "pk": 65, + "fields": { + "name": "Can add task", + "content_type": 17, + "codename": "add_task" + } +}, +{ + "model": "auth.permission", + "pk": 66, + "fields": { + "name": "Can change task", + "content_type": 17, + "codename": "change_task" + } +}, +{ + "model": "auth.permission", + "pk": 67, + "fields": { + "name": "Can delete task", + "content_type": 17, + "codename": "delete_task" + } +}, +{ + "model": "auth.permission", + "pk": 68, + "fields": { + "name": "Can view task", + "content_type": 17, + "codename": "view_task" + } +}, +{ + "model": "auth.permission", + "pk": 69, + "fields": { + "name": "Can add user profile picture", + "content_type": 18, + "codename": "add_userprofilepicture" + } +}, +{ + "model": "auth.permission", + "pk": 70, + "fields": { + "name": "Can change user profile picture", + "content_type": 18, + "codename": "change_userprofilepicture" + } +}, +{ + "model": "auth.permission", + "pk": 71, + "fields": { + "name": "Can delete user profile picture", + "content_type": 18, + "codename": "delete_userprofilepicture" + } +}, +{ + "model": "auth.permission", + "pk": 72, + "fields": { + "name": "Can view user profile picture", + "content_type": 18, + "codename": "view_userprofilepicture" + } +}, +{ + "model": "auth.permission", + "pk": 73, + "fields": { + "name": "Can add user group", + "content_type": 19, + "codename": "add_usergroup" + } +}, +{ + "model": "auth.permission", + "pk": 74, + "fields": { + "name": "Can change user group", + "content_type": 19, + "codename": "change_usergroup" + } +}, +{ + "model": "auth.permission", + "pk": 75, + "fields": { + "name": "Can delete user group", + "content_type": 19, + "codename": "delete_usergroup" + } +}, +{ + "model": "auth.permission", + "pk": 76, + "fields": { + "name": "Can view user group", + "content_type": 19, + "codename": "view_usergroup" + } +}, +{ + "model": "auth.permission", + "pk": 77, + "fields": { + "name": "Can add tag assignment", + "content_type": 20, + "codename": "add_tagassignment" + } +}, +{ + "model": "auth.permission", + "pk": 78, + "fields": { + "name": "Can change tag assignment", + "content_type": 20, + "codename": "change_tagassignment" + } +}, +{ + "model": "auth.permission", + "pk": 79, + "fields": { + "name": "Can delete tag assignment", + "content_type": 20, + "codename": "delete_tagassignment" + } +}, +{ + "model": "auth.permission", + "pk": 80, + "fields": { + "name": "Can view tag assignment", + "content_type": 20, + "codename": "view_tagassignment" + } +}, +{ + "model": "auth.permission", + "pk": 81, + "fields": { + "name": "Can add requirement item", + "content_type": 21, + "codename": "add_requirementitem" + } +}, +{ + "model": "auth.permission", + "pk": 82, + "fields": { + "name": "Can change requirement item", + "content_type": 21, + "codename": "change_requirementitem" + } +}, +{ + "model": "auth.permission", + "pk": 83, + "fields": { + "name": "Can delete requirement item", + "content_type": 21, + "codename": "delete_requirementitem" + } +}, +{ + "model": "auth.permission", + "pk": 84, + "fields": { + "name": "Can view requirement item", + "content_type": 21, + "codename": "view_requirementitem" + } +}, +{ + "model": "auth.permission", + "pk": 85, + "fields": { + "name": "Can add request for change group approval", + "content_type": 22, + "codename": "add_requestforchangegroupapproval" + } +}, +{ + "model": "auth.permission", + "pk": 86, + "fields": { + "name": "Can change request for change group approval", + "content_type": 22, + "codename": "change_requestforchangegroupapproval" + } +}, +{ + "model": "auth.permission", + "pk": 87, + "fields": { + "name": "Can delete request for change group approval", + "content_type": 22, + "codename": "delete_requestforchangegroupapproval" + } +}, +{ + "model": "auth.permission", + "pk": 88, + "fields": { + "name": "Can view request for change group approval", + "content_type": 22, + "codename": "view_requestforchangegroupapproval" + } +}, +{ + "model": "auth.permission", + "pk": 89, + "fields": { + "name": "Can add project", + "content_type": 23, + "codename": "add_project" + } +}, +{ + "model": "auth.permission", + "pk": 90, + "fields": { + "name": "Can change project", + "content_type": 23, + "codename": "change_project" + } +}, +{ + "model": "auth.permission", + "pk": 91, + "fields": { + "name": "Can delete project", + "content_type": 23, + "codename": "delete_project" + } +}, +{ + "model": "auth.permission", + "pk": 92, + "fields": { + "name": "Can view project", + "content_type": 23, + "codename": "view_project" + } +}, +{ + "model": "auth.permission", + "pk": 93, + "fields": { + "name": "Can add object note", + "content_type": 24, + "codename": "add_objectnote" + } +}, +{ + "model": "auth.permission", + "pk": 94, + "fields": { + "name": "Can change object note", + "content_type": 24, + "codename": "change_objectnote" + } +}, +{ + "model": "auth.permission", + "pk": 95, + "fields": { + "name": "Can delete object note", + "content_type": 24, + "codename": "delete_objectnote" + } +}, +{ + "model": "auth.permission", + "pk": 96, + "fields": { + "name": "Can view object note", + "content_type": 24, + "codename": "view_objectnote" + } +}, +{ + "model": "auth.permission", + "pk": 97, + "fields": { + "name": "Can add object assignment", + "content_type": 25, + "codename": "add_objectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 98, + "fields": { + "name": "Can change object assignment", + "content_type": 25, + "codename": "change_objectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 99, + "fields": { + "name": "Can delete object assignment", + "content_type": 25, + "codename": "delete_objectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 100, + "fields": { + "name": "Can view object assignment", + "content_type": 25, + "codename": "view_objectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 101, + "fields": { + "name": "Can add notification", + "content_type": 26, + "codename": "add_notification" + } +}, +{ + "model": "auth.permission", + "pk": 102, + "fields": { + "name": "Can change notification", + "content_type": 26, + "codename": "change_notification" + } +}, +{ + "model": "auth.permission", + "pk": 103, + "fields": { + "name": "Can delete notification", + "content_type": 26, + "codename": "delete_notification" + } +}, +{ + "model": "auth.permission", + "pk": 104, + "fields": { + "name": "Can view notification", + "content_type": 26, + "codename": "view_notification" + } +}, +{ + "model": "auth.permission", + "pk": 105, + "fields": { + "name": "Can add list of title", + "content_type": 27, + "codename": "add_listoftitle" + } +}, +{ + "model": "auth.permission", + "pk": 106, + "fields": { + "name": "Can change list of title", + "content_type": 27, + "codename": "change_listoftitle" + } +}, +{ + "model": "auth.permission", + "pk": 107, + "fields": { + "name": "Can delete list of title", + "content_type": 27, + "codename": "delete_listoftitle" + } +}, +{ + "model": "auth.permission", + "pk": 108, + "fields": { + "name": "Can view list of title", + "content_type": 27, + "codename": "view_listoftitle" + } +}, +{ + "model": "auth.permission", + "pk": 109, + "fields": { + "name": "Can add list of bug client", + "content_type": 28, + "codename": "add_listofbugclient" + } +}, +{ + "model": "auth.permission", + "pk": 110, + "fields": { + "name": "Can change list of bug client", + "content_type": 28, + "codename": "change_listofbugclient" + } +}, +{ + "model": "auth.permission", + "pk": 111, + "fields": { + "name": "Can delete list of bug client", + "content_type": 28, + "codename": "delete_listofbugclient" + } +}, +{ + "model": "auth.permission", + "pk": 112, + "fields": { + "name": "Can view list of bug client", + "content_type": 28, + "codename": "view_listofbugclient" + } +}, +{ + "model": "auth.permission", + "pk": 113, + "fields": { + "name": "Can add kanban level", + "content_type": 29, + "codename": "add_kanbanlevel" + } +}, +{ + "model": "auth.permission", + "pk": 114, + "fields": { + "name": "Can change kanban level", + "content_type": 29, + "codename": "change_kanbanlevel" + } +}, +{ + "model": "auth.permission", + "pk": 115, + "fields": { + "name": "Can delete kanban level", + "content_type": 29, + "codename": "delete_kanbanlevel" + } +}, +{ + "model": "auth.permission", + "pk": 116, + "fields": { + "name": "Can view kanban level", + "content_type": 29, + "codename": "view_kanbanlevel" + } +}, +{ + "model": "auth.permission", + "pk": 117, + "fields": { + "name": "Can add kanban column", + "content_type": 30, + "codename": "add_kanbancolumn" + } +}, +{ + "model": "auth.permission", + "pk": 118, + "fields": { + "name": "Can change kanban column", + "content_type": 30, + "codename": "change_kanbancolumn" + } +}, +{ + "model": "auth.permission", + "pk": 119, + "fields": { + "name": "Can delete kanban column", + "content_type": 30, + "codename": "delete_kanbancolumn" + } +}, +{ + "model": "auth.permission", + "pk": 120, + "fields": { + "name": "Can view kanban column", + "content_type": 30, + "codename": "view_kanbancolumn" + } +}, +{ + "model": "auth.permission", + "pk": 121, + "fields": { + "name": "Can add group permission", + "content_type": 31, + "codename": "add_grouppermission" + } +}, +{ + "model": "auth.permission", + "pk": 122, + "fields": { + "name": "Can change group permission", + "content_type": 31, + "codename": "change_grouppermission" + } +}, +{ + "model": "auth.permission", + "pk": 123, + "fields": { + "name": "Can delete group permission", + "content_type": 31, + "codename": "delete_grouppermission" + } +}, +{ + "model": "auth.permission", + "pk": 124, + "fields": { + "name": "Can view group permission", + "content_type": 31, + "codename": "view_grouppermission" + } +}, +{ + "model": "auth.permission", + "pk": 125, + "fields": { + "name": "Can add folder", + "content_type": 32, + "codename": "add_folder" + } +}, +{ + "model": "auth.permission", + "pk": 126, + "fields": { + "name": "Can change folder", + "content_type": 32, + "codename": "change_folder" + } +}, +{ + "model": "auth.permission", + "pk": 127, + "fields": { + "name": "Can delete folder", + "content_type": 32, + "codename": "delete_folder" + } +}, +{ + "model": "auth.permission", + "pk": 128, + "fields": { + "name": "Can view folder", + "content_type": 32, + "codename": "view_folder" + } +}, +{ + "model": "auth.permission", + "pk": 129, + "fields": { + "name": "Can add document permission", + "content_type": 33, + "codename": "add_documentpermission" + } +}, +{ + "model": "auth.permission", + "pk": 130, + "fields": { + "name": "Can change document permission", + "content_type": 33, + "codename": "change_documentpermission" + } +}, +{ + "model": "auth.permission", + "pk": 131, + "fields": { + "name": "Can delete document permission", + "content_type": 33, + "codename": "delete_documentpermission" + } +}, +{ + "model": "auth.permission", + "pk": 132, + "fields": { + "name": "Can view document permission", + "content_type": 33, + "codename": "view_documentpermission" + } +}, +{ + "model": "auth.permission", + "pk": 133, + "fields": { + "name": "Can add change task block", + "content_type": 34, + "codename": "add_changetaskblock" + } +}, +{ + "model": "auth.permission", + "pk": 134, + "fields": { + "name": "Can change change task block", + "content_type": 34, + "codename": "change_changetaskblock" + } +}, +{ + "model": "auth.permission", + "pk": 135, + "fields": { + "name": "Can delete change task block", + "content_type": 34, + "codename": "delete_changetaskblock" + } +}, +{ + "model": "auth.permission", + "pk": 136, + "fields": { + "name": "Can view change task block", + "content_type": 34, + "codename": "view_changetaskblock" + } +}, +{ + "model": "auth.permission", + "pk": 137, + "fields": { + "name": "Can add bug client", + "content_type": 35, + "codename": "add_bugclient" + } +}, +{ + "model": "auth.permission", + "pk": 138, + "fields": { + "name": "Can change bug client", + "content_type": 35, + "codename": "change_bugclient" + } +}, +{ + "model": "auth.permission", + "pk": 139, + "fields": { + "name": "Can delete bug client", + "content_type": 35, + "codename": "delete_bugclient" + } +}, +{ + "model": "auth.permission", + "pk": 140, + "fields": { + "name": "Can view bug client", + "content_type": 35, + "codename": "view_bugclient" + } +}, +{ + "model": "auth.permission", + "pk": 141, + "fields": { + "name": "Can add bug", + "content_type": 36, + "codename": "add_bug" + } +}, +{ + "model": "auth.permission", + "pk": 142, + "fields": { + "name": "Can change bug", + "content_type": 36, + "codename": "change_bug" + } +}, +{ + "model": "auth.permission", + "pk": 143, + "fields": { + "name": "Can delete bug", + "content_type": 36, + "codename": "delete_bug" + } +}, +{ + "model": "auth.permission", + "pk": 144, + "fields": { + "name": "Can view bug", + "content_type": 36, + "codename": "view_bug" + } +}, +{ + "model": "auth.permission", + "pk": 145, + "fields": { + "name": "Can add user setting", + "content_type": 37, + "codename": "add_usersetting" + } +}, +{ + "model": "auth.permission", + "pk": 146, + "fields": { + "name": "Can change user setting", + "content_type": 37, + "codename": "change_usersetting" + } +}, +{ + "model": "auth.permission", + "pk": 147, + "fields": { + "name": "Can delete user setting", + "content_type": 37, + "codename": "delete_usersetting" + } +}, +{ + "model": "auth.permission", + "pk": 148, + "fields": { + "name": "Can view user setting", + "content_type": 37, + "codename": "view_usersetting" + } +}, +{ + "model": "auth.permission", + "pk": 149, + "fields": { + "name": "Can add public link", + "content_type": 38, + "codename": "add_publiclink" + } +}, +{ + "model": "auth.permission", + "pk": 150, + "fields": { + "name": "Can change public link", + "content_type": 38, + "codename": "change_publiclink" + } +}, +{ + "model": "auth.permission", + "pk": 151, + "fields": { + "name": "Can delete public link", + "content_type": 38, + "codename": "delete_publiclink" + } +}, +{ + "model": "auth.permission", + "pk": 152, + "fields": { + "name": "Can view public link", + "content_type": 38, + "codename": "view_publiclink" + } +}, +{ + "model": "auth.permission", + "pk": 153, + "fields": { + "name": "Can add list of project status", + "content_type": 39, + "codename": "add_listofprojectstatus" + } +}, +{ + "model": "auth.permission", + "pk": 154, + "fields": { + "name": "Can change list of project status", + "content_type": 39, + "codename": "change_listofprojectstatus" + } +}, +{ + "model": "auth.permission", + "pk": 155, + "fields": { + "name": "Can delete list of project status", + "content_type": 39, + "codename": "delete_listofprojectstatus" + } +}, +{ + "model": "auth.permission", + "pk": 156, + "fields": { + "name": "Can view list of project status", + "content_type": 39, + "codename": "view_listofprojectstatus" + } +}, +{ + "model": "auth.permission", + "pk": 157, + "fields": { + "name": "Can add list of task status", + "content_type": 40, + "codename": "add_listoftaskstatus" + } +}, +{ + "model": "auth.permission", + "pk": 158, + "fields": { + "name": "Can change list of task status", + "content_type": 40, + "codename": "change_listoftaskstatus" + } +}, +{ + "model": "auth.permission", + "pk": 159, + "fields": { + "name": "Can delete list of task status", + "content_type": 40, + "codename": "delete_listoftaskstatus" + } +}, +{ + "model": "auth.permission", + "pk": 160, + "fields": { + "name": "Can view list of task status", + "content_type": 40, + "codename": "view_listoftaskstatus" + } +}, +{ + "model": "auth.permission", + "pk": 161, + "fields": { + "name": "Can add sprint", + "content_type": 41, + "codename": "add_sprint" + } +}, +{ + "model": "auth.permission", + "pk": 162, + "fields": { + "name": "Can change sprint", + "content_type": 41, + "codename": "change_sprint" + } +}, +{ + "model": "auth.permission", + "pk": 163, + "fields": { + "name": "Can delete sprint", + "content_type": 41, + "codename": "delete_sprint" + } +}, +{ + "model": "auth.permission", + "pk": 164, + "fields": { + "name": "Can view sprint", + "content_type": 41, + "codename": "view_sprint" + } +}, +{ + "model": "auth.permission", + "pk": 165, + "fields": { + "name": "Can add sprint audit table", + "content_type": 42, + "codename": "add_sprintaudittable" + } +}, +{ + "model": "auth.permission", + "pk": 166, + "fields": { + "name": "Can change sprint audit table", + "content_type": 42, + "codename": "change_sprintaudittable" + } +}, +{ + "model": "auth.permission", + "pk": 167, + "fields": { + "name": "Can delete sprint audit table", + "content_type": 42, + "codename": "delete_sprintaudittable" + } +}, +{ + "model": "auth.permission", + "pk": 168, + "fields": { + "name": "Can view sprint audit table", + "content_type": 42, + "codename": "view_sprintaudittable" + } +}, +{ + "model": "auth.permission", + "pk": 169, + "fields": { + "name": "Can add sprint object assignment", + "content_type": 43, + "codename": "add_sprintobjectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 170, + "fields": { + "name": "Can change sprint object assignment", + "content_type": 43, + "codename": "change_sprintobjectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 171, + "fields": { + "name": "Can delete sprint object assignment", + "content_type": 43, + "codename": "delete_sprintobjectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 172, + "fields": { + "name": "Can view sprint object assignment", + "content_type": 43, + "codename": "view_sprintobjectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 173, + "fields": { + "name": "Can add user job", + "content_type": 44, + "codename": "add_userjob" + } +}, +{ + "model": "auth.permission", + "pk": 174, + "fields": { + "name": "Can change user job", + "content_type": 44, + "codename": "change_userjob" + } +}, +{ + "model": "auth.permission", + "pk": 175, + "fields": { + "name": "Can delete user job", + "content_type": 44, + "codename": "delete_userjob" + } +}, +{ + "model": "auth.permission", + "pk": 176, + "fields": { + "name": "Can view user job", + "content_type": 44, + "codename": "view_userjob" + } +}, +{ + "model": "auth.permission", + "pk": 177, + "fields": { + "name": "Can add object template", + "content_type": 45, + "codename": "add_objecttemplate" + } +}, +{ + "model": "auth.permission", + "pk": 178, + "fields": { + "name": "Can change object template", + "content_type": 45, + "codename": "change_objecttemplate" + } +}, +{ + "model": "auth.permission", + "pk": 179, + "fields": { + "name": "Can delete object template", + "content_type": 45, + "codename": "delete_objecttemplate" + } +}, +{ + "model": "auth.permission", + "pk": 180, + "fields": { + "name": "Can view object template", + "content_type": 45, + "codename": "view_objecttemplate" + } +}, +{ + "model": "auth.permission", + "pk": 181, + "fields": { + "name": "Can add object template group", + "content_type": 46, + "codename": "add_objecttemplategroup" + } +}, +{ + "model": "auth.permission", + "pk": 182, + "fields": { + "name": "Can change object template group", + "content_type": 46, + "codename": "change_objecttemplategroup" + } +}, +{ + "model": "auth.permission", + "pk": 183, + "fields": { + "name": "Can delete object template group", + "content_type": 46, + "codename": "delete_objecttemplategroup" + } +}, +{ + "model": "auth.permission", + "pk": 184, + "fields": { + "name": "Can view object template group", + "content_type": 46, + "codename": "view_objecttemplategroup" + } +}, +{ + "model": "auth.permission", + "pk": 185, + "fields": { + "name": "Can add scheduled object", + "content_type": 47, + "codename": "add_scheduledobject" + } +}, +{ + "model": "auth.permission", + "pk": 186, + "fields": { + "name": "Can change scheduled object", + "content_type": 47, + "codename": "change_scheduledobject" + } +}, +{ + "model": "auth.permission", + "pk": 187, + "fields": { + "name": "Can delete scheduled object", + "content_type": 47, + "codename": "delete_scheduledobject" + } +}, +{ + "model": "auth.permission", + "pk": 188, + "fields": { + "name": "Can view scheduled object", + "content_type": 47, + "codename": "view_scheduledobject" + } +}, +{ + "model": "auth.permission", + "pk": 189, + "fields": { + "name": "Can add log entry", + "content_type": 48, + "codename": "add_logentry" + } +}, +{ + "model": "auth.permission", + "pk": 190, + "fields": { + "name": "Can change log entry", + "content_type": 48, + "codename": "change_logentry" + } +}, +{ + "model": "auth.permission", + "pk": 191, + "fields": { + "name": "Can delete log entry", + "content_type": 48, + "codename": "delete_logentry" + } +}, +{ + "model": "auth.permission", + "pk": 192, + "fields": { + "name": "Can view log entry", + "content_type": 48, + "codename": "view_logentry" + } +}, +{ + "model": "auth.permission", + "pk": 193, + "fields": { + "name": "Can add permission", + "content_type": 49, + "codename": "add_permission" + } +}, +{ + "model": "auth.permission", + "pk": 194, + "fields": { + "name": "Can change permission", + "content_type": 49, + "codename": "change_permission" + } +}, +{ + "model": "auth.permission", + "pk": 195, + "fields": { + "name": "Can delete permission", + "content_type": 49, + "codename": "delete_permission" + } +}, +{ + "model": "auth.permission", + "pk": 196, + "fields": { + "name": "Can view permission", + "content_type": 49, + "codename": "view_permission" + } +}, +{ + "model": "auth.permission", + "pk": 197, + "fields": { + "name": "Can add group", + "content_type": 50, + "codename": "add_group" + } +}, +{ + "model": "auth.permission", + "pk": 198, + "fields": { + "name": "Can change group", + "content_type": 50, + "codename": "change_group" + } +}, +{ + "model": "auth.permission", + "pk": 199, + "fields": { + "name": "Can delete group", + "content_type": 50, + "codename": "delete_group" + } +}, +{ + "model": "auth.permission", + "pk": 200, + "fields": { + "name": "Can view group", + "content_type": 50, + "codename": "view_group" + } +}, +{ + "model": "auth.permission", + "pk": 201, + "fields": { + "name": "Can add user", + "content_type": 51, + "codename": "add_user" + } +}, +{ + "model": "auth.permission", + "pk": 202, + "fields": { + "name": "Can change user", + "content_type": 51, + "codename": "change_user" + } +}, +{ + "model": "auth.permission", + "pk": 203, + "fields": { + "name": "Can delete user", + "content_type": 51, + "codename": "delete_user" + } +}, +{ + "model": "auth.permission", + "pk": 204, + "fields": { + "name": "Can view user", + "content_type": 51, + "codename": "view_user" + } +}, +{ + "model": "auth.permission", + "pk": 205, + "fields": { + "name": "Can add content type", + "content_type": 52, + "codename": "add_contenttype" + } +}, +{ + "model": "auth.permission", + "pk": 206, + "fields": { + "name": "Can change content type", + "content_type": 52, + "codename": "change_contenttype" + } +}, +{ + "model": "auth.permission", + "pk": 207, + "fields": { + "name": "Can delete content type", + "content_type": 52, + "codename": "delete_contenttype" + } +}, +{ + "model": "auth.permission", + "pk": 208, + "fields": { + "name": "Can view content type", + "content_type": 52, + "codename": "view_contenttype" + } +}, +{ + "model": "auth.permission", + "pk": 209, + "fields": { + "name": "Can add session", + "content_type": 53, + "codename": "add_session" + } +}, +{ + "model": "auth.permission", + "pk": 210, + "fields": { + "name": "Can change session", + "content_type": 53, + "codename": "change_session" + } +}, +{ + "model": "auth.permission", + "pk": 211, + "fields": { + "name": "Can delete session", + "content_type": 53, + "codename": "delete_session" + } +}, +{ + "model": "auth.permission", + "pk": 212, + "fields": { + "name": "Can view session", + "content_type": 53, + "codename": "view_session" + } +}, +{ + "model": "auth.user", + "pk": 1, + "fields": { + "password": "pbkdf2_sha256$720000$xBoXxSEeVXBdR0rm6efbo0$//JuZL1sOsIXbgd6qdboRpMTz0MgwRi9Oi5AsuaSVx8=", + "last_login": "2024-05-13T08:35:31.081Z", + "is_superuser": true, + "username": "admin", + "first_name": "Admin", + "last_name": "User", + "email": "support@nearbeach.org", + "is_staff": true, + "is_active": true, + "date_joined": "2023-02-15T08:52:25.503Z", + "groups": [], + "user_permissions": [] + } +}, +{ + "model": "auth.user", + "pk": 2, + "fields": { + "password": "pbkdf2_sha256$720000$qPwbmUsqdz96LSSCZoFdkm$yT30PhvOS91E/Jn/ZS0fstZYzWLSgvzLHLhJc8V4xSg=", + "last_login": "2024-05-13T08:35:38.559Z", + "is_superuser": false, + "username": "team_leader", + "first_name": "Team", + "last_name": "Leader", + "email": "support@nearbeach.org", + "is_staff": false, + "is_active": true, + "date_joined": "2023-02-15T09:08:39.426Z", + "groups": [], + "user_permissions": [] + } +}, +{ + "model": "auth.user", + "pk": 3, + "fields": { + "password": "pbkdf2_sha256$390000$fciTE1U9rkrQT7CxjHi2ae$B7zRiPi1Yvj6DsipShCbeJ2vaB2eSlOt7V7T8Pd1NDQ=", + "last_login": null, + "is_superuser": false, + "username": "team_member", + "first_name": "Team", + "last_name": "Member", + "email": "support@nearbeach.org", + "is_staff": false, + "is_active": true, + "date_joined": "2023-02-15T09:09:18.372Z", + "groups": [], + "user_permissions": [] + } +}, +{ + "model": "auth.user", + "pk": 4, + "fields": { + "password": "pbkdf2_sha256$390000$g4K0zwz343vSUFJ98oChdw$kVnvD01xefHMYKJlVBCzHc7fsgQ37IobChg7e0WCCRc=", + "last_login": null, + "is_superuser": false, + "username": "team_intern", + "first_name": "Team", + "last_name": "Intern", + "email": "support@nearbeach.org", + "is_staff": false, + "is_active": true, + "date_joined": "2023-02-15T09:09:54.016Z", + "groups": [], + "user_permissions": [] + } +}, +{ + "model": "auth.user", + "pk": 5, + "fields": { + "password": "pbkdf2_sha256$720000$lme60tWetgq1EdCCjo4iPZ$tGR4stCLa56Rt/LjtHYKCff2RDtJ0RJ4pFr4fC24TXo=", + "last_login": "2024-09-25T09:42:33.989Z", + "is_superuser": false, + "username": "read_only", + "first_name": "Read", + "last_name": "Only", + "email": "support@nearbeach.org", + "is_staff": false, + "is_active": true, + "date_joined": "2023-02-15T09:10:40.680Z", + "groups": [], + "user_permissions": [] + } +}, +{ + "model": "auth.user", + "pk": 6, + "fields": { + "password": "pbkdf2_sha256$390000$3pWQzzL3ZWG5rSXBMRZ1nU$phvpS5OFRmW+BHal2eEViCtXpGFIo47RVcyUWTSjjLg=", + "last_login": null, + "is_superuser": false, + "username": "no_group", + "first_name": "No", + "last_name": "Group", + "email": "support@nearbeach.org", + "is_staff": false, + "is_active": true, + "date_joined": "2023-02-15T09:11:23.252Z", + "groups": [], + "user_permissions": [] + } +}, +{ + "model": "auth.user", + "pk": 7, + "fields": { + "password": "pbkdf2_sha256$720000$LOuvwqm0i7IMvesslGvt4K$+3wQ/JnweVgmEYIffzyS3kv+HMWx2jrw+xkSrqm/u4o=", + "last_login": "2024-09-25T09:04:26.472Z", + "is_superuser": true, + "username": "dark_admin", + "first_name": "Dark", + "last_name": "Admin", + "email": "support@nearbeach.org", + "is_staff": false, + "is_active": true, + "date_joined": "2023-09-06T09:36:15.453Z", + "groups": [], + "user_permissions": [] + } +}, +{ + "model": "auth.user", + "pk": 8, + "fields": { + "password": "pbkdf2_sha256$720000$NWvmRMCfh3D6qWbNgpnVDA$F5fic/7kUyUHxLhDfBPJ8WjR82S233RGCJO61KNJpyQ=", + "last_login": "2024-09-25T09:57:29.464Z", + "is_superuser": false, + "username": "read_only_extra", + "first_name": "Read", + "last_name": "Only Extra", + "email": "support@nearbeach.org", + "is_staff": false, + "is_active": true, + "date_joined": "2024-09-25T09:10:28.168Z", + "groups": [], + "user_permissions": [] + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 1, + "fields": { + "app_label": "NearBeach", + "model": "changetask" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 2, + "fields": { + "app_label": "NearBeach", + "model": "customer" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 3, + "fields": { + "app_label": "NearBeach", + "model": "document" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 4, + "fields": { + "app_label": "NearBeach", + "model": "group" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 5, + "fields": { + "app_label": "NearBeach", + "model": "kanbanboard" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 6, + "fields": { + "app_label": "NearBeach", + "model": "kanbancard" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 7, + "fields": { + "app_label": "NearBeach", + "model": "listofrequirementitemstatus" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 8, + "fields": { + "app_label": "NearBeach", + "model": "listofrequirementitemtype" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 9, + "fields": { + "app_label": "NearBeach", + "model": "listofrequirementstatus" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 10, + "fields": { + "app_label": "NearBeach", + "model": "listofrequirementtype" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 11, + "fields": { + "app_label": "NearBeach", + "model": "listofrfcstatus" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 12, + "fields": { + "app_label": "NearBeach", + "model": "organisation" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 13, + "fields": { + "app_label": "NearBeach", + "model": "permissionset" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 14, + "fields": { + "app_label": "NearBeach", + "model": "requestforchange" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 15, + "fields": { + "app_label": "NearBeach", + "model": "requirement" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 16, + "fields": { + "app_label": "NearBeach", + "model": "tag" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 17, + "fields": { + "app_label": "NearBeach", + "model": "task" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 18, + "fields": { + "app_label": "NearBeach", + "model": "userprofilepicture" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 19, + "fields": { + "app_label": "NearBeach", + "model": "usergroup" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 20, + "fields": { + "app_label": "NearBeach", + "model": "tagassignment" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 21, + "fields": { + "app_label": "NearBeach", + "model": "requirementitem" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 22, + "fields": { + "app_label": "NearBeach", + "model": "requestforchangegroupapproval" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 23, + "fields": { + "app_label": "NearBeach", + "model": "project" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 24, + "fields": { + "app_label": "NearBeach", + "model": "objectnote" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 25, + "fields": { + "app_label": "NearBeach", + "model": "objectassignment" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 26, + "fields": { + "app_label": "NearBeach", + "model": "notification" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 27, + "fields": { + "app_label": "NearBeach", + "model": "listoftitle" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 28, + "fields": { + "app_label": "NearBeach", + "model": "listofbugclient" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 29, + "fields": { + "app_label": "NearBeach", + "model": "kanbanlevel" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 30, + "fields": { + "app_label": "NearBeach", + "model": "kanbancolumn" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 31, + "fields": { + "app_label": "NearBeach", + "model": "grouppermission" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 32, + "fields": { + "app_label": "NearBeach", + "model": "folder" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 33, + "fields": { + "app_label": "NearBeach", + "model": "documentpermission" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 34, + "fields": { + "app_label": "NearBeach", + "model": "changetaskblock" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 35, + "fields": { + "app_label": "NearBeach", + "model": "bugclient" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 36, + "fields": { + "app_label": "NearBeach", + "model": "bug" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 37, + "fields": { + "app_label": "NearBeach", + "model": "usersetting" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 38, + "fields": { + "app_label": "NearBeach", + "model": "publiclink" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 39, + "fields": { + "app_label": "NearBeach", + "model": "listofprojectstatus" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 40, + "fields": { + "app_label": "NearBeach", + "model": "listoftaskstatus" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 41, + "fields": { + "app_label": "NearBeach", + "model": "sprint" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 42, + "fields": { + "app_label": "NearBeach", + "model": "sprintaudittable" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 43, + "fields": { + "app_label": "NearBeach", + "model": "sprintobjectassignment" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 44, + "fields": { + "app_label": "NearBeach", + "model": "userjob" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 45, + "fields": { + "app_label": "NearBeach", + "model": "objecttemplate" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 46, + "fields": { + "app_label": "NearBeach", + "model": "objecttemplategroup" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 47, + "fields": { + "app_label": "NearBeach", + "model": "scheduledobject" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 48, + "fields": { + "app_label": "admin", + "model": "logentry" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 49, + "fields": { + "app_label": "auth", + "model": "permission" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 50, + "fields": { + "app_label": "auth", + "model": "group" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 51, + "fields": { + "app_label": "auth", + "model": "user" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 52, + "fields": { + "app_label": "contenttypes", + "model": "contenttype" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 53, + "fields": { + "app_label": "sessions", + "model": "session" + } +}, +{ + "model": "sessions.session", + "pk": "1dxxe5glzsbvq94spcivlz28kvq8vazx", + "fields": { + "session_data": ".eJxVjEEOgyAQRe_CuiEoI4wuu-8ZyABjtTXagKya3r2SuGi3_73_3sJR2SdXMic3RzGITlx-N0_hyWsF8UHrfZNhW_c0e1kVedIsb1vk5Xq6f4GJ8nS8jUdq0IIhrbANYDmy5l5FGAMCtR1Y4xtkYgjYKd1Ab9AAe2DSBPqIztnl8uJUs2IYacn8-QK2uz9a:1s6Swp:5KDFXsDZsmVAprYtI7TP_dX-ddlKrYDYujwVQTCZbSU", + "expire_date": "2024-05-27T10:30:23.003Z" + } +}, +{ + "model": "sessions.session", + "pk": "41t2bmdty3irkugyv45mcq9p5oivovhk", + "fields": { + "session_data": ".eJxVjDsOwjAQBe_iGln-xJ-kpOcM1nq9xoEoQXZSIe5OIqWA9s28ebMA21rC1qiGMbGBeXb53SLgk-YDpAfM94XjMq91jPxQ-Ekbvy2Jpuvp_gUKtLK_IyhByXuZrdFkCSlKp5JDJT1pFNmoHnTMgL1Ba0AILRwo23e-U4ncHh1baNuL6pFlQ4ap0ecL5aQ_3g:1stOm1:fa0fhnVS-zfJqt2mgTTqYgfLfrIyY4E6bpQsk8l_HIU", + "expire_date": "2024-10-09T09:57:29.474Z" + } +}, +{ + "model": "sessions.session", + "pk": "4ihdjbrhcx7hokg3uisrpinxhca0e34d", + "fields": { + "session_data": ".eJxVjEEOwiAQRe_C2hAYoNQu3XsGwgyDrZrWQFkZ726bdKHb_95_bxFiW8fQKpcwJTEILU6_G0Z68LyDdI_zbZG0zGuZUO6KPGiV1yXx83K4f4Ex1nF7O0Ai68FFdqlPkdH1nBUmC-SzNqAUeaMMGtuBBsAz6q7LtrfaGqdoi0411PbismfFsJbGny-LGT7k:1rWvse:lyt6TXjJYt27JiKtOvUdRIF7rY3B9FsAx6nGOaFkuVA", + "expire_date": "2024-02-19T10:07:12.158Z" + } +}, +{ + "model": "sessions.session", + "pk": "6ijlztlbeuobpqj85nn5sz82nxb27b6e", + "fields": { + "session_data": ".eJxVjMsOwiAUBf-FtSHQF-DSvd9AuC9bNa2BsjL-u23ShW7PzJm3iqmuY6yFc5xInZVVp98NEj543gHd03xbNC7zmifQu6IPWvR1IX5eDvcvMKYybm8YerLGJ9dZsCKBxAV0BJ4QWtMIQOux6xu2GFhcFxjZGRnA9uJbNlt0KrHUF-c9q85rrvz5Ar6eQGE:1r3DhY:kBkq63w57t7pLz9nNmDjiZ9gx_r6SSDLMLyMP__LaKY", + "expire_date": "2023-11-29T11:04:56.353Z" + } +}, +{ + "model": "sessions.session", + "pk": "8m5uznyh101is14fmwrekdyh1rf0y6ft", + "fields": { + "session_data": ".eJxVjEEOwiAQRe_C2hAYoNQu3XsGwgyDrZrWQFkZ726bdKHb_95_bxFiW8fQKpcwJTEILU6_G0Z68LyDdI_zbZG0zGuZUO6KPGiV1yXx83K4f4Ex1nF7O0Ai68FFdqlPkdH1nBUmC-SzNqAUeaMMGtuBBsAz6q7LtrfaGqdoi0411PbismfFsJbGny-LGT7k:1rW4H5:z0s-sSFp5Omsk3ltbIEgBmp6Ll-0CCRZo0oHPsZgHl4", + "expire_date": "2024-02-17T00:52:51.968Z" + } +}, +{ + "model": "sessions.session", + "pk": "8xecpyshecbti7r0jtu61ns4ftp1hkcb", + "fields": { + "session_data": ".eJxVjDsOwjAQBe_iGln-xJ-kpOcM1nq9xoEoQXZSIe5OIqWA9s28ebMA21rC1qiGMbGBeXb53SLgk-YDpAfM94XjMq91jPxQ-Ekbvy2Jpuvp_gUKtLK_IyhByXuZrdFkCSlKp5JDJT1pFNmoHnTMgL1Ba0AILRwo23e-U4ncHh1baNuL6pFlQ4ap0ecL5aQ_3g:1stOlp:CFFmBxjIwkRdgoxtQs4dd2YXNfoTI5d9QLb6acm0d70", + "expire_date": "2024-10-09T09:57:17.595Z" + } +}, +{ + "model": "sessions.session", + "pk": "922i2920gbdv4xctpizrk8pypiaysael", + "fields": { + "session_data": ".eJxVjEEOwiAQRe_C2hAYoNQu3XsGwgyDrZrWQFkZ726bdKHb_95_bxFiW8fQKpcwJTEILU6_G0Z68LyDdI_zbZG0zGuZUO6KPGiV1yXx83K4f4Ex1nF7O0Ai68FFdqlPkdH1nBUmC-SzNqAUeaMMGtuBBsAz6q7LtrfaGqdoi0411PbismfFsJbGny-LGT7k:1s6Sva:uc1eEmvvEv9_L46aDGeLvGYfSLgwPVARk6sdNAHWLGk", + "expire_date": "2024-05-27T10:29:06.063Z" + } +}, +{ + "model": "sessions.session", + "pk": "bjg85wdarjo3cgh7m5n5ghtyuml55cpw", + "fields": { + "session_data": ".eJxVjjsOwjAQRO_iGln-yklKes5gjb1rEkAJipMKcXewlALaeTNP8xIR-zbGvfIaJxKDMOL0myXkO88N0A3zdZF5mbd1SrJV5EGrvCzEj_PR_ROMqON3nYKzSoOSt9YA1rJP8KZouD4HogJCVlmHYgz3Fsjadz5rx0oF17VXU411f_LatGIoeFR-fwDnpUAT:1rWu2C:w9CQ0CqBFz3eAoPmkTJMR7Jl_30-3aTVL3156Fwm8UA", + "expire_date": "2024-02-19T08:08:56.987Z" + } +}, +{ + "model": "sessions.session", + "pk": "g9wggp3nsnnsn06gb2s4807w9536fmli", + "fields": { + "session_data": ".eJxVjDsOgzAQBe_iOrLWBptPmT5nsNa7SyCJANm4inL3gESRtG_mzVsFLNsYSpYUJla9Muryu0Wkp8wH4AfO90XTMm9pivpQ9Emzvi0sr-vp_gVGzOP-loYHdrECh-Qje0CBCtC4drDka0RjW4hkGts5Ai-NjSI8CIN0Rmrao1MOuaySjqzqt1Tk8wW8ZUBn:1q1mZn:tXT9RZUZ_xCydCcGBQH0DKMpyY0Vm2j9YeaOsqaTWug", + "expire_date": "2023-06-07T11:22:43.278Z" + } +}, +{ + "model": "sessions.session", + "pk": "jf4rxb43g0qzwg0jblkwjg2xqtoz0ope", + "fields": { + "session_data": ".eJxVjjsOwjAQRO_iGln-yklKes5gjb1rEkAJipMKcXewlALaeTNP8xIR-zbGvfIaJxKDMOL0myXkO88N0A3zdZF5mbd1SrJV5EGrvCzEj_PR_ROMqON3nYKzSoOSt9YA1rJP8KZouD4HogJCVlmHYgz3Fsjadz5rx0oF17VXU411f_LatGIoeFR-fwDnpUAT:1s6R9m:qyY_lFApfV6G3NPniA1Nzshbmg-FY9fJYvUlZu5IFRs", + "expire_date": "2024-05-27T08:35:38.574Z" + } +}, +{ + "model": "sessions.session", + "pk": "kml4rul4ztacc8rth3cm01bw5x5i983r", + "fields": { + "session_data": ".eJxVjDsOgzAQBe_iOrLWBptPmT5nsNa7SyCJANm4inL3gESRtG_mzVsFLNsYSpYUJla9Muryu0Wkp8wH4AfO90XTMm9pivpQ9Emzvi0sr-vp_gVGzOP-loYHdrECh-Qje0CBCtC4drDka0RjW4hkGts5Ai-NjSI8CIN0Rmrao1MOuaySjqzqt1Tk8wW8ZUBn:1pU3v8:fiZm-IlzIW779V5YsFMBp0JR4B4L2Jft8b9ZHIKdGn4", + "expire_date": "2023-03-06T11:01:22.209Z" + } +}, +{ + "model": "sessions.session", + "pk": "mapudo1arv41bj7qaevnliswe5d9l6tu", + "fields": { + "session_data": ".eJxVjEEOwiAQRe_C2hAybWHo0r1nIAMMgjatKe3KeHdL0oVu_3v_vYWjfctur7y6EsUoQFx-N0_hyXMD8UHzfZFhmbe1eNkUedIqb0vk6Xq6f4FMNR9vqw3rHjwmJLJoAJSyqU8QPcTENmjGDjwjQlM9DxBUT6HDCIaSOqKlurq_eG1ZMSaaKn--zyE_-w:1pU2E1:GrhctJb4A0BHVABE_4btsX6s-BtlIgVJsGHnI_I6ukM", + "expire_date": "2023-03-06T09:12:45.111Z" + } +}, +{ + "model": "sessions.session", + "pk": "owt532l68p5tnjt8utn8fg5q06vsiwmw", + "fields": { + "session_data": ".eJxVjEEOgyAQRe_CuiEIo4jL7nsGMjBDtW3UgKya3r2auGi3_73_3sJj3UZfC2c_kRiEFZffLWB88nwAeuB8X2Rc5i1PQR6KPGmRt4X4dT3dv8CIZdzfOnZsnU5Guw6MSx0y9GwILTrVABIF2yvqGSIlpU1yChib1DK3FgLs0an4UlfOR1YMW678-QKagj_Z:1qdoy7:ikguhaQ5OjgCpnqvgjdUBVUxwwsYoewvRLjwf1Cl2SA", + "expire_date": "2023-09-20T09:37:03.276Z" + } +}, +{ + "model": "sessions.session", + "pk": "vtnt5jh48qc9lm3apgq6ppwyqwbsmbkc", + "fields": { + "session_data": ".eJxVjDsOgzAQBe_iOrLWBptPmT5nsNa7SyCJANm4inL3gESRtG_mzVsFLNsYSpYUJla9Muryu0Wkp8wH4AfO90XTMm9pivpQ9Emzvi0sr-vp_gVGzOP-loYHdrECh-Qje0CBCtC4drDka0RjW4hkGts5Ai-NjSI8CIN0Rmrao1MOuaySjqzqt1Tk8wW8ZUBn:1pSDwg:7aeBahHYeqv4iuCmRuzXy6KRCL7lDDZm5OntHf58-jQ", + "expire_date": "2023-03-01T09:19:22.771Z" + } +}, +{ + "model": "sessions.session", + "pk": "w3iepd6fu5cfao0mpwh97dp39fgh7ujn", + "fields": { + "session_data": ".eJxVjEEOwiAQRe_C2hAYoNQu3XsGwgyDrZrWQFkZ726bdKHb_95_bxFiW8fQKpcwJTEILU6_G0Z68LyDdI_zbZG0zGuZUO6KPGiV1yXx83K4f4Ex1nF7O0Ai68FFdqlPkdH1nBUmC-SzNqAUeaMMGtuBBsAz6q7LtrfaGqdoi0411PbismfFsJbGny-LGT7k:1rm8cG:YKlIkAtjptFKY3cmZkt8jsVLAhI7ajhEUr0BE4D7S5Y", + "expire_date": "2024-04-01T08:45:08.164Z" + } +}, +{ + "model": "sessions.session", + "pk": "w453g709b692nhazunuecnfofjhuunc9", + "fields": { + "session_data": ".eJxVjEEOwiAQRe_C2hBLgYEu3XsGMjCDrZrWQFkZ726bdKHb_95_bxGwrWNolUuYSAwCxOl3i5gePO-A7jjfFpmWeS1TlLsiD1rldSF-Xg73LzBiHbe3AYuWLHcZbEq-d2CdBuNVZtKgQQGyJ9tpb8AZh4bOPlM0kFH1KastOtVQ24vLnhXDWhp_vm-8PxQ:1stNwg:MDEmEu3ELWw44tH7DKm_nXI8QNDrElLBynYQvxAVnIA", + "expire_date": "2024-10-09T09:04:26.484Z" } } ] diff --git a/NearBeach/fixtures/NearBeach_no_setup.json b/NearBeach/fixtures/NearBeach_no_setup.json index 063949506..09da50024 100644 --- a/NearBeach/fixtures/NearBeach_no_setup.json +++ b/NearBeach/fixtures/NearBeach_no_setup.json @@ -596,6 +596,1914 @@ "is_deleted": false } }, +{ + "model": "auth.permission", + "pk": 1, + "fields": { + "name": "Can add change task", + "content_type": 1, + "codename": "add_changetask" + } +}, +{ + "model": "auth.permission", + "pk": 2, + "fields": { + "name": "Can change change task", + "content_type": 1, + "codename": "change_changetask" + } +}, +{ + "model": "auth.permission", + "pk": 3, + "fields": { + "name": "Can delete change task", + "content_type": 1, + "codename": "delete_changetask" + } +}, +{ + "model": "auth.permission", + "pk": 4, + "fields": { + "name": "Can view change task", + "content_type": 1, + "codename": "view_changetask" + } +}, +{ + "model": "auth.permission", + "pk": 5, + "fields": { + "name": "Can add customer", + "content_type": 2, + "codename": "add_customer" + } +}, +{ + "model": "auth.permission", + "pk": 6, + "fields": { + "name": "Can change customer", + "content_type": 2, + "codename": "change_customer" + } +}, +{ + "model": "auth.permission", + "pk": 7, + "fields": { + "name": "Can delete customer", + "content_type": 2, + "codename": "delete_customer" + } +}, +{ + "model": "auth.permission", + "pk": 8, + "fields": { + "name": "Can view customer", + "content_type": 2, + "codename": "view_customer" + } +}, +{ + "model": "auth.permission", + "pk": 9, + "fields": { + "name": "Can add document", + "content_type": 3, + "codename": "add_document" + } +}, +{ + "model": "auth.permission", + "pk": 10, + "fields": { + "name": "Can change document", + "content_type": 3, + "codename": "change_document" + } +}, +{ + "model": "auth.permission", + "pk": 11, + "fields": { + "name": "Can delete document", + "content_type": 3, + "codename": "delete_document" + } +}, +{ + "model": "auth.permission", + "pk": 12, + "fields": { + "name": "Can view document", + "content_type": 3, + "codename": "view_document" + } +}, +{ + "model": "auth.permission", + "pk": 13, + "fields": { + "name": "Can add group", + "content_type": 4, + "codename": "add_group" + } +}, +{ + "model": "auth.permission", + "pk": 14, + "fields": { + "name": "Can change group", + "content_type": 4, + "codename": "change_group" + } +}, +{ + "model": "auth.permission", + "pk": 15, + "fields": { + "name": "Can delete group", + "content_type": 4, + "codename": "delete_group" + } +}, +{ + "model": "auth.permission", + "pk": 16, + "fields": { + "name": "Can view group", + "content_type": 4, + "codename": "view_group" + } +}, +{ + "model": "auth.permission", + "pk": 17, + "fields": { + "name": "Can add kanban board", + "content_type": 5, + "codename": "add_kanbanboard" + } +}, +{ + "model": "auth.permission", + "pk": 18, + "fields": { + "name": "Can change kanban board", + "content_type": 5, + "codename": "change_kanbanboard" + } +}, +{ + "model": "auth.permission", + "pk": 19, + "fields": { + "name": "Can delete kanban board", + "content_type": 5, + "codename": "delete_kanbanboard" + } +}, +{ + "model": "auth.permission", + "pk": 20, + "fields": { + "name": "Can view kanban board", + "content_type": 5, + "codename": "view_kanbanboard" + } +}, +{ + "model": "auth.permission", + "pk": 21, + "fields": { + "name": "Can add kanban card", + "content_type": 6, + "codename": "add_kanbancard" + } +}, +{ + "model": "auth.permission", + "pk": 22, + "fields": { + "name": "Can change kanban card", + "content_type": 6, + "codename": "change_kanbancard" + } +}, +{ + "model": "auth.permission", + "pk": 23, + "fields": { + "name": "Can delete kanban card", + "content_type": 6, + "codename": "delete_kanbancard" + } +}, +{ + "model": "auth.permission", + "pk": 24, + "fields": { + "name": "Can view kanban card", + "content_type": 6, + "codename": "view_kanbancard" + } +}, +{ + "model": "auth.permission", + "pk": 25, + "fields": { + "name": "Can add list of requirement item status", + "content_type": 7, + "codename": "add_listofrequirementitemstatus" + } +}, +{ + "model": "auth.permission", + "pk": 26, + "fields": { + "name": "Can change list of requirement item status", + "content_type": 7, + "codename": "change_listofrequirementitemstatus" + } +}, +{ + "model": "auth.permission", + "pk": 27, + "fields": { + "name": "Can delete list of requirement item status", + "content_type": 7, + "codename": "delete_listofrequirementitemstatus" + } +}, +{ + "model": "auth.permission", + "pk": 28, + "fields": { + "name": "Can view list of requirement item status", + "content_type": 7, + "codename": "view_listofrequirementitemstatus" + } +}, +{ + "model": "auth.permission", + "pk": 29, + "fields": { + "name": "Can add list of requirement item type", + "content_type": 8, + "codename": "add_listofrequirementitemtype" + } +}, +{ + "model": "auth.permission", + "pk": 30, + "fields": { + "name": "Can change list of requirement item type", + "content_type": 8, + "codename": "change_listofrequirementitemtype" + } +}, +{ + "model": "auth.permission", + "pk": 31, + "fields": { + "name": "Can delete list of requirement item type", + "content_type": 8, + "codename": "delete_listofrequirementitemtype" + } +}, +{ + "model": "auth.permission", + "pk": 32, + "fields": { + "name": "Can view list of requirement item type", + "content_type": 8, + "codename": "view_listofrequirementitemtype" + } +}, +{ + "model": "auth.permission", + "pk": 33, + "fields": { + "name": "Can add list of requirement status", + "content_type": 9, + "codename": "add_listofrequirementstatus" + } +}, +{ + "model": "auth.permission", + "pk": 34, + "fields": { + "name": "Can change list of requirement status", + "content_type": 9, + "codename": "change_listofrequirementstatus" + } +}, +{ + "model": "auth.permission", + "pk": 35, + "fields": { + "name": "Can delete list of requirement status", + "content_type": 9, + "codename": "delete_listofrequirementstatus" + } +}, +{ + "model": "auth.permission", + "pk": 36, + "fields": { + "name": "Can view list of requirement status", + "content_type": 9, + "codename": "view_listofrequirementstatus" + } +}, +{ + "model": "auth.permission", + "pk": 37, + "fields": { + "name": "Can add list of requirement type", + "content_type": 10, + "codename": "add_listofrequirementtype" + } +}, +{ + "model": "auth.permission", + "pk": 38, + "fields": { + "name": "Can change list of requirement type", + "content_type": 10, + "codename": "change_listofrequirementtype" + } +}, +{ + "model": "auth.permission", + "pk": 39, + "fields": { + "name": "Can delete list of requirement type", + "content_type": 10, + "codename": "delete_listofrequirementtype" + } +}, +{ + "model": "auth.permission", + "pk": 40, + "fields": { + "name": "Can view list of requirement type", + "content_type": 10, + "codename": "view_listofrequirementtype" + } +}, +{ + "model": "auth.permission", + "pk": 41, + "fields": { + "name": "Can add list of rfc status", + "content_type": 11, + "codename": "add_listofrfcstatus" + } +}, +{ + "model": "auth.permission", + "pk": 42, + "fields": { + "name": "Can change list of rfc status", + "content_type": 11, + "codename": "change_listofrfcstatus" + } +}, +{ + "model": "auth.permission", + "pk": 43, + "fields": { + "name": "Can delete list of rfc status", + "content_type": 11, + "codename": "delete_listofrfcstatus" + } +}, +{ + "model": "auth.permission", + "pk": 44, + "fields": { + "name": "Can view list of rfc status", + "content_type": 11, + "codename": "view_listofrfcstatus" + } +}, +{ + "model": "auth.permission", + "pk": 45, + "fields": { + "name": "Can add organisation", + "content_type": 12, + "codename": "add_organisation" + } +}, +{ + "model": "auth.permission", + "pk": 46, + "fields": { + "name": "Can change organisation", + "content_type": 12, + "codename": "change_organisation" + } +}, +{ + "model": "auth.permission", + "pk": 47, + "fields": { + "name": "Can delete organisation", + "content_type": 12, + "codename": "delete_organisation" + } +}, +{ + "model": "auth.permission", + "pk": 48, + "fields": { + "name": "Can view organisation", + "content_type": 12, + "codename": "view_organisation" + } +}, +{ + "model": "auth.permission", + "pk": 49, + "fields": { + "name": "Can add permission set", + "content_type": 13, + "codename": "add_permissionset" + } +}, +{ + "model": "auth.permission", + "pk": 50, + "fields": { + "name": "Can change permission set", + "content_type": 13, + "codename": "change_permissionset" + } +}, +{ + "model": "auth.permission", + "pk": 51, + "fields": { + "name": "Can delete permission set", + "content_type": 13, + "codename": "delete_permissionset" + } +}, +{ + "model": "auth.permission", + "pk": 52, + "fields": { + "name": "Can view permission set", + "content_type": 13, + "codename": "view_permissionset" + } +}, +{ + "model": "auth.permission", + "pk": 53, + "fields": { + "name": "Can add request for change", + "content_type": 14, + "codename": "add_requestforchange" + } +}, +{ + "model": "auth.permission", + "pk": 54, + "fields": { + "name": "Can change request for change", + "content_type": 14, + "codename": "change_requestforchange" + } +}, +{ + "model": "auth.permission", + "pk": 55, + "fields": { + "name": "Can delete request for change", + "content_type": 14, + "codename": "delete_requestforchange" + } +}, +{ + "model": "auth.permission", + "pk": 56, + "fields": { + "name": "Can view request for change", + "content_type": 14, + "codename": "view_requestforchange" + } +}, +{ + "model": "auth.permission", + "pk": 57, + "fields": { + "name": "Can add requirement", + "content_type": 15, + "codename": "add_requirement" + } +}, +{ + "model": "auth.permission", + "pk": 58, + "fields": { + "name": "Can change requirement", + "content_type": 15, + "codename": "change_requirement" + } +}, +{ + "model": "auth.permission", + "pk": 59, + "fields": { + "name": "Can delete requirement", + "content_type": 15, + "codename": "delete_requirement" + } +}, +{ + "model": "auth.permission", + "pk": 60, + "fields": { + "name": "Can view requirement", + "content_type": 15, + "codename": "view_requirement" + } +}, +{ + "model": "auth.permission", + "pk": 61, + "fields": { + "name": "Can add tag", + "content_type": 16, + "codename": "add_tag" + } +}, +{ + "model": "auth.permission", + "pk": 62, + "fields": { + "name": "Can change tag", + "content_type": 16, + "codename": "change_tag" + } +}, +{ + "model": "auth.permission", + "pk": 63, + "fields": { + "name": "Can delete tag", + "content_type": 16, + "codename": "delete_tag" + } +}, +{ + "model": "auth.permission", + "pk": 64, + "fields": { + "name": "Can view tag", + "content_type": 16, + "codename": "view_tag" + } +}, +{ + "model": "auth.permission", + "pk": 65, + "fields": { + "name": "Can add task", + "content_type": 17, + "codename": "add_task" + } +}, +{ + "model": "auth.permission", + "pk": 66, + "fields": { + "name": "Can change task", + "content_type": 17, + "codename": "change_task" + } +}, +{ + "model": "auth.permission", + "pk": 67, + "fields": { + "name": "Can delete task", + "content_type": 17, + "codename": "delete_task" + } +}, +{ + "model": "auth.permission", + "pk": 68, + "fields": { + "name": "Can view task", + "content_type": 17, + "codename": "view_task" + } +}, +{ + "model": "auth.permission", + "pk": 69, + "fields": { + "name": "Can add user profile picture", + "content_type": 18, + "codename": "add_userprofilepicture" + } +}, +{ + "model": "auth.permission", + "pk": 70, + "fields": { + "name": "Can change user profile picture", + "content_type": 18, + "codename": "change_userprofilepicture" + } +}, +{ + "model": "auth.permission", + "pk": 71, + "fields": { + "name": "Can delete user profile picture", + "content_type": 18, + "codename": "delete_userprofilepicture" + } +}, +{ + "model": "auth.permission", + "pk": 72, + "fields": { + "name": "Can view user profile picture", + "content_type": 18, + "codename": "view_userprofilepicture" + } +}, +{ + "model": "auth.permission", + "pk": 73, + "fields": { + "name": "Can add user group", + "content_type": 19, + "codename": "add_usergroup" + } +}, +{ + "model": "auth.permission", + "pk": 74, + "fields": { + "name": "Can change user group", + "content_type": 19, + "codename": "change_usergroup" + } +}, +{ + "model": "auth.permission", + "pk": 75, + "fields": { + "name": "Can delete user group", + "content_type": 19, + "codename": "delete_usergroup" + } +}, +{ + "model": "auth.permission", + "pk": 76, + "fields": { + "name": "Can view user group", + "content_type": 19, + "codename": "view_usergroup" + } +}, +{ + "model": "auth.permission", + "pk": 77, + "fields": { + "name": "Can add tag assignment", + "content_type": 20, + "codename": "add_tagassignment" + } +}, +{ + "model": "auth.permission", + "pk": 78, + "fields": { + "name": "Can change tag assignment", + "content_type": 20, + "codename": "change_tagassignment" + } +}, +{ + "model": "auth.permission", + "pk": 79, + "fields": { + "name": "Can delete tag assignment", + "content_type": 20, + "codename": "delete_tagassignment" + } +}, +{ + "model": "auth.permission", + "pk": 80, + "fields": { + "name": "Can view tag assignment", + "content_type": 20, + "codename": "view_tagassignment" + } +}, +{ + "model": "auth.permission", + "pk": 81, + "fields": { + "name": "Can add requirement item", + "content_type": 21, + "codename": "add_requirementitem" + } +}, +{ + "model": "auth.permission", + "pk": 82, + "fields": { + "name": "Can change requirement item", + "content_type": 21, + "codename": "change_requirementitem" + } +}, +{ + "model": "auth.permission", + "pk": 83, + "fields": { + "name": "Can delete requirement item", + "content_type": 21, + "codename": "delete_requirementitem" + } +}, +{ + "model": "auth.permission", + "pk": 84, + "fields": { + "name": "Can view requirement item", + "content_type": 21, + "codename": "view_requirementitem" + } +}, +{ + "model": "auth.permission", + "pk": 85, + "fields": { + "name": "Can add request for change group approval", + "content_type": 22, + "codename": "add_requestforchangegroupapproval" + } +}, +{ + "model": "auth.permission", + "pk": 86, + "fields": { + "name": "Can change request for change group approval", + "content_type": 22, + "codename": "change_requestforchangegroupapproval" + } +}, +{ + "model": "auth.permission", + "pk": 87, + "fields": { + "name": "Can delete request for change group approval", + "content_type": 22, + "codename": "delete_requestforchangegroupapproval" + } +}, +{ + "model": "auth.permission", + "pk": 88, + "fields": { + "name": "Can view request for change group approval", + "content_type": 22, + "codename": "view_requestforchangegroupapproval" + } +}, +{ + "model": "auth.permission", + "pk": 89, + "fields": { + "name": "Can add project", + "content_type": 23, + "codename": "add_project" + } +}, +{ + "model": "auth.permission", + "pk": 90, + "fields": { + "name": "Can change project", + "content_type": 23, + "codename": "change_project" + } +}, +{ + "model": "auth.permission", + "pk": 91, + "fields": { + "name": "Can delete project", + "content_type": 23, + "codename": "delete_project" + } +}, +{ + "model": "auth.permission", + "pk": 92, + "fields": { + "name": "Can view project", + "content_type": 23, + "codename": "view_project" + } +}, +{ + "model": "auth.permission", + "pk": 93, + "fields": { + "name": "Can add object note", + "content_type": 24, + "codename": "add_objectnote" + } +}, +{ + "model": "auth.permission", + "pk": 94, + "fields": { + "name": "Can change object note", + "content_type": 24, + "codename": "change_objectnote" + } +}, +{ + "model": "auth.permission", + "pk": 95, + "fields": { + "name": "Can delete object note", + "content_type": 24, + "codename": "delete_objectnote" + } +}, +{ + "model": "auth.permission", + "pk": 96, + "fields": { + "name": "Can view object note", + "content_type": 24, + "codename": "view_objectnote" + } +}, +{ + "model": "auth.permission", + "pk": 97, + "fields": { + "name": "Can add object assignment", + "content_type": 25, + "codename": "add_objectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 98, + "fields": { + "name": "Can change object assignment", + "content_type": 25, + "codename": "change_objectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 99, + "fields": { + "name": "Can delete object assignment", + "content_type": 25, + "codename": "delete_objectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 100, + "fields": { + "name": "Can view object assignment", + "content_type": 25, + "codename": "view_objectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 101, + "fields": { + "name": "Can add notification", + "content_type": 26, + "codename": "add_notification" + } +}, +{ + "model": "auth.permission", + "pk": 102, + "fields": { + "name": "Can change notification", + "content_type": 26, + "codename": "change_notification" + } +}, +{ + "model": "auth.permission", + "pk": 103, + "fields": { + "name": "Can delete notification", + "content_type": 26, + "codename": "delete_notification" + } +}, +{ + "model": "auth.permission", + "pk": 104, + "fields": { + "name": "Can view notification", + "content_type": 26, + "codename": "view_notification" + } +}, +{ + "model": "auth.permission", + "pk": 105, + "fields": { + "name": "Can add list of title", + "content_type": 27, + "codename": "add_listoftitle" + } +}, +{ + "model": "auth.permission", + "pk": 106, + "fields": { + "name": "Can change list of title", + "content_type": 27, + "codename": "change_listoftitle" + } +}, +{ + "model": "auth.permission", + "pk": 107, + "fields": { + "name": "Can delete list of title", + "content_type": 27, + "codename": "delete_listoftitle" + } +}, +{ + "model": "auth.permission", + "pk": 108, + "fields": { + "name": "Can view list of title", + "content_type": 27, + "codename": "view_listoftitle" + } +}, +{ + "model": "auth.permission", + "pk": 109, + "fields": { + "name": "Can add list of bug client", + "content_type": 28, + "codename": "add_listofbugclient" + } +}, +{ + "model": "auth.permission", + "pk": 110, + "fields": { + "name": "Can change list of bug client", + "content_type": 28, + "codename": "change_listofbugclient" + } +}, +{ + "model": "auth.permission", + "pk": 111, + "fields": { + "name": "Can delete list of bug client", + "content_type": 28, + "codename": "delete_listofbugclient" + } +}, +{ + "model": "auth.permission", + "pk": 112, + "fields": { + "name": "Can view list of bug client", + "content_type": 28, + "codename": "view_listofbugclient" + } +}, +{ + "model": "auth.permission", + "pk": 113, + "fields": { + "name": "Can add kanban level", + "content_type": 29, + "codename": "add_kanbanlevel" + } +}, +{ + "model": "auth.permission", + "pk": 114, + "fields": { + "name": "Can change kanban level", + "content_type": 29, + "codename": "change_kanbanlevel" + } +}, +{ + "model": "auth.permission", + "pk": 115, + "fields": { + "name": "Can delete kanban level", + "content_type": 29, + "codename": "delete_kanbanlevel" + } +}, +{ + "model": "auth.permission", + "pk": 116, + "fields": { + "name": "Can view kanban level", + "content_type": 29, + "codename": "view_kanbanlevel" + } +}, +{ + "model": "auth.permission", + "pk": 117, + "fields": { + "name": "Can add kanban column", + "content_type": 30, + "codename": "add_kanbancolumn" + } +}, +{ + "model": "auth.permission", + "pk": 118, + "fields": { + "name": "Can change kanban column", + "content_type": 30, + "codename": "change_kanbancolumn" + } +}, +{ + "model": "auth.permission", + "pk": 119, + "fields": { + "name": "Can delete kanban column", + "content_type": 30, + "codename": "delete_kanbancolumn" + } +}, +{ + "model": "auth.permission", + "pk": 120, + "fields": { + "name": "Can view kanban column", + "content_type": 30, + "codename": "view_kanbancolumn" + } +}, +{ + "model": "auth.permission", + "pk": 121, + "fields": { + "name": "Can add group permission", + "content_type": 31, + "codename": "add_grouppermission" + } +}, +{ + "model": "auth.permission", + "pk": 122, + "fields": { + "name": "Can change group permission", + "content_type": 31, + "codename": "change_grouppermission" + } +}, +{ + "model": "auth.permission", + "pk": 123, + "fields": { + "name": "Can delete group permission", + "content_type": 31, + "codename": "delete_grouppermission" + } +}, +{ + "model": "auth.permission", + "pk": 124, + "fields": { + "name": "Can view group permission", + "content_type": 31, + "codename": "view_grouppermission" + } +}, +{ + "model": "auth.permission", + "pk": 125, + "fields": { + "name": "Can add folder", + "content_type": 32, + "codename": "add_folder" + } +}, +{ + "model": "auth.permission", + "pk": 126, + "fields": { + "name": "Can change folder", + "content_type": 32, + "codename": "change_folder" + } +}, +{ + "model": "auth.permission", + "pk": 127, + "fields": { + "name": "Can delete folder", + "content_type": 32, + "codename": "delete_folder" + } +}, +{ + "model": "auth.permission", + "pk": 128, + "fields": { + "name": "Can view folder", + "content_type": 32, + "codename": "view_folder" + } +}, +{ + "model": "auth.permission", + "pk": 129, + "fields": { + "name": "Can add document permission", + "content_type": 33, + "codename": "add_documentpermission" + } +}, +{ + "model": "auth.permission", + "pk": 130, + "fields": { + "name": "Can change document permission", + "content_type": 33, + "codename": "change_documentpermission" + } +}, +{ + "model": "auth.permission", + "pk": 131, + "fields": { + "name": "Can delete document permission", + "content_type": 33, + "codename": "delete_documentpermission" + } +}, +{ + "model": "auth.permission", + "pk": 132, + "fields": { + "name": "Can view document permission", + "content_type": 33, + "codename": "view_documentpermission" + } +}, +{ + "model": "auth.permission", + "pk": 133, + "fields": { + "name": "Can add change task block", + "content_type": 34, + "codename": "add_changetaskblock" + } +}, +{ + "model": "auth.permission", + "pk": 134, + "fields": { + "name": "Can change change task block", + "content_type": 34, + "codename": "change_changetaskblock" + } +}, +{ + "model": "auth.permission", + "pk": 135, + "fields": { + "name": "Can delete change task block", + "content_type": 34, + "codename": "delete_changetaskblock" + } +}, +{ + "model": "auth.permission", + "pk": 136, + "fields": { + "name": "Can view change task block", + "content_type": 34, + "codename": "view_changetaskblock" + } +}, +{ + "model": "auth.permission", + "pk": 137, + "fields": { + "name": "Can add bug client", + "content_type": 35, + "codename": "add_bugclient" + } +}, +{ + "model": "auth.permission", + "pk": 138, + "fields": { + "name": "Can change bug client", + "content_type": 35, + "codename": "change_bugclient" + } +}, +{ + "model": "auth.permission", + "pk": 139, + "fields": { + "name": "Can delete bug client", + "content_type": 35, + "codename": "delete_bugclient" + } +}, +{ + "model": "auth.permission", + "pk": 140, + "fields": { + "name": "Can view bug client", + "content_type": 35, + "codename": "view_bugclient" + } +}, +{ + "model": "auth.permission", + "pk": 141, + "fields": { + "name": "Can add bug", + "content_type": 36, + "codename": "add_bug" + } +}, +{ + "model": "auth.permission", + "pk": 142, + "fields": { + "name": "Can change bug", + "content_type": 36, + "codename": "change_bug" + } +}, +{ + "model": "auth.permission", + "pk": 143, + "fields": { + "name": "Can delete bug", + "content_type": 36, + "codename": "delete_bug" + } +}, +{ + "model": "auth.permission", + "pk": 144, + "fields": { + "name": "Can view bug", + "content_type": 36, + "codename": "view_bug" + } +}, +{ + "model": "auth.permission", + "pk": 145, + "fields": { + "name": "Can add user setting", + "content_type": 37, + "codename": "add_usersetting" + } +}, +{ + "model": "auth.permission", + "pk": 146, + "fields": { + "name": "Can change user setting", + "content_type": 37, + "codename": "change_usersetting" + } +}, +{ + "model": "auth.permission", + "pk": 147, + "fields": { + "name": "Can delete user setting", + "content_type": 37, + "codename": "delete_usersetting" + } +}, +{ + "model": "auth.permission", + "pk": 148, + "fields": { + "name": "Can view user setting", + "content_type": 37, + "codename": "view_usersetting" + } +}, +{ + "model": "auth.permission", + "pk": 149, + "fields": { + "name": "Can add public link", + "content_type": 38, + "codename": "add_publiclink" + } +}, +{ + "model": "auth.permission", + "pk": 150, + "fields": { + "name": "Can change public link", + "content_type": 38, + "codename": "change_publiclink" + } +}, +{ + "model": "auth.permission", + "pk": 151, + "fields": { + "name": "Can delete public link", + "content_type": 38, + "codename": "delete_publiclink" + } +}, +{ + "model": "auth.permission", + "pk": 152, + "fields": { + "name": "Can view public link", + "content_type": 38, + "codename": "view_publiclink" + } +}, +{ + "model": "auth.permission", + "pk": 153, + "fields": { + "name": "Can add list of project status", + "content_type": 39, + "codename": "add_listofprojectstatus" + } +}, +{ + "model": "auth.permission", + "pk": 154, + "fields": { + "name": "Can change list of project status", + "content_type": 39, + "codename": "change_listofprojectstatus" + } +}, +{ + "model": "auth.permission", + "pk": 155, + "fields": { + "name": "Can delete list of project status", + "content_type": 39, + "codename": "delete_listofprojectstatus" + } +}, +{ + "model": "auth.permission", + "pk": 156, + "fields": { + "name": "Can view list of project status", + "content_type": 39, + "codename": "view_listofprojectstatus" + } +}, +{ + "model": "auth.permission", + "pk": 157, + "fields": { + "name": "Can add list of task status", + "content_type": 40, + "codename": "add_listoftaskstatus" + } +}, +{ + "model": "auth.permission", + "pk": 158, + "fields": { + "name": "Can change list of task status", + "content_type": 40, + "codename": "change_listoftaskstatus" + } +}, +{ + "model": "auth.permission", + "pk": 159, + "fields": { + "name": "Can delete list of task status", + "content_type": 40, + "codename": "delete_listoftaskstatus" + } +}, +{ + "model": "auth.permission", + "pk": 160, + "fields": { + "name": "Can view list of task status", + "content_type": 40, + "codename": "view_listoftaskstatus" + } +}, +{ + "model": "auth.permission", + "pk": 161, + "fields": { + "name": "Can add sprint", + "content_type": 41, + "codename": "add_sprint" + } +}, +{ + "model": "auth.permission", + "pk": 162, + "fields": { + "name": "Can change sprint", + "content_type": 41, + "codename": "change_sprint" + } +}, +{ + "model": "auth.permission", + "pk": 163, + "fields": { + "name": "Can delete sprint", + "content_type": 41, + "codename": "delete_sprint" + } +}, +{ + "model": "auth.permission", + "pk": 164, + "fields": { + "name": "Can view sprint", + "content_type": 41, + "codename": "view_sprint" + } +}, +{ + "model": "auth.permission", + "pk": 165, + "fields": { + "name": "Can add sprint audit table", + "content_type": 42, + "codename": "add_sprintaudittable" + } +}, +{ + "model": "auth.permission", + "pk": 166, + "fields": { + "name": "Can change sprint audit table", + "content_type": 42, + "codename": "change_sprintaudittable" + } +}, +{ + "model": "auth.permission", + "pk": 167, + "fields": { + "name": "Can delete sprint audit table", + "content_type": 42, + "codename": "delete_sprintaudittable" + } +}, +{ + "model": "auth.permission", + "pk": 168, + "fields": { + "name": "Can view sprint audit table", + "content_type": 42, + "codename": "view_sprintaudittable" + } +}, +{ + "model": "auth.permission", + "pk": 169, + "fields": { + "name": "Can add sprint object assignment", + "content_type": 43, + "codename": "add_sprintobjectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 170, + "fields": { + "name": "Can change sprint object assignment", + "content_type": 43, + "codename": "change_sprintobjectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 171, + "fields": { + "name": "Can delete sprint object assignment", + "content_type": 43, + "codename": "delete_sprintobjectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 172, + "fields": { + "name": "Can view sprint object assignment", + "content_type": 43, + "codename": "view_sprintobjectassignment" + } +}, +{ + "model": "auth.permission", + "pk": 173, + "fields": { + "name": "Can add user job", + "content_type": 44, + "codename": "add_userjob" + } +}, +{ + "model": "auth.permission", + "pk": 174, + "fields": { + "name": "Can change user job", + "content_type": 44, + "codename": "change_userjob" + } +}, +{ + "model": "auth.permission", + "pk": 175, + "fields": { + "name": "Can delete user job", + "content_type": 44, + "codename": "delete_userjob" + } +}, +{ + "model": "auth.permission", + "pk": 176, + "fields": { + "name": "Can view user job", + "content_type": 44, + "codename": "view_userjob" + } +}, +{ + "model": "auth.permission", + "pk": 177, + "fields": { + "name": "Can add object template", + "content_type": 45, + "codename": "add_objecttemplate" + } +}, +{ + "model": "auth.permission", + "pk": 178, + "fields": { + "name": "Can change object template", + "content_type": 45, + "codename": "change_objecttemplate" + } +}, +{ + "model": "auth.permission", + "pk": 179, + "fields": { + "name": "Can delete object template", + "content_type": 45, + "codename": "delete_objecttemplate" + } +}, +{ + "model": "auth.permission", + "pk": 180, + "fields": { + "name": "Can view object template", + "content_type": 45, + "codename": "view_objecttemplate" + } +}, +{ + "model": "auth.permission", + "pk": 181, + "fields": { + "name": "Can add object template group", + "content_type": 46, + "codename": "add_objecttemplategroup" + } +}, +{ + "model": "auth.permission", + "pk": 182, + "fields": { + "name": "Can change object template group", + "content_type": 46, + "codename": "change_objecttemplategroup" + } +}, +{ + "model": "auth.permission", + "pk": 183, + "fields": { + "name": "Can delete object template group", + "content_type": 46, + "codename": "delete_objecttemplategroup" + } +}, +{ + "model": "auth.permission", + "pk": 184, + "fields": { + "name": "Can view object template group", + "content_type": 46, + "codename": "view_objecttemplategroup" + } +}, +{ + "model": "auth.permission", + "pk": 185, + "fields": { + "name": "Can add scheduled object", + "content_type": 47, + "codename": "add_scheduledobject" + } +}, +{ + "model": "auth.permission", + "pk": 186, + "fields": { + "name": "Can change scheduled object", + "content_type": 47, + "codename": "change_scheduledobject" + } +}, +{ + "model": "auth.permission", + "pk": 187, + "fields": { + "name": "Can delete scheduled object", + "content_type": 47, + "codename": "delete_scheduledobject" + } +}, +{ + "model": "auth.permission", + "pk": 188, + "fields": { + "name": "Can view scheduled object", + "content_type": 47, + "codename": "view_scheduledobject" + } +}, +{ + "model": "auth.permission", + "pk": 189, + "fields": { + "name": "Can add log entry", + "content_type": 48, + "codename": "add_logentry" + } +}, +{ + "model": "auth.permission", + "pk": 190, + "fields": { + "name": "Can change log entry", + "content_type": 48, + "codename": "change_logentry" + } +}, +{ + "model": "auth.permission", + "pk": 191, + "fields": { + "name": "Can delete log entry", + "content_type": 48, + "codename": "delete_logentry" + } +}, +{ + "model": "auth.permission", + "pk": 192, + "fields": { + "name": "Can view log entry", + "content_type": 48, + "codename": "view_logentry" + } +}, +{ + "model": "auth.permission", + "pk": 193, + "fields": { + "name": "Can add permission", + "content_type": 49, + "codename": "add_permission" + } +}, +{ + "model": "auth.permission", + "pk": 194, + "fields": { + "name": "Can change permission", + "content_type": 49, + "codename": "change_permission" + } +}, +{ + "model": "auth.permission", + "pk": 195, + "fields": { + "name": "Can delete permission", + "content_type": 49, + "codename": "delete_permission" + } +}, +{ + "model": "auth.permission", + "pk": 196, + "fields": { + "name": "Can view permission", + "content_type": 49, + "codename": "view_permission" + } +}, +{ + "model": "auth.permission", + "pk": 197, + "fields": { + "name": "Can add group", + "content_type": 50, + "codename": "add_group" + } +}, +{ + "model": "auth.permission", + "pk": 198, + "fields": { + "name": "Can change group", + "content_type": 50, + "codename": "change_group" + } +}, +{ + "model": "auth.permission", + "pk": 199, + "fields": { + "name": "Can delete group", + "content_type": 50, + "codename": "delete_group" + } +}, +{ + "model": "auth.permission", + "pk": 200, + "fields": { + "name": "Can view group", + "content_type": 50, + "codename": "view_group" + } +}, +{ + "model": "auth.permission", + "pk": 201, + "fields": { + "name": "Can add user", + "content_type": 51, + "codename": "add_user" + } +}, +{ + "model": "auth.permission", + "pk": 202, + "fields": { + "name": "Can change user", + "content_type": 51, + "codename": "change_user" + } +}, +{ + "model": "auth.permission", + "pk": 203, + "fields": { + "name": "Can delete user", + "content_type": 51, + "codename": "delete_user" + } +}, +{ + "model": "auth.permission", + "pk": 204, + "fields": { + "name": "Can view user", + "content_type": 51, + "codename": "view_user" + } +}, +{ + "model": "auth.permission", + "pk": 205, + "fields": { + "name": "Can add content type", + "content_type": 52, + "codename": "add_contenttype" + } +}, +{ + "model": "auth.permission", + "pk": 206, + "fields": { + "name": "Can change content type", + "content_type": 52, + "codename": "change_contenttype" + } +}, +{ + "model": "auth.permission", + "pk": 207, + "fields": { + "name": "Can delete content type", + "content_type": 52, + "codename": "delete_contenttype" + } +}, +{ + "model": "auth.permission", + "pk": 208, + "fields": { + "name": "Can view content type", + "content_type": 52, + "codename": "view_contenttype" + } +}, +{ + "model": "auth.permission", + "pk": 209, + "fields": { + "name": "Can add session", + "content_type": 53, + "codename": "add_session" + } +}, +{ + "model": "auth.permission", + "pk": 210, + "fields": { + "name": "Can change session", + "content_type": 53, + "codename": "change_session" + } +}, +{ + "model": "auth.permission", + "pk": 211, + "fields": { + "name": "Can delete session", + "content_type": 53, + "codename": "delete_session" + } +}, +{ + "model": "auth.permission", + "pk": 212, + "fields": { + "name": "Can view session", + "content_type": 53, + "codename": "view_session" + } +}, { "model": "auth.user", "pk": 1, @@ -613,5 +2521,429 @@ "groups": [], "user_permissions": [] } +}, +{ + "model": "contenttypes.contenttype", + "pk": 1, + "fields": { + "app_label": "NearBeach", + "model": "changetask" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 2, + "fields": { + "app_label": "NearBeach", + "model": "customer" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 3, + "fields": { + "app_label": "NearBeach", + "model": "document" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 4, + "fields": { + "app_label": "NearBeach", + "model": "group" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 5, + "fields": { + "app_label": "NearBeach", + "model": "kanbanboard" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 6, + "fields": { + "app_label": "NearBeach", + "model": "kanbancard" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 7, + "fields": { + "app_label": "NearBeach", + "model": "listofrequirementitemstatus" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 8, + "fields": { + "app_label": "NearBeach", + "model": "listofrequirementitemtype" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 9, + "fields": { + "app_label": "NearBeach", + "model": "listofrequirementstatus" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 10, + "fields": { + "app_label": "NearBeach", + "model": "listofrequirementtype" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 11, + "fields": { + "app_label": "NearBeach", + "model": "listofrfcstatus" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 12, + "fields": { + "app_label": "NearBeach", + "model": "organisation" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 13, + "fields": { + "app_label": "NearBeach", + "model": "permissionset" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 14, + "fields": { + "app_label": "NearBeach", + "model": "requestforchange" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 15, + "fields": { + "app_label": "NearBeach", + "model": "requirement" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 16, + "fields": { + "app_label": "NearBeach", + "model": "tag" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 17, + "fields": { + "app_label": "NearBeach", + "model": "task" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 18, + "fields": { + "app_label": "NearBeach", + "model": "userprofilepicture" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 19, + "fields": { + "app_label": "NearBeach", + "model": "usergroup" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 20, + "fields": { + "app_label": "NearBeach", + "model": "tagassignment" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 21, + "fields": { + "app_label": "NearBeach", + "model": "requirementitem" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 22, + "fields": { + "app_label": "NearBeach", + "model": "requestforchangegroupapproval" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 23, + "fields": { + "app_label": "NearBeach", + "model": "project" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 24, + "fields": { + "app_label": "NearBeach", + "model": "objectnote" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 25, + "fields": { + "app_label": "NearBeach", + "model": "objectassignment" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 26, + "fields": { + "app_label": "NearBeach", + "model": "notification" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 27, + "fields": { + "app_label": "NearBeach", + "model": "listoftitle" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 28, + "fields": { + "app_label": "NearBeach", + "model": "listofbugclient" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 29, + "fields": { + "app_label": "NearBeach", + "model": "kanbanlevel" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 30, + "fields": { + "app_label": "NearBeach", + "model": "kanbancolumn" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 31, + "fields": { + "app_label": "NearBeach", + "model": "grouppermission" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 32, + "fields": { + "app_label": "NearBeach", + "model": "folder" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 33, + "fields": { + "app_label": "NearBeach", + "model": "documentpermission" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 34, + "fields": { + "app_label": "NearBeach", + "model": "changetaskblock" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 35, + "fields": { + "app_label": "NearBeach", + "model": "bugclient" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 36, + "fields": { + "app_label": "NearBeach", + "model": "bug" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 37, + "fields": { + "app_label": "NearBeach", + "model": "usersetting" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 38, + "fields": { + "app_label": "NearBeach", + "model": "publiclink" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 39, + "fields": { + "app_label": "NearBeach", + "model": "listofprojectstatus" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 40, + "fields": { + "app_label": "NearBeach", + "model": "listoftaskstatus" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 41, + "fields": { + "app_label": "NearBeach", + "model": "sprint" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 42, + "fields": { + "app_label": "NearBeach", + "model": "sprintaudittable" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 43, + "fields": { + "app_label": "NearBeach", + "model": "sprintobjectassignment" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 44, + "fields": { + "app_label": "NearBeach", + "model": "userjob" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 45, + "fields": { + "app_label": "NearBeach", + "model": "objecttemplate" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 46, + "fields": { + "app_label": "NearBeach", + "model": "objecttemplategroup" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 47, + "fields": { + "app_label": "NearBeach", + "model": "scheduledobject" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 48, + "fields": { + "app_label": "admin", + "model": "logentry" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 49, + "fields": { + "app_label": "auth", + "model": "permission" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 50, + "fields": { + "app_label": "auth", + "model": "group" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 51, + "fields": { + "app_label": "auth", + "model": "user" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 52, + "fields": { + "app_label": "contenttypes", + "model": "contenttype" + } +}, +{ + "model": "contenttypes.contenttype", + "pk": 53, + "fields": { + "app_label": "sessions", + "model": "session" + } } ] diff --git a/NearBeach/migrations/0032_rename_kanban_comment_permissionset_kanban_note_and_more.py b/NearBeach/migrations/0032_rename_kanban_comment_permissionset_kanban_note_and_more.py new file mode 100644 index 000000000..50dc21cc2 --- /dev/null +++ b/NearBeach/migrations/0032_rename_kanban_comment_permissionset_kanban_note_and_more.py @@ -0,0 +1,42 @@ +# Generated by Django 5.0.7 on 2024-09-23 11:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("NearBeach", "0031_update_to_permission_sets"), + ] + + operations = [ + migrations.RenameField( + model_name="permissionset", + old_name="kanban_comment", + new_name="kanban_note", + ), + migrations.RenameField( + model_name="permissionset", + old_name="project_history", + new_name="project_note", + ), + migrations.RenameField( + model_name="permissionset", + old_name="task_history", + new_name="task_note", + ), + migrations.AddField( + model_name="permissionset", + name="requirement_item_note", + field=models.IntegerField( + choices=[(0, "No Permission"), (1, "Has Permission")], default=0 + ), + ), + migrations.AddField( + model_name="permissionset", + name="requirement_note", + field=models.IntegerField( + choices=[(0, "No Permission"), (1, "Has Permission")], default=0 + ), + ), + ] diff --git a/NearBeach/migrations/0033_permissionset_organisation_note.py b/NearBeach/migrations/0033_permissionset_organisation_note.py new file mode 100644 index 000000000..daf11b464 --- /dev/null +++ b/NearBeach/migrations/0033_permissionset_organisation_note.py @@ -0,0 +1,20 @@ +# Generated by Django 5.0.7 on 2024-09-23 11:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("NearBeach", "0032_rename_kanban_comment_permissionset_kanban_note_and_more"), + ] + + operations = [ + migrations.AddField( + model_name="permissionset", + name="organisation_note", + field=models.IntegerField( + choices=[(0, "No Permission"), (1, "Has Permission")], default=0 + ), + ), + ] diff --git a/NearBeach/models.py b/NearBeach/models.py index 24666dcc8..abb79fc35 100644 --- a/NearBeach/models.py +++ b/NearBeach/models.py @@ -1339,15 +1339,27 @@ class PermissionSet(models.Model): choices=PERMISSION_BOOLEAN, default=0, ) - kanban_comment = models.IntegerField( + kanban_note = models.IntegerField( choices=PERMISSION_BOOLEAN, default=0, ) - project_history = models.IntegerField( + project_note = models.IntegerField( choices=PERMISSION_BOOLEAN, default=0, ) - task_history = models.IntegerField( + task_note = models.IntegerField( + choices=PERMISSION_BOOLEAN, + default=0, + ) + requirement_note = models.IntegerField( + choices=PERMISSION_BOOLEAN, + default=0, + ) + requirement_item_note = models.IntegerField( + choices=PERMISSION_BOOLEAN, + default=0, + ) + organisation_note = models.IntegerField( choices=PERMISSION_BOOLEAN, default=0, ) diff --git a/NearBeach/static/NearBeach/932.min.js b/NearBeach/static/NearBeach/932.min.js new file mode 100644 index 000000000..7ebf1a82c --- /dev/null +++ b/NearBeach/static/NearBeach/932.min.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunknearbeach=self.webpackChunknearbeach||[]).push([[932],{8838:(t,e,o)=>{o.d(e,{A:()=>f});var n,s=o(641),i=["onActivate","onAddUndo","onBeforeAddUndo","onBeforeExecCommand","onBeforeGetContent","onBeforeRenderUI","onBeforeSetContent","onBeforePaste","onBlur","onChange","onClearUndos","onClick","onContextMenu","onCommentChange","onCompositionEnd","onCompositionStart","onCompositionUpdate","onCopy","onCut","onDblclick","onDeactivate","onDirty","onDrag","onDragDrop","onDragEnd","onDragGesture","onDragOver","onDrop","onExecCommand","onFocus","onFocusIn","onFocusOut","onGetContent","onHide","onInit","onInput","onKeyDown","onKeyPress","onKeyUp","onLoadContent","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onNodeChange","onObjectResizeStart","onObjectResized","onObjectSelected","onPaste","onPostProcess","onPostRender","onPreProcess","onProgressState","onRedo","onRemove","onReset","onSaveContent","onSelectionChange","onSetAttrib","onSetContent","onShow","onSubmit","onUndo","onVisualAid"],a=function(t){return-1!==i.map((function(t){return t.toLowerCase()})).indexOf(t.toLowerCase())},r=0,l=function(t){var e=Date.now();return t+"_"+Math.floor(1e9*Math.random())+ ++r+String(e)},c=function(t){return void 0===t||""===t?[]:Array.isArray(t)?t:t.split(" ")},d=function(){return{listeners:[],scriptId:l("tiny-script"),scriptLoaded:!1}},u=(n=d(),{load:function(t,e,o){n.scriptLoaded?o():(n.listeners.push(o),t.getElementById(n.scriptId)||function(t,e,o){var s=e.createElement("script");s.referrerPolicy="origin",s.type="application/javascript",s.id=t,s.src=o;var i=function(){s.removeEventListener("load",i),n.listeners.forEach((function(t){return t()})),n.scriptLoaded=!0};s.addEventListener("load",i),e.head&&e.head.appendChild(s)}(n.scriptId,t,e))},reinitialize:function(){n=d()}}),m=function(){var t="undefined"!=typeof window?window:o.g;return t&&t.tinymce?t.tinymce:null},g={apiKey:String,licenseKey:String,cloudChannel:String,id:String,init:Object,initialValue:String,inline:Boolean,modelEvents:[String,Array],plugins:[String,Array],tagName:String,toolbar:[String,Array],modelValue:String,disabled:Boolean,tinymceScriptSrc:String,outputFormat:{type:String,validator:function(t){return"html"===t||"text"===t}}},p=o(953),h=function(){return h=Object.assign||function(t){for(var e,o=1,n=arguments.length;o{o.d(e,{A:()=>D});var n=o(641),s=o(33);const i={class:"customer-list"},a=["src"],r={class:"customer-card--details"},l={class:"customer-card--name"},c=["href"],d={class:"customer-card--email"},u={key:0,class:"customer-card--remove"};var m=o(9336),g=o(2321);const p={class:"modal fade",id:"confirmCustomerRemoveModal",tabindex:"-1","data-bs-backdrop":"static","data-bs-keyboard":"false","aria-labelledby":"confirmCustomerRemove","aria-hidden":"true"},h={class:"modal-dialog"},v={class:"modal-content"},f={class:"modal-body"},b={class:"customer-card--details"},y={class:"customer-card--name"},L=["href"],k={class:"customer-card--email"},C={class:"modal-footer"};var _=o(2124);const S={name:"ConfirmCustomerRemoval",emits:["remove_customer"],props:{customerObject:{type:Object,default:()=>({customer_id:0,customer_email:"",customer_first_name:"",customer_last_name:"",customer_profile_picture:""})}},computed:{...(0,_.L8)({destination:"getDestination",locationId:"getLocationId",rootUrl:"getRootUrl"})},methods:{closeModal(){document.getElementById("confirmCustomerRemoveButton").click()},removeCustomer(){const t=new FormData;t.set("customer_id",this.customerObject.customer_id);let e=`${this.rootUrl}object_data/${this.destination}/${this.locationId}/remove_customer/`;"organisation"===this.destination&&(e=`${this.rootUrl}customer_information/${this.locationId}/delete/`),this.axios.post(e,t).then((()=>{this.$emit("remove_customer",this.customerObject.customer_id)})).catch((t=>{this.$store.dispatch("newToast",{header:"Can't remove customer",message:`Sorry, could not remove customer. Error -> ${t}`,extra_classes:"bg-warning text-dark",delay:0})})),this.closeModal()}}};var I=o(6262);const A=(0,I.A)(S,[["render",function(t,e,o,i,a,r){return(0,n.uX)(),(0,n.CE)("div",p,[(0,n.Lk)("div",h,[(0,n.Lk)("div",v,[e[2]||(e[2]=(0,n.Lk)("div",{class:"modal-header"},[(0,n.Lk)("h5",{class:"modal-title",id:"confirmCustomerRemove"}," Please confirm Customer Removal "),(0,n.Q3)(" TASK INFORMATION "),(0,n.Lk)("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close",id:"confirmCustomerRemoveButton"})],-1)),(0,n.Lk)("div",f,[(0,n.Lk)("div",b,[(0,n.Lk)("div",y,[(0,n.Lk)("a",{href:`${t.rootUrl}customer_information/${o.customerObject.customer_id}/`,target:"_blank"},(0,s.toDisplayString)(o.customerObject.customer_first_name)+" "+(0,s.toDisplayString)(o.customerObject.customer_last_name),9,L)]),(0,n.Lk)("div",k,(0,s.toDisplayString)(o.customerObject.customer_email),1)])]),(0,n.Lk)("div",C,[(0,n.Lk)("button",{type:"button",class:"btn btn-secondary",onClick:e[0]||(e[0]=(...t)=>r.closeModal&&r.closeModal(...t))}," No "),(0,n.Lk)("button",{type:"button",class:"btn btn-primary",onClick:e[1]||(e[1]=(...t)=>r.removeCustomer&&r.removeCustomer(...t))}," Yes ")])])])])}]]);var w=o(2243);const T={name:"CustomersListModule",components:{ConfirmCustomerRemoval:A,Icon:g.In},props:{customerResults:{type:Array,default:()=>[]}},computed:{...(0,_.L8)({destination:"getDestination",locationId:"getLocationId",rootUrl:"getRootUrl",staticUrl:"getStaticUrl",userLevel:"getUserLevel"}),defaultCustomerImage(){return`${this.staticUrl}/NearBeach/images/placeholder/people_tax.svg`}},mixins:[w.A],data:()=>({customerObject:{customer_id:0,customer_email:"",customer_first_name:"",customer_last_name:"",customer_profile_picture:""}}),emits:["remove_customer"],methods:{confirmRemoveCustomer(t){const e=this.customerResults.filter((e=>parseInt(e.pk)===parseInt(t)));1===e.length?(this.customerObject=e.map((t=>({customer_id:t.pk,customer_email:t.fields.customer_email,customer_first_name:t.fields.customer_first_name,customer_last_name:t.fields.customer_last_name,customer_profile_picture:t.fields.customer_profile_picture})))[0],new m.aF(document.getElementById("confirmCustomerRemoveModal")).show()):this.$store.dispatch("newToast",{header:"Error Deleting Customer",message:"Could not select the correct ID of the customer. Something went wrong",extra_classes:"bg-danger",delay:0})},getCustomerImage(t){const e=t.fields.customer_profile_picture;return""===e||null===e?this.defaultCustomerImage:`${this.rootUrl}private/${e}`},removeCustomer(t){this.$emit("remove_customer",t)}}},D=(0,I.A)(T,[["render",function(t,e,o,m,g,p){const h=(0,n.g2)("Icon"),v=(0,n.g2)("confirm-customer-removal");return(0,n.uX)(),(0,n.CE)(n.FK,null,[(0,n.Lk)("div",i,[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(o.customerResults,(e=>((0,n.uX)(),(0,n.CE)("div",{key:e.pk,class:"customer-card"},[(0,n.Q3)(" CUSOMER PROFILE "),(0,n.Lk)("img",{src:p.getCustomerImage(e),alt:"default profile picture"},null,8,a),(0,n.Q3)(" CUSTOMER DETAILS "),(0,n.Lk)("div",r,[(0,n.Lk)("div",l,[(0,n.Lk)("a",{href:`${t.rootUrl}customer_information/${e.pk}/`},(0,s.toDisplayString)(e.fields.customer_first_name)+" "+(0,s.toDisplayString)(e.fields.customer_last_name),9,c)]),(0,n.Lk)("div",d,[(0,n.bF)(h,{icon:t.icons.mailIcon},null,8,["icon"]),(0,n.eW)(" "+(0,s.toDisplayString)(e.fields.customer_email),1)])]),t.userLevel>=2?((0,n.uX)(),(0,n.CE)("div",u,[(0,n.bF)(h,{icon:t.icons.trashCan,onClick:t=>p.confirmRemoveCustomer(e.pk)},null,8,["icon","onClick"])])):(0,n.Q3)("v-if",!0)])))),128))]),(0,n.bF)(v,{"customer-object":g.customerObject,onRemove_customer:e[0]||(e[0]=t=>p.removeCustomer(t))},null,8,["customer-object"])],64)}]])},7214:(t,e,o)=>{o.d(e,{A:()=>T});var n=o(641),s=o(33);const i={class:"text-instructions"},a={class:"tag-list"},r=["onClick"],l={class:"row submit-row"},c={class:"col-md-12"};var d=o(9336),u=o(2321),m=o(2243);const g={class:"modal fade",id:"addTagModal",tabindex:"-1","aria-labelledby":"exampleModalLabel","aria-hidden":"true"},p={class:"modal-dialog"},h={class:"modal-content"},v={class:"modal-header"},f={class:"modal-body"},b={class:"row"},y={class:"col-md-4"},L={class:"text-instructions"},k={class:"col-md-8"},C={class:"modal-footer"};var _=o(1080),S=o(2124);const I={name:"AddTagWizard",components:{Icon:u.In,NSelect:_.A},props:{assignedTags:{type:Array,default:()=>[]},destination:{type:String,default:""},locationId:{type:Number,default:0}},mixins:[m.A],data:()=>({allTagList:[],tagModel:[]}),computed:{...(0,S.L8)({rootUrl:"getRootUrl"}),tagList(){return this.allTagList.filter((t=>this.assignedTags.findIndex((e=>e.pk===parseInt(t.value)))<0))}},methods:{addTag(){const t=new FormData;this.tagModel.forEach((e=>{t.append("tag_id",e)})),this.axios.post(`${this.rootUrl}object_data/${this.destination}/${this.locationId}/add_tags/`,t).then((t=>{this.$emit("add_tags",t.data),document.getElementById("addTagsCloseButton").click(),this.tagModel=[]})).catch((t=>{this.$store.dispatch("newToast",{header:"Failed to add tag",message:`Sorry, we could not add tag. Errors -> ${t}`,extra_classes:"bg-danger",delay:0})}))},getTagList(){this.axios.post(`${this.rootUrl}object_data/tag_list_all/`).then((t=>{this.allTagList=t.data.map((t=>({value:t.pk,label:t.fields.tag_name})))})).catch((t=>{this.$store.dispatch("newToast",{header:"Failed to get tag list",message:`Sorry, we could not get the tag list. Errors -> ${t}`,extra_classes:"bg-danger",delay:0})}))}},mounted(){["requirement_item"].indexOf(this.destination)>=0||this.$nextTick((()=>{this.getTagList()}))}};var A=o(6262);const w={name:"ListTagsModule",components:{AddTagWizard:(0,A.A)(I,[["render",function(t,e,o,i,a,r){const l=(0,n.g2)("Icon"),c=(0,n.g2)("n-select");return(0,n.uX)(),(0,n.CE)("div",g,[(0,n.Lk)("div",p,[(0,n.Lk)("div",h,[(0,n.Lk)("div",v,[(0,n.Lk)("h2",null,[(0,n.bF)(l,{icon:t.icons.usersIcon},null,8,["icon"]),e[2]||(e[2]=(0,n.eW)(" Add Tags Wizard "))]),e[3]||(e[3]=(0,n.Lk)("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close",id:"addTagsCloseButton"},[(0,n.Lk)("span",{"aria-hidden":"true"})],-1))]),(0,n.Lk)("div",f,[(0,n.Lk)("div",b,[(0,n.Lk)("div",y,[e[4]||(e[4]=(0,n.Lk)("strong",null,"Add Tag",-1)),(0,n.Lk)("p",L," Use the dropdown to select one or many lables to add to the "+(0,s.toDisplayString)(o.destination)+". ",1)]),(0,n.Lk)("div",k,[e[5]||(e[5]=(0,n.Lk)("label",null,"All Tag List",-1)),(0,n.bF)(c,{label:"tag",multiple:"",options:r.tagList,value:a.tagModel,"onUpdate:value":e[0]||(e[0]=t=>a.tagModel=t)},null,8,["options","value"])])])]),(0,n.Lk)("div",C,[e[6]||(e[6]=(0,n.Lk)("button",{type:"button",class:"btn btn-secondary","data-bs-dismiss":"modal"}," Close ",-1)),(0,n.Lk)("button",{type:"button",class:"btn btn-primary",onClick:e[1]||(e[1]=(...t)=>r.addTag&&r.addTag(...t))}," Add Tag ")])])])])}]]),Icon:u.In},data:()=>({tagList:[]}),mixins:[m.A],computed:{...(0,S.L8)({destination:"getDestination",locationId:"getLocationId",rootUrl:"getRootUrl",userLevel:"getUserLevel"})},methods:{addTags(t){this.tagList=t},createNewTag(){new d.aF(document.getElementById("addTagModal")).show()},getAssignedTags(){this.axios.post(`${this.rootUrl}object_data/${this.destination}/${this.locationId}/tag_list/`).then((t=>{this.tagList=t.data})).catch((t=>{}))},removeTag(t){if(this.userLevel<=1)return;const e=new FormData;e.set("tag",t),e.set("object_enum",this.destination),e.set("object_id",this.locationId),this.axios.post(`${this.rootUrl}object_data/delete_tag/`,e).then((e=>{this.tagList=this.tagList.filter((e=>e.pk!==t))})).catch((t=>{}))}},mounted(){["requirement_item"].indexOf(this.destination)>=0||this.$nextTick((()=>{this.getAssignedTags()}))}},T=(0,A.A)(w,[["render",function(t,e,o,d,u,m){const g=(0,n.g2)("Icon"),p=(0,n.g2)("add-tag-wizard");return(0,n.uX)(),(0,n.CE)("div",null,[e[2]||(e[2]=(0,n.Lk)("h2",null,"Assigned Tags",-1)),(0,n.Lk)("p",i," Here are all tags associated with this "+(0,s.toDisplayString)(t.destination)+'. You can add more tags by clicking on the "Add Tag" button. ',1),(0,n.Lk)("div",a,[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(u.tagList,(e=>((0,n.uX)(),(0,n.CE)("div",{key:e.pk,class:"single-tag",style:(0,s.normalizeStyle)(`background-color: ${e.fields.tag_colour};color: ${e.fields.tag_text_colour};`)},[(0,n.eW)((0,s.toDisplayString)(e.fields.tag_name)+" ",1),(0,n.Lk)("span",{onClick:t=>m.removeTag(e.pk)},[t.userLevel>1?((0,n.uX)(),(0,n.Wv)(g,{key:0,icon:t.icons.xCircle},null,8,["icon"])):(0,n.Q3)("v-if",!0)],8,r)],4)))),128))]),(0,n.Q3)(" ADD TAG BUTTON "),(0,n.Lk)("div",l,[(0,n.Lk)("div",c,[t.userLevel>1?((0,n.uX)(),(0,n.CE)("a",{key:0,href:"javascript:void(0)",class:"btn btn-primary save-changes",onClick:e[0]||(e[0]=(...t)=>m.createNewTag&&m.createNewTag(...t))},"Add Tag to "+(0,s.toDisplayString)(t.destination),1)):(0,n.Q3)("v-if",!0)])]),(0,n.Q3)(" ADD TAG MODULE "),(0,n.bF)(p,{destination:t.destination,"location-id":t.locationId,"assigned-tags":u.tagList,onAdd_tags:e[1]||(e[1]=t=>m.addTags(t))},null,8,["destination","location-id","assigned-tags"])])}]])},2180:(t,e,o)=>{o.d(e,{A:()=>v});var n=o(641),s=o(33);const i={class:"text-instructions"},a={key:0},r={class:"row submit-row"},l={class:"col-md-12"};var c=o(9336),d=o(2243),u=o(2321),m=o(531),g=o(4365),p=o(2124);const h={name:"NotesModule",components:{Icon:u.In,ListNotes:m.A,NewHistoryNoteWizard:g.A},mixins:[d.A],computed:{...(0,p.L8)({destination:"getDestination",locationId:"getLocationId",userLevel:"getUserLevel",rootUrl:"getRootUrl"}),...(0,p.L8)(["getUserExtraPermission"]),hasNotePermission(){return this.getUserExtraPermission(`${this.destination}_note`)}},methods:{createNewNote(){new c.aF(document.getElementById("newNoteModal")).show()},getNoteHistoryResults(){let t="note_list";"organisation"===this.destination&&(t="organisation_note_list"),this.axios.post(`${this.rootUrl}object_data/${this.destination}/${this.locationId}/${t}/`).then((t=>{this.$store.commit({type:"initNoteList",noteList:t.data})})).catch((t=>{this.$store.dispatch("newToast",{header:"Error Getting Note History",message:`Can not retrieve the note history. Error -> ${t}`,extra_classes:"bg-danger",delay:0})}))}},mounted(){this.$nextTick((()=>{this.getNoteHistoryResults()}))}},v=(0,o(6262).A)(h,[["render",function(t,e,o,c,d,u){const m=(0,n.g2)("Icon"),g=(0,n.g2)("list-notes");return(0,n.uX)(),(0,n.CE)("div",null,[(0,n.Lk)("h2",null,[(0,n.bF)(m,{icon:t.icons.noteAdd},null,8,["icon"]),e[1]||(e[1]=(0,n.eW)(" Note History "))]),(0,n.Lk)("p",i," The following are saved notes against this "+(0,s.toDisplayString)(t.destination)+". Add notes by clicking on the button below. ",1),(0,n.bF)(g,{destination:t.destination},null,8,["destination"]),(0,n.Q3)(" ADD NOTE HISTORY "),t.userLevel>1||u.hasNotePermission?((0,n.uX)(),(0,n.CE)("hr",a)):(0,n.Q3)("v-if",!0),(0,n.Lk)("div",r,[(0,n.Lk)("div",l,[t.userLevel>1||u.hasNotePermission?((0,n.uX)(),(0,n.CE)("button",{key:0,class:"btn btn-primary save-changes",onClick:e[0]||(e[0]=(...t)=>u.createNewNote&&u.createNewNote(...t))}," Add Note to "+(0,s.toDisplayString)(t.destination),1)):(0,n.Q3)("v-if",!0)])])])}]])},469:(t,e,o)=>{o.d(e,{A:()=>f});var n=o(641),s=o(33);const i={class:"object-card-list"},a={class:"object-card--detail"},r=["href"],l={class:"object-card--detail--link"},c={class:"object-card--detail--description"},d={class:"object-card--status"},u=["href"],m={class:"object-card--status--status"},g={class:"small-text"};var p=o(8083),h=o(2124);const v={name:"RenderObjectCard",props:{destination:{type:String,default:""},importVariables:{type:Object,default:()=>({header:"",prefix:"",id:0,title:"",status:""})},searchResults:{type:Array,default:()=>[]}},mixins:[p.A],computed:{...(0,h.L8)({rootUrl:"getRootUrl"})}},f=(0,o(6262).A)(v,[["render",function(t,e,o,p,h,v){return(0,n.uX)(),(0,n.CE)("div",i,[(0,n.Lk)("h2",null,(0,s.toDisplayString)(o.importVariables.header),1),((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(o.searchResults,(e=>((0,n.uX)(),(0,n.CE)("div",{class:"object-card",key:e.pk},[(0,n.Lk)("div",a,[(0,n.Lk)("a",{href:`${t.rootUrl}${o.destination}_information/${e[o.importVariables.id]}/`},[(0,n.Lk)("div",l,(0,s.toDisplayString)(o.importVariables.prefix)+(0,s.toDisplayString)(e[o.importVariables.id]),1),(0,n.Lk)("div",c,(0,s.toDisplayString)(e[o.importVariables.title]),1)],8,r)]),(0,n.Lk)("div",d,[(0,n.Lk)("a",{href:`${t.rootUrl}${o.destination}_information/${e[o.importVariables.id]}/`},[(0,n.Lk)("div",m,(0,s.toDisplayString)(e[o.importVariables.status]),1),(0,n.Lk)("p",g,(0,s.toDisplayString)(t.getNiceDatetime(e[o.importVariables.end_date])),1)],8,u)])])))),128))])}]])}}]); \ No newline at end of file diff --git a/NearBeach/static/NearBeach/932.min.js.gz b/NearBeach/static/NearBeach/932.min.js.gz new file mode 100644 index 000000000..09b548b39 Binary files /dev/null and b/NearBeach/static/NearBeach/932.min.js.gz differ diff --git a/NearBeach/static/NearBeach/NearBeach.min.js b/NearBeach/static/NearBeach/NearBeach.min.js index 7674ba542..0889e6b68 100644 --- a/NearBeach/static/NearBeach/NearBeach.min.js +++ b/NearBeach/static/NearBeach/NearBeach.min.js @@ -1,2 +1,2 @@ /*! For license information please see NearBeach.min.js.LICENSE.txt */ -(()=>{"use strict";var t,e,r={6795:(t,e,r)=>{r.d(e,{A:()=>o});const o=function(t){for(var e,r=0,o=0,n=t.length;n>=4;++o,n-=4)e=1540483477*(65535&(e=255&t.charCodeAt(o)|(255&t.charCodeAt(++o))<<8|(255&t.charCodeAt(++o))<<16|(255&t.charCodeAt(++o))<<24))+(59797*(e>>>16)<<16),r=1540483477*(65535&(e^=e>>>24))+(59797*(e>>>16)<<16)^1540483477*(65535&r)+(59797*(r>>>16)<<16);switch(n){case 3:r^=(255&t.charCodeAt(o+2))<<16;case 2:r^=(255&t.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&t.charCodeAt(o)))+(59797*(r>>>16)<<16)}return(((r=1540483477*(65535&(r^=r>>>13))+(59797*(r>>>16)<<16))^r>>>15)>>>0).toString(36)}},8764:(t,e,r)=>{r.r(e),r.d(e,{BASE_TRANSITION:()=>l,BindingTypes:()=>Oo,CAMELIZE:()=>R,CAPITALIZE:()=>L,CREATE_BLOCK:()=>d,CREATE_COMMENT:()=>b,CREATE_ELEMENT_BLOCK:()=>p,CREATE_ELEMENT_VNODE:()=>m,CREATE_SLOTS:()=>E,CREATE_STATIC:()=>g,CREATE_TEXT:()=>f,CREATE_VNODE:()=>u,CompilerDeprecationTypes:()=>Et,ConstantTypes:()=>W,DOMDirectiveTransforms:()=>Qo,DOMErrorCodes:()=>Ho,DOMErrorMessages:()=>qo,DOMNodeTransforms:()=>Zo,ElementTypes:()=>X,ErrorCodes:()=>Lt,FRAGMENT:()=>n,GUARD_REACTIVE_PROPS:()=>N,IS_MEMO_SAME:()=>$,IS_REF:()=>V,KEEP_ALIVE:()=>s,MERGE_PROPS:()=>T,NORMALIZE_CLASS:()=>O,NORMALIZE_PROPS:()=>C,NORMALIZE_STYLE:()=>A,Namespaces:()=>q,NodeTypes:()=>G,OPEN_BLOCK:()=>c,POP_SCOPE_ID:()=>j,PUSH_SCOPE_ID:()=>P,RENDER_LIST:()=>_,RENDER_SLOT:()=>k,RESOLVE_COMPONENT:()=>h,RESOLVE_DIRECTIVE:()=>y,RESOLVE_DYNAMIC_COMPONENT:()=>v,RESOLVE_FILTER:()=>x,SET_BLOCK_TRACKING:()=>M,SUSPENSE:()=>a,TELEPORT:()=>i,TO_DISPLAY_STRING:()=>S,TO_HANDLERS:()=>I,TO_HANDLER_KEY:()=>D,TRANSITION:()=>jo,TRANSITION_GROUP:()=>Fo,TS_NODE_TYPES:()=>Xt,UNREF:()=>z,V_MODEL_CHECKBOX:()=>No,V_MODEL_DYNAMIC:()=>Lo,V_MODEL_RADIO:()=>Co,V_MODEL_SELECT:()=>Ro,V_MODEL_TEXT:()=>Io,V_ON_WITH_KEYS:()=>Mo,V_ON_WITH_MODIFIERS:()=>Do,V_SHOW:()=>Po,WITH_CTX:()=>F,WITH_DIRECTIVES:()=>w,WITH_MEMO:()=>U,advancePositionWithClone:()=>de,advancePositionWithMutation:()=>pe,assert:()=>ue,baseCompile:()=>To,baseParse:()=>cr,buildDirectiveArgs:()=>so,buildProps:()=>no,buildSlots:()=>Jr,checkCompatEnabled:()=>At,compile:()=>tn,convertToBlock:()=>gt,createArrayExpression:()=>Z,createAssignmentExpression:()=>pt,createBlockStatement:()=>lt,createCacheExpression:()=>st,createCallExpression:()=>nt,createCompilerError:()=>Rt,createCompoundExpression:()=>ot,createConditionalExpression:()=>at,createDOMCompilerError:()=>Bo,createForLoopParams:()=>Gr,createFunctionExpression:()=>it,createIfStatement:()=>dt,createInterpolation:()=>rt,createObjectExpression:()=>Q,createObjectProperty:()=>tt,createReturnStatement:()=>mt,createRoot:()=>K,createSequenceExpression:()=>ut,createSimpleExpression:()=>et,createStructuralDirectiveTransform:()=>wr,createTemplateLiteral:()=>ct,createTransformContext:()=>vr,createVNodeCall:()=>J,errorMessages:()=>Dt,extractIdentifiers:()=>Bt,findDir:()=>me,findProp:()=>be,forAliasRE:()=>Ae,generate:()=>Er,generateCodeFrame:()=>o.generateCodeFrame,getBaseTransformPreset:()=>So,getConstantType:()=>mr,getMemoedVNodeCall:()=>Oe,getVNodeBlockHelper:()=>ft,getVNodeHelper:()=>bt,hasDynamicKeyVBind:()=>ge,hasScopeRef:()=>Te,helperNameMap:()=>B,injectProp:()=>ke,isCoreComponent:()=>Kt,isFnExpression:()=>ce,isFnExpressionBrowser:()=>se,isFnExpressionNode:()=>le,isFunctionType:()=>Ht,isInDestructureAssignment:()=>jt,isInNewExpression:()=>Ft,isMemberExpression:()=>ie,isMemberExpressionBrowser:()=>oe,isMemberExpressionNode:()=>ne,isReferencedIdentifier:()=>Pt,isSimpleIdentifier:()=>Zt,isSlotOutlet:()=>xe,isStaticArgOf:()=>fe,isStaticExp:()=>Yt,isStaticProperty:()=>qt,isStaticPropertyKey:()=>Gt,isTemplateNode:()=>ye,isText:()=>he,isVSlot:()=>ve,locStub:()=>Y,noopDirectiveTransform:()=>Ao,parse:()=>en,parserOptions:()=>Vo,processExpression:()=>Lr,processFor:()=>Hr,processIf:()=>Pr,processSlotOutlet:()=>po,registerRuntimeHelpers:()=>H,resolveComponentType:()=>oo,stringifyExpression:()=>Dr,toValidAssetId:()=>Se,trackSlotScopes:()=>Wr,trackVForSlotScopes:()=>Yr,transform:()=>yr,transformBind:()=>Vr,transformElement:()=>ro,transformExpression:()=>Rr,transformModel:()=>go,transformOn:()=>uo,transformStyle:()=>Uo,traverseNode:()=>xr,unwrapTSNode:()=>Wt,walkBlockDeclarations:()=>Vt,walkFunctionParams:()=>zt,walkIdentifiers:()=>Mt,warnDeprecation:()=>Ct});var o=r(33);const n=Symbol(""),i=Symbol(""),a=Symbol(""),s=Symbol(""),l=Symbol(""),c=Symbol(""),d=Symbol(""),p=Symbol(""),u=Symbol(""),m=Symbol(""),b=Symbol(""),f=Symbol(""),g=Symbol(""),h=Symbol(""),v=Symbol(""),y=Symbol(""),x=Symbol(""),w=Symbol(""),_=Symbol(""),k=Symbol(""),E=Symbol(""),S=Symbol(""),T=Symbol(""),O=Symbol(""),A=Symbol(""),C=Symbol(""),N=Symbol(""),I=Symbol(""),R=Symbol(""),L=Symbol(""),D=Symbol(""),M=Symbol(""),P=Symbol(""),j=Symbol(""),F=Symbol(""),z=Symbol(""),V=Symbol(""),U=Symbol(""),$=Symbol(""),B={[n]:"Fragment",[i]:"Teleport",[a]:"Suspense",[s]:"KeepAlive",[l]:"BaseTransition",[c]:"openBlock",[d]:"createBlock",[p]:"createElementBlock",[u]:"createVNode",[m]:"createElementVNode",[b]:"createCommentVNode",[f]:"createTextVNode",[g]:"createStaticVNode",[h]:"resolveComponent",[v]:"resolveDynamicComponent",[y]:"resolveDirective",[x]:"resolveFilter",[w]:"withDirectives",[_]:"renderList",[k]:"renderSlot",[E]:"createSlots",[S]:"toDisplayString",[T]:"mergeProps",[O]:"normalizeClass",[A]:"normalizeStyle",[C]:"normalizeProps",[N]:"guardReactiveProps",[I]:"toHandlers",[R]:"camelize",[L]:"capitalize",[D]:"toHandlerKey",[M]:"setBlockTracking",[P]:"pushScopeId",[j]:"popScopeId",[F]:"withCtx",[z]:"unref",[V]:"isRef",[U]:"withMemo",[$]:"isMemoSame"};function H(t){Object.getOwnPropertySymbols(t).forEach((e=>{B[e]=t[e]}))}const q={HTML:0,0:"HTML",SVG:1,1:"SVG",MATH_ML:2,2:"MATH_ML"},G={ROOT:0,0:"ROOT",ELEMENT:1,1:"ELEMENT",TEXT:2,2:"TEXT",COMMENT:3,3:"COMMENT",SIMPLE_EXPRESSION:4,4:"SIMPLE_EXPRESSION",INTERPOLATION:5,5:"INTERPOLATION",ATTRIBUTE:6,6:"ATTRIBUTE",DIRECTIVE:7,7:"DIRECTIVE",COMPOUND_EXPRESSION:8,8:"COMPOUND_EXPRESSION",IF:9,9:"IF",IF_BRANCH:10,10:"IF_BRANCH",FOR:11,11:"FOR",TEXT_CALL:12,12:"TEXT_CALL",VNODE_CALL:13,13:"VNODE_CALL",JS_CALL_EXPRESSION:14,14:"JS_CALL_EXPRESSION",JS_OBJECT_EXPRESSION:15,15:"JS_OBJECT_EXPRESSION",JS_PROPERTY:16,16:"JS_PROPERTY",JS_ARRAY_EXPRESSION:17,17:"JS_ARRAY_EXPRESSION",JS_FUNCTION_EXPRESSION:18,18:"JS_FUNCTION_EXPRESSION",JS_CONDITIONAL_EXPRESSION:19,19:"JS_CONDITIONAL_EXPRESSION",JS_CACHE_EXPRESSION:20,20:"JS_CACHE_EXPRESSION",JS_BLOCK_STATEMENT:21,21:"JS_BLOCK_STATEMENT",JS_TEMPLATE_LITERAL:22,22:"JS_TEMPLATE_LITERAL",JS_IF_STATEMENT:23,23:"JS_IF_STATEMENT",JS_ASSIGNMENT_EXPRESSION:24,24:"JS_ASSIGNMENT_EXPRESSION",JS_SEQUENCE_EXPRESSION:25,25:"JS_SEQUENCE_EXPRESSION",JS_RETURN_STATEMENT:26,26:"JS_RETURN_STATEMENT"},X={ELEMENT:0,0:"ELEMENT",COMPONENT:1,1:"COMPONENT",SLOT:2,2:"SLOT",TEMPLATE:3,3:"TEMPLATE"},W={NOT_CONSTANT:0,0:"NOT_CONSTANT",CAN_SKIP_PATCH:1,1:"CAN_SKIP_PATCH",CAN_CACHE:2,2:"CAN_CACHE",CAN_STRINGIFY:3,3:"CAN_STRINGIFY"},Y={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function K(t,e=""){return{type:0,source:e,children:t,helpers:new Set,components:[],directives:[],hoists:[],imports:[],cached:[],temps:0,codegenNode:void 0,loc:Y}}function J(t,e,r,o,n,i,a,s=!1,l=!1,d=!1,p=Y){return t&&(s?(t.helper(c),t.helper(ft(t.inSSR,d))):t.helper(bt(t.inSSR,d)),a&&t.helper(w)),{type:13,tag:e,props:r,children:o,patchFlag:n,dynamicProps:i,directives:a,isBlock:s,disableTracking:l,isComponent:d,loc:p}}function Z(t,e=Y){return{type:17,loc:e,elements:t}}function Q(t,e=Y){return{type:15,loc:e,properties:t}}function tt(t,e){return{type:16,loc:Y,key:(0,o.isString)(t)?et(t,!0):t,value:e}}function et(t,e=!1,r=Y,o=0){return{type:4,loc:r,content:t,isStatic:e,constType:e?3:o}}function rt(t,e){return{type:5,loc:e,content:(0,o.isString)(t)?et(t,!1,e):t}}function ot(t,e=Y){return{type:8,loc:e,children:t}}function nt(t,e=[],r=Y){return{type:14,loc:r,callee:t,arguments:e}}function it(t,e=void 0,r=!1,o=!1,n=Y){return{type:18,params:t,returns:e,newline:r,isSlot:o,loc:n}}function at(t,e,r,o=!0){return{type:19,test:t,consequent:e,alternate:r,newline:o,loc:Y}}function st(t,e,r=!1){return{type:20,index:t,value:e,needPauseTracking:r,needArraySpread:!1,loc:Y}}function lt(t){return{type:21,body:t,loc:Y}}function ct(t){return{type:22,elements:t,loc:Y}}function dt(t,e,r){return{type:23,test:t,consequent:e,alternate:r,loc:Y}}function pt(t,e){return{type:24,left:t,right:e,loc:Y}}function ut(t){return{type:25,expressions:t,loc:Y}}function mt(t){return{type:26,returns:t,loc:Y}}function bt(t,e){return t||e?u:m}function ft(t,e){return t||e?d:p}function gt(t,{helper:e,removeHelper:r,inSSR:o}){t.isBlock||(t.isBlock=!0,r(bt(o,t.isComponent)),e(c),e(ft(o,t.isComponent)))}const ht=new Uint8Array([123,123]),vt=new Uint8Array([125,125]);function yt(t){return t>=97&&t<=122||t>=65&&t<=90}function xt(t){return 32===t||10===t||9===t||12===t||13===t}function wt(t){return 47===t||62===t||xt(t)}function _t(t){const e=new Uint8Array(t.length);for(let r=0;r`.sync modifier for v-bind has been removed. Use v-model with argument instead. \`v-bind:${t}.sync\` should be changed to \`v-model:${t}\`.`,link:"https://v3-migration.vuejs.org/breaking-changes/v-model.html"},COMPILER_V_BIND_OBJECT_ORDER:{message:'v-bind="obj" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.',link:"https://v3-migration.vuejs.org/breaking-changes/v-bind.html"},COMPILER_V_ON_NATIVE:{message:".native modifier for v-on has been removed as is no longer necessary.",link:"https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html"},COMPILER_V_IF_V_FOR_PRECEDENCE:{message:"v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with