Skip to content

Commit

Permalink
unique menu, reset account status on new approval request
Browse files Browse the repository at this point in the history
  • Loading branch information
TareqMonwer committed Dec 31, 2024
1 parent 81250a6 commit f31fc13
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 7 deletions.
17 changes: 11 additions & 6 deletions django_school_management/accounts/services/menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,28 +17,33 @@ def get_user_groups(self, user: User) -> Set[str]:
return set(user.groups.values_list("name", flat=True))

def add_urls_to_menu(
self, menu_items: List[Dict[str, str]], urls: List[Dict[str, str]]
self,
menu_items: List[Dict[str, str]],
urls: List[Dict[str, str]],
added_urls: Set[str],
) -> None:
"""
Add reversed URLs and titles to the menu_items list.
Add reversed URLs and titles to the menu_items list, ensuring only unique URLs are added.
"""
for url in urls:
menu_items.append(
{"url": reverse(url["name"]), "title": url["title"]}
)
reversed_url = reverse(url["name"])
if reversed_url not in added_urls:
menu_items.append({"url": reversed_url, "title": url["title"]})
added_urls.add(reversed_url)

def get_menu_items(self, section: str, user: User) -> List[Dict[str, str]]:
"""
Retrieve menu items for a given section based on the user's groups.
"""
user_groups = self.get_user_groups(user)
menu_items = []
added_urls = set()

if section not in self.menu_config:
return menu_items

for entry in self.menu_config[section]:
if user_groups & entry["groups"]:
self.add_urls_to_menu(menu_items, entry["urls"])
self.add_urls_to_menu(menu_items, entry["urls"], added_urls)

return menu_items
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ def _handle_handle_approval_submit(self) -> None:
verification_form.instance.approval_status = 'p'
# approval status get's pending
verification_form.save()
self.user.approval_status = 'p'
self.user.save()
self.session_messages.add_message(
self.request,
self.session_messages.SUCCESS,
Expand Down
2 changes: 1 addition & 1 deletion django_school_management/accounts/utils/menu_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
],
},
{
"groups": {"academic_officer"},
"groups": {"admin", "academic_officer"},
"urls": [
add_student,
all_students,
Expand Down
21 changes: 21 additions & 0 deletions django_school_management/result/constants.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from enum import Enum


class TeachersURLEnums(Enum):
all_teacher = "all/"
add_teacher = "add/"
teacher_details = "<int:pk>/details/"
update_teacher = "<int:pk>/update/"
delete_teacher = "<int:pk>/delete/"
designations = "designations/"
create_designation = "create/designation/"


class TeachersURLConstants:
all_teacher = f"teachers:{TeachersURLEnums.all_teacher.name}"
add_teacher = f"teachers:{TeachersURLEnums.add_teacher.name}"
teacher_details = f"teachers:{TeachersURLEnums.teacher_details.name}"
update_teacher = f"teachers:{TeachersURLEnums.update_teacher.name}"
delete_teacher = f"teachers:{TeachersURLEnums.delete_teacher.name}"
designations = f"teachers:{TeachersURLEnums.designations.name}"
create_designation = f"teachers:{TeachersURLEnums.create_designation.name}"

0 comments on commit f31fc13

Please sign in to comment.