Exemple #1
0
    def render_form(self):
        form = CaseComponentForm(initial={
            'product': self.product_id,
            'component': self.request.POST.getlist('o_component'),
        })
        form.populate(product_id=self.product_id)

        return HttpResponse(form.as_p())
Exemple #2
0
 def __get_form(self):
     self.form = CaseComponentForm(self.request.REQUEST)
     self.form.populate(product_id=self.product_id)
     return self.form
Exemple #3
0
class ComponentActions(BaseActions):
    '''Component actions used by view function `component`'''

    def __get_form(self):
        self.form = CaseComponentForm(self.request.REQUEST)
        self.form.populate(product_id=self.product_id)
        return self.form

    def __check_form_validation(self):
        form = self.__get_form()
        if not form.is_valid():
            return 0, self.render_ajax(forms.errors_to_list(form))

        return 1, form

    def __check_perms(self, perm):
        perm_name = 'testcases.' + perm + '_testcasecomponent'
        if not self.request.user.has_perm(perm_name):
            self.ajax_response['rc'] = 1
            self.ajax_response['response'] = 'Permission denied - ' + perm

            return 0, self.render_ajax(self.ajax_response)

        return 1, True

    def add(self):
        is_valid, perm = self.__check_perms('add')
        if not is_valid:
            return perm

        is_valid, form = self.__check_form_validation()
        if not is_valid:
            return form

        tcs = self.get_testcases()
        for tc in tcs:
            for c in form.cleaned_data['o_component']:
                try:
                    tc.add_component(component=c)
                except:
                    self.ajax_response['errors_list'].append({
                        'case': tc.pk, 'component': c.pk})

        return self.render_ajax(self.ajax_response)

    def remove(self):
        is_valid, perm = self.__check_perms('delete')
        if not is_valid:
            return perm

        is_valid, form = self.__check_form_validation()
        if not is_valid:
            return form

        tcs = self.get_testcases()
        for tc in tcs:
            for c in form.cleaned_data['o_component']:
                try:
                    tc.remove_component(component=c)
                except:
                    self.ajax_response['errors_list'].append({
                        'case': tc.pk, 'component': c.pk})

        return self.render_ajax(self.ajax_response)

    def update(self):
        is_valid, perm = self.__check_perms('change')
        if not is_valid:
            return perm

        is_valid, form = self.__check_form_validation()
        if not is_valid:
            return form

        # self.tcs.update(category = self.form.cleaned_data['category'])
        tcs = self.get_testcases()
        for tc in tcs:
            tc.clear_components()
            for c in form.cleaned_data['o_component']:
                tc.add_component(component=c)

        return self.render_ajax(self.ajax_response)

    def render_ajax(self, response):
        return HttpResponse(simplejson.dumps(self.ajax_response))

    def render_form(self):
        form = CaseComponentForm(initial={
            'product': self.product_id,
            # 'category': self.request.REQUEST.get('category'),
            'component': self.request.REQUEST.getlist('o_component'),
        })
        form.populate(product_id=self.product_id)

        return HttpResponse(form.as_p())
Exemple #4
0
 def _get_form(self):
     self.form = CaseComponentForm(self.request.POST)
     self.form.populate(product_id=self.product_id)
     return self.form
