diff --git a/project/cbv/dashboard.py b/project/cbv/dashboard.py index c28c46628..d37da16f1 100644 --- a/project/cbv/dashboard.py +++ b/project/cbv/dashboard.py @@ -79,11 +79,11 @@ class ProjectDetailView(HorillaDetailedView): "description": 12, } - def __init__(self, **kwargs: Any) -> None: - super().__init__(**kwargs) - instnce_id = resolve(self.request.path_info).kwargs.get("pk") + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + instance_id = resolve(self.request.path_info).kwargs.get("pk") employee = self.request.user.employee_get - project = Project.objects.get(id=instnce_id) + project = Project.objects.get(id=instance_id) if ( employee in project.managers.all() or employee in project.members.all() @@ -99,6 +99,8 @@ class ProjectDetailView(HorillaDetailedView): """, } ] + context["actions"] = self.actions + return context def get_queryset(self) -> QuerySet[Any]: queryset = super().get_queryset() diff --git a/project/cbv/projects.py b/project/cbv/projects.py index d068a1acf..9e9c74dac 100644 --- a/project/cbv/projects.py +++ b/project/cbv/projects.py @@ -346,9 +346,12 @@ class ProjectCardView(HorillaCardView): queryset = task_filter | project_filter return queryset.distinct() - def __init__(self, **kwargs: Any) -> None: + def __init__(self, **kwargs): super().__init__(**kwargs) self.search_url = reverse("project-card-view") + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) if ( self.request.user.has_perm("project.change_project") or self.request.user.has_perm("project.delete_project") @@ -388,6 +391,8 @@ class ProjectCardView(HorillaCardView): """, }, ] + context["actions"] = self.actions + return context details = { "image_src": "get_avatar", diff --git a/project/cbv/tasks.py b/project/cbv/tasks.py index 627817823..bd6ca04a4 100644 --- a/project/cbv/tasks.py +++ b/project/cbv/tasks.py @@ -186,21 +186,7 @@ class TasksNavBar(HorillaNavView): def __init__(self, **kwargs: Any) -> None: super().__init__(**kwargs) - employee = self.request.user.employee_get - projects = Project.objects.all() - managers = [ - manager for project in projects for manager in project.managers.all() - ] self.search_url = reverse("tasks-list-view") - if employee in managers or self.request.user.has_perm("project.add_task"): - self.create_attrs = f""" - onclick = "event.stopPropagation();" - data-toggle="oh-modal-toggle" - data-target="#genericModal" - hx-target="#genericModalBody" - hx-get="{reverse('create-task-all')}" - """ - self.view_types = [ { "type": "list", @@ -220,6 +206,22 @@ class TasksNavBar(HorillaNavView): }, ] + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + employee = self.request.user.employee_get + projects = Project.objects.all() + managers = [ + manager for project in projects for manager in project.managers.all() + ] + if employee in managers or self.request.user.has_perm("project.add_task"): + self.create_attrs = f""" + onclick = "event.stopPropagation();" + data-toggle="oh-modal-toggle" + data-target="#genericModal" + hx-target="#genericModalBody" + hx-get="{reverse('create-task-all')}" + """ + if self.request.user.has_perm("project.view_task"): self.actions = [ { @@ -246,6 +248,9 @@ class TasksNavBar(HorillaNavView): """, }, ] + context["actions"] = self.actions + context["create_attrs"] = self.create_attrs + return context @method_decorator(login_required, name="dispatch") diff --git a/project/cbv/timesheet.py b/project/cbv/timesheet.py index 4773c0e63..9219cdbef 100644 --- a/project/cbv/timesheet.py +++ b/project/cbv/timesheet.py @@ -73,7 +73,6 @@ class TimeSheetNavView(HorillaNavView): def __init__(self, **kwargs: Any) -> None: super().__init__(**kwargs) self.search_url = reverse("time-sheet-list") - url = f"{reverse('personal-time-sheet-view',kwargs={'emp_id': self.request.user.employee_get.id})}" self.actions = [ { "action": _("Delete"), @@ -85,6 +84,17 @@ class TimeSheetNavView(HorillaNavView): """, }, ] + self.create_attrs = f""" + onclick = "event.stopPropagation();" + data-toggle="oh-modal-toggle" + data-target="#genericModal" + hx-target="#genericModalBody" + hx-get="{reverse('create-time-sheet')}" + """ + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + url = f"{reverse('personal-time-sheet-view',kwargs={'emp_id': self.request.user.employee_get.id})}" self.view_types = [ { "type": "list", @@ -105,21 +115,14 @@ class TimeSheetNavView(HorillaNavView): { "type": "graph", "icon": "bar-chart", + "url": url, "attrs": f""" - onclick="event.stopPropagation(); - window.location.href='{url}'" title ='Graph' """, }, ] - - self.create_attrs = f""" - onclick = "event.stopPropagation();" - data-toggle="oh-modal-toggle" - data-target="#genericModal" - hx-target="#genericModalBody" - hx-get="{reverse('create-time-sheet')}" - """ + context["view_types"] = self.view_types + return context @method_decorator(login_required, name="dispatch") diff --git a/project/templates/time_sheet/chart.html b/project/templates/time_sheet/chart.html index 97e8011cb..57643075a 100644 --- a/project/templates/time_sheet/chart.html +++ b/project/templates/time_sheet/chart.html @@ -1,4 +1,4 @@ -{% extends 'index.html' %}{% block content %}{% load static %} {% load i18n %} +{% load static %} {% load i18n %} {% load basefilters %} {% if request.user.employee_get.id == emp_id or perms.project.view_timesheet or request.user|is_reportingmanager %}