From 8cd9d11449091aed3d9fd065ba8dd91aee6c8609 Mon Sep 17 00:00:00 2001
From: Vaibhav Mule <vaibhavmule135@gmail.com>
Date: Sat, 14 Mar 2020 17:08:16 +0530
Subject: [PATCH] show message on creation of reminder

---
 hypha/apply/activity/messaging.py |  2 ++
 hypha/apply/activity/options.py   |  1 +
 hypha/apply/funds/forms.py        | 18 ++++++++++++++++--
 hypha/apply/funds/views.py        | 23 ++++++++++-------------
 4 files changed, 29 insertions(+), 15 deletions(-)

diff --git a/hypha/apply/activity/messaging.py b/hypha/apply/activity/messaging.py
index d2c7b76cb..309b5829a 100644
--- a/hypha/apply/activity/messaging.py
+++ b/hypha/apply/activity/messaging.py
@@ -68,6 +68,7 @@ neat_related = {
     MESSAGES.SKIPPED_REPORT: 'report',
     MESSAGES.REPORT_FREQUENCY_CHANGED: 'config',
     MESSAGES.REPORT_NOTIFY: 'report',
+    MESSAGES.CREATED_REMINDER: 'reminder',
 }
 
 
@@ -838,6 +839,7 @@ class DjangoMessagesAdapter(AdapterBase):
         MESSAGES.REMOVE_DOCUMENT: 'Successfully removed document',
         MESSAGES.SKIPPED_REPORT: 'handle_skipped_report',
         MESSAGES.REPORT_FREQUENCY_CHANGED: 'handle_report_frequency',
+        MESSAGES.CREATED_REMINDER: 'Reminder created',
     }
 
     def batch_reviewers_updated(self, added, sources, **kwargs):
diff --git a/hypha/apply/activity/options.py b/hypha/apply/activity/options.py
index c6b54450a..0e139c91b 100644
--- a/hypha/apply/activity/options.py
+++ b/hypha/apply/activity/options.py
@@ -46,6 +46,7 @@ class MESSAGES(Enum):
     SKIPPED_REPORT = 'Skipped Report'
     REPORT_FREQUENCY_CHANGED = 'Report Frequency Changed'
     REPORT_NOTIFY = 'Report Notify'
+    CREATED_REMINDER = 'CREATED_REMINDER'
 
     @classmethod
     def choices(cls):
diff --git a/hypha/apply/funds/forms.py b/hypha/apply/funds/forms.py
index 6827b9ef4..22ebd8906 100644
--- a/hypha/apply/funds/forms.py
+++ b/hypha/apply/funds/forms.py
@@ -411,10 +411,24 @@ class UpdateMetaTermsForm(ApplicationSubmissionModelForm):
 
 
 class CreateReminderForm(forms.ModelForm):
-    def __init__(self, user=None, *args, **kwargs):
-        self.user = user
+    submission = forms.ModelChoiceField(
+        queryset=ApplicationSubmission.objects.filter(),
+        widget=forms.HiddenInput(),
+    )
+    time = forms.DateTimeField(input_formats=['%Y-%m-%dT%H:%M'])
+
+    def __init__(self, instance=None, user=None, *args, **kwargs):
         super().__init__(*args, **kwargs)
+        self.user = user
+
+        if instance:
+            self.fields['submission'].initial = instance.id
 
+    def save(self, *args, **kwargs):
+        return Reminder.objects.create(
+            time=self.cleaned_data['time'],
+            submission=self.cleaned_data['submission'],
+            user=self.user)
 
     class Meta:
         model = Reminder
diff --git a/hypha/apply/funds/views.py b/hypha/apply/funds/views.py
index 03fc6af29..42735eb13 100644
--- a/hypha/apply/funds/views.py
+++ b/hypha/apply/funds/views.py
@@ -588,21 +588,18 @@ class CreateReminderView(DelegatedViewMixin, CreateView):
     form_class = CreateReminderForm
     model = Reminder
 
-    # def form_valid(self, form):
-    #     response = super().form_valid(form)
-
-    #     messenger(
-    #         MESSAGES.CREATED_PROJECT,
-    #         request=self.request,
-    #         user=self.request.user,
-    #         source=self.object,
-    #         related=self.object.submission,
-    #     )
+    def form_valid(self, form):
+        response = super().form_valid(form)
 
-    #     return response
+        messenger(
+            MESSAGES.CREATED_REMINDER,
+            request=self.request,
+            user=self.request.user,
+            source=self.object.submission,
+            related=self.object,
+        )
 
-    # def get_success_url(self):
-    #     return self.object.get_absolute_url()
+        return response
 
 
 class AdminSubmissionDetailView(ReviewContextMixin, ActivityContextMixin, DelegateableView, DetailView):
-- 
GitLab