move survey models to mixins, start WFJT launch endpoint

This commit is contained in:
AlanCoding
2016-10-18 17:15:26 -04:00
parent 020144d1ee
commit 21c6dd6b1e
6 changed files with 276 additions and 167 deletions

View File

@@ -2790,21 +2790,36 @@ class WorkflowJobTemplateLabelList(JobTemplateLabelList):
class WorkflowJobTemplateLaunch(GenericAPIView):
model = WorkflowJobTemplate
serializer_class = EmptySerializer
serializer_class = WorkflowJobLaunchSerializer
new_in_310 = True
def get(self, request, *args, **kwargs):
data = {}
def update_raw_data(self, data):
obj = self.get_object()
data['warnings'] = obj.get_warnings()
data['passwords_needed_to_start'] = obj.passwords_needed_to_start
return Response(data)
extra_vars = data.pop('extra_vars', None) or {}
if obj:
for v in obj.variables_needed_to_start:
extra_vars.setdefault(v, u'')
if extra_vars:
data['extra_vars'] = extra_vars
return data
# def get(self, request, *args, **kwargs):
# data = {}
# obj = self.get_object()
# data['warnings'] = obj.get_warnings()
# data['variables_needed_to_start'] = obj.variables_needed_to_start
# return Response(data)
def post(self, request, *args, **kwargs):
obj = self.get_object()
if not request.user.can_access(self.model, 'start', obj):
raise PermissionDenied()
# serializer = self.serializer_class(instance=obj, data=request.data, context={'obj': obj, 'data': request.data, 'passwords': passwords})
# if not serializer.is_valid():
# return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
prompted_fields, ignored_fields = obj._accept_or_ignore_job_kwargs(**request.data)
new_job = obj.create_unified_job(**prompted_fields)