def done(self, form_list, **kwargs): """ Save info to the DB The process is : 1) get the infos for the Trigger from step 0, 2, 4 2) save it to TriggerService 3) get the infos from the "Provider" and "Consumer" services at step 1 and 3 4) save all of them """ # get the datas from the form for TriggerService i = 0 for form in form_list: # cleaning data = form.cleaned_data # get the service we selected at step 0 : provider if i == 0: trigger_provider = UserService.objects.get( name=data.get('provider'), user=self.request.user.id) model_provider = get_service(data.get('provider'), 'models') # get the service we selected at step 2 : consumer elif i == 2: trigger_consumer = UserService.objects.get( name=data.get('consumer'), user=self.request.user.id) model_consumer = get_service(data.get('consumer'), 'models') # get the description we gave for the trigger elif i == 4: trigger_description = data.get('description') i += 1 # save the trigger trigger = TriggerService(provider=trigger_provider, consumer=trigger_consumer, user=self.request.user, status=True, description=trigger_description) trigger.save() model_fields = {} # get the datas from the form for Service related # save the related models to provider and consumer i = 0 for form in form_list: model_fields = {} data = form.cleaned_data # get the data for the provider service if i == 1: for field in data: model_fields.update({field: data[field]}) model_fields.update({'trigger_id': trigger.id, 'status': True}) model_provider.objects.create(**model_fields) # get the data for the consumer service elif i == 3: for field in data: model_fields.update({field: data[field]}) model_fields.update({'trigger_id': trigger.id, 'status': True}) model_consumer.objects.create(**model_fields) i += 1 return HttpResponseRedirect(reverse('base'))
def test_get_service(self): my_service = 'ServiceTwitter' model = get_service(my_service) self.assertTrue(model, 'Twitter') my_service = 'ServiceTwitter' form = get_service(my_service, 'forms') self.assertTrue(form, 'TwitterProviderForm')
def trigger_edit(request, trigger_id, edit_what): """ edit the provider :param request: request object :param trigger_id: ID of the trigger to edit :param edit_what: edit a 'Provider' or 'Consumer' ? :type request: HttpRequest object :type trigger_id: int :type edit_what: string :return render :rtype HttpResponse """ if edit_what not in ('Provider', 'Consumer'): # bad request return redirect('base') form_name = edit_what + 'Form' # get the trigger object service = TriggerService.objects.get(id=trigger_id) if can_modify_trigger(request, service.provider.name.status, service.consumer.name.status): return HttpResponseRedirect(reverse('base')) if edit_what == 'Consumer': my_service = service.consumer.name.name else: my_service = service.provider.name.name # get the service name service_name = str(my_service).split('Service')[1] # get the model of this service model = get_service(my_service) # get the data of this service linked to that trigger data = model.objects.get(trigger_id=trigger_id) template = service_name.lower() + '/edit_' + edit_what.lower() + ".html" if request.method == 'POST': form = get_service(my_service, 'forms', form_name)(request.POST, instance=data) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('trigger_edit_thanks')) else: form = get_service(my_service, 'forms', form_name)(instance=data) context = { 'description': service.description, 'edit_what': edit_what, 'data': data, 'is_secure': request.is_secure(), 'host': request.get_host() } return render(request, template, {'form': form, 'context': context})
def done(self, form_list, **kwargs): """ Save info to the DB The process is : 1) get the infos for the Trigger from step 0, 2, 4 2) save it to TriggerService 3) get the infos from the "Provider" and "Consumer" services at step 1 and 3 4) save all of them """ # get the datas from the form for TriggerService i = 0 for form in form_list: # cleaning data = form.cleaned_data # get the service we selected at step 0 : provider if i == 0: trigger_provider = UserService.objects.get(name=data.get('provider'), user=self.request.user.id) model_provider = get_service(data.get('provider'), 'models') # get the service we selected at step 2 : consumer elif i == 2: trigger_consumer = UserService.objects.get(name=data.get('consumer'), user=self.request.user.id) model_consumer = get_service(data.get('consumer'), 'models') # get the description we gave for the trigger elif i == 4: trigger_description = data.get('description') i += 1 # save the trigger trigger = TriggerService(provider=trigger_provider, consumer=trigger_consumer, user=self.request.user, status=True, description=trigger_description) trigger.save() model_fields = {} # get the datas from the form for Service related # save the related models to provider and consumer i = 0 for form in form_list: model_fields = {} data = form.cleaned_data # get the data for the provider service if i == 1: for field in data: model_fields.update({field: data[field]}) model_fields.update({'trigger_id': trigger.id, 'status': True}) model_provider.objects.create(**model_fields) # get the data for the consumer service elif i == 3: for field in data: model_fields.update({field: data[field]}) model_fields.update({'trigger_id': trigger.id, 'status': True}) model_consumer.objects.create(**model_fields) i += 1 return HttpResponseRedirect(reverse('base'))
def trigger_edit(request, trigger_id, edit_what): """ edit the provider :param request: request object :param trigger_id: ID of the trigger to edit :param edit_what: edit a 'Provider' or 'Consumer' ? :type request: HttpRequest object :type trigger_id: int :type edit_what: string :return render :rtype HttpResponse """ if edit_what not in ('Provider', 'Consumer'): # bad request return redirect('base') form_name = edit_what + 'Form' # get the trigger object service = TriggerService.objects.get(id=trigger_id) if can_modify_trigger(request, service.provider.name.status, service.consumer.name.status): return HttpResponseRedirect(reverse('base')) if edit_what == 'Consumer': my_service = service.consumer.name.name else: my_service = service.provider.name.name # get the service name service_name = str(my_service).split('Service')[1] # get the model of this service model = get_service(my_service) # get the data of this service linked to that trigger data = model.objects.get(trigger_id=trigger_id) template = service_name.lower() + '/edit_' + edit_what.lower() + ".html" if request.method == 'POST': form = get_service(my_service, 'forms', form_name)(request.POST, instance=data) if form.is_valid(): form.save() return HttpResponseRedirect(reverse('trigger_edit_thanks')) else: form = get_service(my_service, 'forms', form_name)(instance=data) context = {'description': service.description, 'edit_what': edit_what, 'data': data, 'is_secure': request.is_secure(), 'host': request.get_host()} return render(request, template, {'form': form, 'context': context})
def trigger_edit(request, trigger_id, edit_what): """ edit the provider :param trigger_id: ID of the trigger to edit :param edit_what: edit a 'Provider' or 'Consumer' ? :type trigger_id: int :type edit_what: string """ if edit_what not in ("Provider", "Consumer"): # bad request return redirect("base") form_name = edit_what + "Form" # get the trigger object service = TriggerService.objects.get(id=trigger_id) if edit_what == "Consumer": my_service = service.consumer.name.name else: my_service = service.provider.name.name # get the service name service_name = str(my_service).split("Service")[1] # get the model of this service model = get_service(my_service) # get the data of this service linked to that trigger data = model.objects.get(trigger_id=trigger_id) template = service_name.lower() + "/edit_" + edit_what.lower() + ".html" if request.method == "POST": form = get_service(my_service, "forms", form_name)(request.POST, instance=data) if form.is_valid(): form.save() return HttpResponseRedirect(reverse("trigger_edit_thanks")) else: form = get_service(my_service, "forms", form_name)(instance=data) context = {"description": service.description, "edit_what": edit_what} return render(request, template, {"form": form, "context": context})