From 8db2c44f641ae4b78357407a4b425c40b292d740 Mon Sep 17 00:00:00 2001 From: ismail Date: Sun, 1 Jun 2025 16:19:54 +0300 Subject: [PATCH] fix the task complete partials not working correctly --- inventory/models.py | 25 ++++++++ inventory/urls.py | 2 +- inventory/views.py | 9 +-- .../crm/opportunities/opportunity_detail.html | 60 ++----------------- templates/partials/task.html | 2 +- 5 files changed, 35 insertions(+), 63 deletions(-) diff --git a/inventory/models.py b/inventory/models.py index 430f3ab0..c7c0e6ab 100644 --- a/inventory/models.py +++ b/inventory/models.py @@ -1957,6 +1957,31 @@ class Opportunity(models.Model): ) loss_reason = models.CharField(max_length=255, blank=True, null=True) + def get_notes(self): + return self._get_filter(Notes) + def get_activities(self): + return self._get_filter(Activity) + + def get_tasks(self): + return self._get_filter(Tasks) + + def get_schedules(self): + return self.lead.get_all_schedules().filter( + scheduled_at__gt=timezone.now() + ) + + def get_emails(self): + return self._get_filter(Email) + + def _get_filter(self,Model): + objects = Model.objects.filter( + content_type__model="opportunity", object_id=self.id + ) + lead_objects = Model.objects.filter( + content_type__model="lead", object_id=self.lead.id + ) + objects = objects.union(lead_objects) + return objects def save(self, *args, **kwargs): if self.amount: diff --git a/inventory/urls.py b/inventory/urls.py index fb78bc62..a264c5aa 100644 --- a/inventory/urls.py +++ b/inventory/urls.py @@ -125,7 +125,7 @@ urlpatterns = [ name="add_note", ), path( - "crm///update-task/", + "crm//update-task/", views.update_task, name="update_task", ), diff --git a/inventory/views.py b/inventory/views.py index 0506a0ce..710fa429 100644 --- a/inventory/views.py +++ b/inventory/views.py @@ -5542,6 +5542,7 @@ class OpportunityDetailView(LoginRequiredMixin, DetailView): form.fields["stage"].widget.attrs["hx-get"] = url form.fields["stage"].initial = self.object.stage context["status_form"] = form + context["lead_notes"] = models.Notes.objects.filter( content_type__model="lead", object_id=self.object.id ).order_by("-created") @@ -8151,14 +8152,8 @@ def add_task(request, content_type, slug): return redirect(f"{content_type}_detail", slug=slug) -def update_task(request,content_type, pk): - try: - model = apps.get_model(f"inventory.{content_type}") - except LookupError: - raise Http404("Model not found") - +def update_task(request, pk): task = get_object_or_404(models.Tasks, pk=pk) - obj = get_object_or_404(model, pk=task.content_object.id) if request.method == "POST": task.completed = False if task.completed else True diff --git a/templates/crm/opportunities/opportunity_detail.html b/templates/crm/opportunities/opportunity_detail.html index d9a61636..cbe29167 100644 --- a/templates/crm/opportunities/opportunity_detail.html +++ b/templates/crm/opportunities/opportunity_detail.html @@ -77,7 +77,7 @@

{{ _("Upcoming Events")}}

- {% for event in upcoming_events.schedules %} + {% for event in opportunity.get_schedules %} @@ -359,44 +359,7 @@ - {% for activity in lead_activities %} -
-
-
- {% if activity.activity_type == "call" %} - - {% elif activity.activity_type == "email" %} - - {% elif activity.activity_type == "meeting" %} - - {% elif activity.activity_type == "whatsapp" %} - - {% endif %} -
-
-
-
-
-

{{activity.notes}}

-
-
-
-
-
- {% if request.user.email == activity.created_by %} -

by You

- {% else %} -

by{{activity.created_by}}

- {% endif %} -
-
{{activity.created|naturalday|capfirst}}
-
-

-
-
-
- {% endfor %} - {% for activity in activities %} + {% for activity in opportunity.get_activities %}
@@ -443,16 +406,7 @@
- {% for note in lead_notes %} -
-

{{ note.note }}

-
-
{{note.created|naturaltime|capfirst}}
-

by{{note.created_by}}

-
-
- {% endfor %} - {% for note in notes %} + {% for note in opportunity.get_notes %}

{{ note.note }}

@@ -512,6 +466,7 @@ Add Call
+
{{opportunity.get_all_notes}}
@@ -646,11 +601,8 @@ - {% for task in lead_tasks %} - {% include "partials/task.html" with task=task content_type="lead" %} - {% endfor %} - {% for task in tasks %} - {% include "partials/task.html" with task=task content_type="opportunity" %} + {% for task in opportunity.get_tasks %} + {% include "partials/task.html" %} {% endfor %}
diff --git a/templates/partials/task.html b/templates/partials/task.html index fd9dfa6b..be44fc0e 100644 --- a/templates/partials/task.html +++ b/templates/partials/task.html @@ -2,7 +2,7 @@
- +
{{task.title}}