Exemple #5
0
class ComponentActions(BaseActions):
    """Component actions used by view function `component`"""

    form = None

    def _get_form(self):
        self.form = CaseComponentForm(self.request.POST)
        self.form.populate(product_id=self.product_id)
        return self.form

    def __check_perms(self, perm):
        perm_name = 'testcases.{}_testcasecomponent'.format(perm)
        if not self.request.user.has_perm(perm_name):
            self.ajax_response['rc'] = 1
            self.ajax_response['response'] = 'Permission denied - ' + perm

            return 0, JsonResponse(self.ajax_response)

        return 1, True

    def _add_or_remove(self, action_name):
        is_valid, perm = self.__check_perms(action_name)
        if not is_valid:
            return perm

        is_valid, form = self._check_form_validation()
        if not is_valid:
            return form

        test_cases = self.get_testcases()
        for test_case in test_cases:
            for component in form.cleaned_data['o_component']:
                try:
                    if action_name == 'add':
                        test_case.add_component(component=component)
                    else:
                        test_case.remove_component(component=component)
                except Exception:
                    self.ajax_response['errors_list'].append({
                        'case':
                        test_case.pk,
                        'component':
                        component.pk
                    })

        return JsonResponse(self.ajax_response)

    def add(self):
        return self._add_or_remove('add')

    def remove(self):
        return self._add_or_remove('delete')

    def update(self):
        is_valid, perm = self.__check_perms('change')
        if not is_valid:
            return perm

        is_valid, form = self._check_form_validation()
        if not is_valid:
            return form

        testcases = self.get_testcases()
        for testcase in testcases:
            testcase.clear_components()
            for component in form.cleaned_data['o_component']:
                testcase.add_component(component=component)

        return JsonResponse(self.ajax_response)

    def render_form(self):
        form = CaseComponentForm(
            initial={
                'product': self.product_id,
                'component': self.request.POST.getlist('o_component'),
            })
        form.populate(product_id=self.product_id)

        return HttpResponse(form.as_p())
Exemple #6
0
class ComponentActions(BaseActions):
    '''Component actions used by view function `component`'''
    def __get_form(self):
        self.form = CaseComponentForm(self.request.REQUEST)
        self.form.populate(product_id=self.product_id)
        return self.form

    def __check_form_validation(self):
        form = self.__get_form()
        if not form.is_valid():
            return 0, self.render_ajax(forms.errors_to_list(form))

        return 1, form

    def __check_perms(self, perm):
        perm_name = 'testcases.' + perm + '_testcasecomponent'
        if not self.request.user.has_perm(perm_name):
            self.ajax_response['rc'] = 1
            self.ajax_response['response'] = 'Permission denied - ' + perm

            return 0, self.render_ajax(self.ajax_response)

        return 1, True

    def add(self):
        is_valid, perm = self.__check_perms('add')
        if not is_valid:
            return perm

        is_valid, form = self.__check_form_validation()
        if not is_valid:
            return form

        tcs = self.get_testcases()
        for tc in tcs:
            for c in form.cleaned_data['o_component']:
                try:
                    tc.add_component(component=c)
                except:
                    self.ajax_response['errors_list'].append({
                        'case': tc.pk,
                        'component': c.pk
                    })

        return self.render_ajax(self.ajax_response)

    def remove(self):
        is_valid, perm = self.__check_perms('delete')
        if not is_valid:
            return perm

        is_valid, form = self.__check_form_validation()
        if not is_valid:
            return form

        tcs = self.get_testcases()
        for tc in tcs:
            for c in form.cleaned_data['o_component']:
                try:
                    tc.remove_component(component=c)
                except:
                    self.ajax_response['errors_list'].append({
                        'case': tc.pk,
                        'component': c.pk
                    })

        return self.render_ajax(self.ajax_response)

    def update(self):
        is_valid, perm = self.__check_perms('change')
        if not is_valid:
            return perm

        is_valid, form = self.__check_form_validation()
        if not is_valid:
            return form

        # self.tcs.update(category = self.form.cleaned_data['category'])
        tcs = self.get_testcases()
        for tc in tcs:
            tc.clear_components()
            for c in form.cleaned_data['o_component']:
                tc.add_component(component=c)

        return self.render_ajax(self.ajax_response)

    def render_ajax(self, response):
        return HttpResponse(simplejson.dumps(self.ajax_response))

    def render_form(self):
        form = CaseComponentForm(
            initial={
                'product': self.product_id,
                # 'category': self.request.REQUEST.get('category'),
                'component': self.request.REQUEST.getlist('o_component'),
            })
        form.populate(product_id=self.product_id)

        return HttpResponse(form.as_p())