Bases: DelegatedViewMixin
, UpdateView
context_name
class-attribute
instance-attribute
context_name = 'update_frequency_form'
model
class-attribute
instance-attribute
setup
setup(request, *args, **kwargs)
Initialize attributes shared by all view methods.
Source code in hypha/apply/utils/views.py
| def setup(self, request, *args, **kwargs):
"""Initialize attributes shared by all view methods."""
self.request = request
self.args = args
self.kwargs = kwargs
|
get_template_names
Source code in hypha/apply/utils/views.py
| def get_template_names(self):
return self.kwargs["template_names"]
|
Source code in hypha/apply/utils/views.py
| def get_form_name(self):
return self.context_name
|
get_parent_kwargs
Source code in hypha/apply/utils/views.py
| def get_parent_kwargs(self):
try:
return self.parent.get_form_kwargs()
except AttributeError:
return self.kwargs["parent"].get_form_kwargs()
|
get_parent_object
Source code in hypha/apply/utils/views.py
| def get_parent_object(self):
return self.get_parent_kwargs()["instance"]
|
get_context_data
get_context_data(**kwargs)
Source code in hypha/apply/utils/views.py
| def get_context_data(self, **kwargs):
# Use the previous context but override the validated form
form = kwargs.pop("form")
kwargs.update(self.kwargs["context"])
kwargs.update(**{self.context_name: form})
return super().get_context_data(**kwargs)
|
Source code in hypha/apply/utils/views.py
| @classmethod
def is_model_form(cls):
return issubclass(cls.form_class, ModelForm)
|
Source code in hypha/apply/utils/views.py
| def contribute_form(self, parent):
self.parent = parent
# We do not want to bind any forms generated this way
# pretend we are doing a get request to avoid passing data to forms
old_method = None
if self.request.method in ("POST", "PUT"):
old_method = self.request.method
self.request.method = "GET"
form = self.get_form()
if old_method:
self.request.method = old_method
return self.context_name, form
|
get_success_url
Source code in hypha/apply/utils/views.py
| def get_success_url(self):
query = self.request.GET.urlencode()
if query:
query = "?" + query
return self.request.path + query
|
Source code in hypha/apply/projects/views/report.py
| def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs.pop("user")
project = kwargs["instance"]
instance = project.report_config
kwargs["instance"] = instance
if not instance.disable_reporting:
# Current due report can be none for ONE_TIME(does not repeat),
# In case of ONE_TIME, either reporting is already completed(last_report exists)
# or there should be a current_due_report.
if instance.current_due_report():
kwargs["initial"] = {
"start": instance.current_due_report().end_date,
}
else:
kwargs["initial"] = {
"start": instance.last_report().end_date,
}
else:
kwargs["initial"] = {
"start": project.start_date,
}
return kwargs
|
get_object
Source code in hypha/apply/projects/views/report.py
| def get_object(self):
project = self.get_parent_object()
return project.report_config
|
Source code in hypha/apply/projects/views/report.py
| def get_form(self):
if self.get_parent_object().is_in_progress:
return super().get_form()
return None
|
Source code in hypha/apply/projects/views/report.py
| def form_valid(self, form):
config = form.instance
# 'form-submitted-' is set as form_prefix in DelegateBase view
if "disable-reporting" in self.request.POST.get(
f"form-submitted-{self.context_name}"
):
form.instance.disable_reporting = True
form.instance.schedule_start = None
response = super().form_valid(form)
messenger(
MESSAGES.DISABLED_REPORTING,
request=self.request,
user=self.request.user,
source=config.project,
)
else:
form.instance.disable_reporting = False
form.instance.schedule_start = form.cleaned_data["start"]
response = super().form_valid(form)
messenger(
MESSAGES.REPORT_FREQUENCY_CHANGED,
request=self.request,
user=self.request.user,
source=config.project,
related=config,
)
return response
|