Skip to content
Snippets Groups Projects
Commit 7e8ef465 authored by Klaas Kliffen's avatar Klaas Kliffen :satellite:
Browse files

Small formatting fixes.

parent 1e90d1ac
No related branches found
No related tags found
1 merge request!104Propagate extra fields form group into WorkSpecifications
from django.contrib.auth.mixins import LoginRequiredMixin
from django.core.exceptions import ObjectDoesNotExist
from django.views.generic import UpdateView
from lofardata.forms import GroupForm
from lofardata.models import ATDBProcessingSite, Group, WorkSpecification
from lofardata.view_helpers import filters_preprocessor
from lofardata.view_helpers.specification import (
create_work_specifications_for_group,
propagate_group_properties_to_workspecification,
split_obs_ids_string,
)
from rest_framework.reverse import reverse_lazy
class GroupCreateUpdateView(LoginRequiredMixin, UpdateView):
template_name = "lofardata/group/create_update.html"
model = Group
form_class = GroupForm
def get_object(self, queryset=None):
if self.kwargs.__len__() == 0 or self.kwargs["pk"] is None:
group = Group()
else:
group = Group.objects.get(pk=self.kwargs["pk"])
return group
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
processing_sites = list(ATDBProcessingSite.objects.values("name", "url"))
context["processing_sites"] = processing_sites
context["single_processing_site"] = processing_sites[0]['name'] if len(processing_sites) == 1 else None
try:
group = Group.objects.get(pk=context["object"].pk)
except ObjectDoesNotExist:
group = None
# Excludes obs_id, since groups handle these differently
context["filters"] = filters_preprocessor.preprocess(group, exclude=["obs_id"])
return context
def form_valid(self, form):
is_new = not form.instance.pk
group = form.save()
if is_new:
obs_ids = split_obs_ids_string(form.data.get("obs_ids"))
batch_size = form.data.get("batch_size")
create_work_specifications_for_group(group, self.request.user, obs_ids, batch_size)
else:
workspecifications_in_group = WorkSpecification.objects.filter(group=group)
for workspecification in workspecifications_in_group:
propagate_group_properties_to_workspecification(group, workspecification)
workspecification.save()
return super().form_valid(form)
def get_success_url(self, **kwargs):
return reverse_lazy("index")
from django.contrib.auth.mixins import LoginRequiredMixin
from django.core.exceptions import ObjectDoesNotExist
from django.views.generic import UpdateView
from lofardata.forms import GroupForm
from lofardata.models import ATDBProcessingSite, Group, WorkSpecification
from lofardata.view_helpers import filters_preprocessor
from lofardata.view_helpers.specification import (
create_work_specifications_for_group,
propagate_group_properties_to_workspecification,
split_obs_ids_string,
)
from rest_framework.reverse import reverse_lazy
class GroupCreateUpdateView(LoginRequiredMixin, UpdateView):
template_name = "lofardata/group/create_update.html"
model = Group
form_class = GroupForm
def get_object(self, queryset=None):
if self.kwargs.__len__() == 0 or self.kwargs["pk"] is None:
group = Group()
else:
group = Group.objects.get(pk=self.kwargs["pk"])
return group
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
processing_sites = list(ATDBProcessingSite.objects.values("name", "url"))
context["processing_sites"] = processing_sites
context["single_processing_site"] = processing_sites[0]['name'] if len(processing_sites) == 1 else None
try:
group = Group.objects.get(pk=context["object"].pk)
except ObjectDoesNotExist:
group = None
# Excludes obs_id, since groups handle these differently
context["filters"] = filters_preprocessor.preprocess(group, exclude=["obs_id"])
return context
def form_valid(self, form):
is_new = not form.instance.pk
group = form.save()
if is_new:
obs_ids = split_obs_ids_string(form.data.get("obs_ids"))
batch_size = form.data.get("batch_size")
create_work_specifications_for_group(group, self.request.user, obs_ids, batch_size)
else:
workspecifications_in_group = WorkSpecification.objects.filter(group=group)
for workspecification in workspecifications_in_group:
propagate_group_properties_to_workspecification(group, workspecification)
workspecification.save()
return super().form_valid(form)
def get_success_url(self, **kwargs):
return reverse_lazy("index")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment