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'))
Exemple #2
0
    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')
Exemple #3
0
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})
Exemple #4
0
    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'))
Exemple #5
0
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})