Esempio n. 1
0
    def test_error_and_help_inline(self):
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.error_text_inline = False
        form.helper.help_text_inline = True
        form.helper.layout = Layout('email')
        form.is_valid()
        html = render_crispy_form(form)

        # Check that help goes before error, otherwise CSS won't work
        if settings.CRISPY_TEMPLATE_PACK == 'bootstrap':
            help_position = html.find(
                '<span id="hint_id_email" class="help-inline">')
            error_position = html.find(
                '<p id="error_1_id_email" class="help-block">')
            self.assertTrue(help_position < error_position)

        # Viceversa
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.error_text_inline = True
        form.helper.help_text_inline = False
        form.helper.layout = Layout('email')
        form.is_valid()
        html = render_crispy_form(form)

        # Check that error goes before help, otherwise CSS won't work
        if settings.CRISPY_TEMPLATE_PACK == 'bootstrap':
            error_position = html.find(
                '<span id="error_1_id_email" class="help-inline">')
            help_position = html.find(
                '<p id="hint_id_email" class="help-block">')
            self.assertTrue(error_position < help_position)
Esempio n. 2
0
    def test_form_show_errors_non_field_errors(self):
        form = TestForm({'password1': 'wargame', 'password2': 'god'})
        form.helper = FormHelper()
        form.helper.form_show_errors = True
        form.is_valid()

        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {% crispy testForm %}
        """)

        # First we render with errors
        c = Context({'testForm': form})
        html = template.render(c)

        # Ensure those errors were rendered
        self.assertTrue('<li>Passwords dont match</li>' in html)
        self.assertTrue(unicode(_('This field is required.')) in html)
        self.assertTrue('error' in html)

        # Now we render without errors
        form.helper.form_show_errors = False
        c = Context({'testForm': form})
        html = template.render(c)

        # Ensure errors were not rendered
        self.assertFalse('<li>Passwords dont match</li>' in html)
        self.assertFalse(unicode(_('This field is required.')) in html)
        self.assertFalse('error' in html)
Esempio n. 3
0
    def test_error_text_inline(self):
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        layout = Layout(
            AppendedText('first_name', 'wat'),
            PrependedText('email', '@'),
            AppendedPrependedText('last_name', '@', 'wat'),
        )
        form.helper.layout = layout
        form.is_valid()
        html = render_crispy_form(form)

        matches = re.findall('<span id="error_\d_\w*" class="help-inline"',
                             html, re.MULTILINE)
        self.assertEqual(len(matches), 3)

        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.layout = layout
        form.helper.error_text_inline = False
        html = render_crispy_form(form)

        matches = re.findall('<p id="error_\d_\w*" class="help-block"', html,
                             re.MULTILINE)
        self.assertEqual(len(matches), 3)
Esempio n. 4
0
    def test_form_show_errors_non_field_errors(self):
        form = TestForm({'password1': 'wargame', 'password2': 'god'})
        form.helper = FormHelper()
        form.helper.form_show_errors = True
        form.is_valid()

        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {% crispy testForm %}
        """)

        # First we render with errors
        c = Context({'testForm': form})
        html = template.render(c)

        # Ensure those errors were rendered
        self.assertTrue('<li>Passwords dont match</li>' in html)
        self.assertTrue(unicode(_('This field is required.')) in html)
        self.assertTrue('error' in html)

        # Now we render without errors
        form.helper.form_show_errors = False
        c = Context({'testForm': form})
        html = template.render(c)

        # Ensure errors were not rendered
        self.assertFalse('<li>Passwords dont match</li>' in html)
        self.assertFalse(unicode(_('This field is required.')) in html)
        self.assertFalse('error' in html)
Esempio n. 5
0
    def test_error_and_help_inline(self):
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.error_text_inline = False
        form.helper.help_text_inline = True
        form.helper.layout = Layout('email')
        form.is_valid()
        html = render_crispy_form(form)

        # Check that help goes before error, otherwise CSS won't work
        if settings.CRISPY_TEMPLATE_PACK == 'bootstrap':
            help_position = html.find('<span id="hint_id_email" class="help-inline">')
            error_position = html.find('<p id="error_1_id_email" class="help-block">')
            self.assertTrue(help_position < error_position)

        # Viceversa
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.error_text_inline = True
        form.helper.help_text_inline = False
        form.helper.layout = Layout('email')
        form.is_valid()
        html = render_crispy_form(form)

        # Check that error goes before help, otherwise CSS won't work
        if settings.CRISPY_TEMPLATE_PACK == 'bootstrap':
            error_position = html.find('<span id="error_1_id_email" class="help-inline">')
            help_position = html.find('<p id="hint_id_email" class="help-block">')
            self.assertTrue(error_position < help_position)
Esempio n. 6
0
    def test_form_show_errors_non_field_errors(self):
        form = TestForm({"password1": "wargame", "password2": "god"})
        form.helper = FormHelper()
        form.helper.form_show_errors = True
        form.is_valid()

        template = get_template_from_string(
            u"""
            {% load crispy_forms_tags %}
            {% crispy testForm %}
        """
        )

        # First we render with errors
        c = Context({"testForm": form})
        html = template.render(c)

        # Ensure those errors were rendered
        self.assertTrue("<li>Passwords dont match</li>" in html)
        self.assertTrue(unicode(_("This field is required.")) in html)
        self.assertTrue("error" in html)

        # Now we render without errors
        form.helper.form_show_errors = False
        c = Context({"testForm": form})
        html = template.render(c)

        # Ensure errors were not rendered
        self.assertFalse("<li>Passwords dont match</li>" in html)
        self.assertFalse(unicode(_("This field is required.")) in html)
        self.assertFalse("error" in html)
Esempio n. 7
0
    def test_form_show_errors(self):
        form = TestForm(
            {
                "email": "invalidemail",
                "first_name": "first_name_too_long",
                "last_name": "last_name_too_long",
                "password1": "yes",
                "password2": "yes",
            }
        )
        form.helper = FormHelper()
        form.helper.layout = Layout(
            AppendedText("email", "whatever"),
            PrependedText("first_name", "blabla"),
            AppendedPrependedText("last_name", "foo", "bar"),
            MultiField("legend", "password1", "password2"),
        )
        form.is_valid()

        form.helper.form_show_errors = True
        html = render_crispy_form(form)
        self.assertEqual(html.count("error"), 6)

        form.helper.form_show_errors = False
        html = render_crispy_form(form)
        self.assertEqual(html.count("error"), 0)
Esempio n. 8
0
    def test_as_crispy_errors_form_without_non_field_errors(self):
        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {{ form|as_crispy_errors }}
        """)
        form = TestForm({'password1': "god", 'password2': "god"})
        form.is_valid()

        c = Context({'form': form})
        html = template.render(c)
        self.assertFalse("errorMsg" in html or "alert" in html)
Esempio n. 9
0
    def test_as_crispy_errors_form_without_non_field_errors(self):
        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {{ form|as_crispy_errors }}
        """)
        form = TestForm({'password1': "god", 'password2': "god"})
        form.is_valid()

        c = Context({'form': form})
        html = template.render(c)
        self.assertFalse("errorMsg" in html or "alert" in html)
Esempio n. 10
0
def demo_form_with_template(request):
    layout = request.GET.get('layout')
    if not layout:
        layout = 'vertical'
    if request.method == 'POST':
        form = TestForm(request.POST)
        form.is_valid()
    else:
        form = TestForm()
    modelform = TestModelForm()
    return render_to_response('form_using_template.html', RequestContext(request, {
        'form': form,
        'layout': layout,
    }))
Esempio n. 11
0
def test_form(request):
    layout = request.GET.get('layout')
    if not layout:
        layout = 'vertical'
    if request.method == 'POST':
        form = TestForm(request.POST)
        form.is_valid()
    else:
        form = TestForm()
    form.fields['title'].widget = BootstrapUneditableInput()
    return render_to_response('form.html', RequestContext(request, {
        'form': form,
        'layout': layout,
    }))
Esempio n. 12
0
    def test_as_crispy_errors_form_with_non_field_errors(self):
        template = get_template_from_string(
            u"""
            {% load crispy_forms_tags %}
            {{ form|as_crispy_errors }}
        """
        )
        form = TestForm({"password1": "god", "password2": "wargame"})
        form.is_valid()

        c = Context({"form": form})
        html = template.render(c)
        self.assertTrue("errorMsg" in html or "alert" in html)
        self.assertTrue("<li>Passwords dont match</li>" in html)
        self.assertFalse("<h3>" in html)
Esempio n. 13
0
def demo_form(request):
    layout = request.GET.get('layout')
    if not layout:
        layout = 'vertical'
    if request.method == 'POST':
        form = TestForm(request.POST)
        form.is_valid()
    else:
        form = TestForm()
    form.fields['title'].widget = BootstrapUneditableInput()
    return render_to_response(
        'form.html', RequestContext(request, {
            'form': form,
            'layout': layout,
        }))
Esempio n. 14
0
    def test_multifield_errors(self):
        form = TestForm({"email": "invalidemail", "password1": "yes", "password2": "yes"})
        form.helper = FormHelper()
        form.helper.layout = Layout(MultiField("legend", "email"))
        form.is_valid()

        form.helper.form_show_errors = True
        html = render_crispy_form(form)
        self.assertEqual(html.count("error"), 3)

        # Reset layout for avoiding side effects
        form.helper.layout = Layout(MultiField("legend", "email"))
        form.helper.form_show_errors = False
        html = render_crispy_form(form)
        self.assertEqual(html.count("error"), 0)
Esempio n. 15
0
def demo_form_with_template(request):
    layout = request.GET.get('layout')
    if not layout:
        layout = 'vertical'
    if request.method == 'POST':
        form = TestForm(request.POST)
        form.is_valid()
    else:
        form = TestForm()
    modelform = TestModelForm()
    return render_to_response(
        'form_using_template.html',
        RequestContext(request, {
            'form': form,
            'layout': layout,
        }))
Esempio n. 16
0
def personal_stats_edit(request, stats_id):
    key = request.GET.get('key', '')

    if request.method == 'POST':
        if key in ['QA', 'TE']:
            personal_stat = get_object_or_404(TestStats, pk=stats_id)
            form = TestForm(request.POST, instance=personal_stat)
        elif key == 'QI':
            personal_stat = get_object_or_404(InnovationStats, pk=stats_id)
            form = InnovationForm(request.POST, instance=personal_stat)
        elif key == 'RE':
            personal_stat = get_object_or_404(RequirementStats, pk=stats_id)
            form = RequirementForm(request.POST, instance=personal_stat)
        elif key == 'TL':
            personal_stat = get_object_or_404(LabStats, pk=stats_id)
            form = LabForm(request.POST, instance=personal_stat)

        if form.is_valid():
            personal_stat = form.save()
            if not personal_stat.updated:
                personal_stat.updated = True
                personal_stat.save()

            return redirect('personals:personals')
        else:
            messages.error(request, 'Correct errors in the form')
            context = RequestContext(request, {
                'personal_stat': personal_stat,
                'form': form
            })
            return render(request, 'personals/personal_stats.html', context)
    else:
        return redirect('personals:personals')
Esempio n. 17
0
def testEdit(request, mode, id=0):
    render = render_options(request)
    if request.method == 'GET':
        if mode == 'add':
            form = TestForm()
        elif mode == 'edit':
            form = TestForm(instance=get_object_or_404(Test, id=id))
        else:
            get_object_or_404(Test, id=id).delete()
            return HttpResponseRedirect('/tests/test/')
        form.fields['subject'].queryset = request.user.subjects
        form.fields['grades'].queryset = request.user.grades
        del form.fields['share']
        render['form'] = form
        return render_to_response('test.html', render)
    else:
        if mode == 'add':
            form = TestForm(request.POST)
            if form.is_valid():
                test = form.save(commit=False)
                test.teacher = request.user
                test.save()
                form.save_m2m()
                return HttpResponseRedirect('/tests/test/')
            else:
                form.fields['subject'].queryset = request.user.subjects
                form.fields['grades'].queryset = request.user.grades
                del form.fields['share']
                render['form'] = form
                return render_to_response('test.html', render)
        elif mode == 'edit':
            form = TestForm(request.POST,
                            instance=get_object_or_404(Test, id=id))
            if form.is_valid():
                form.save()
                return HttpResponseRedirect('/tests/test/')
            else:
                form.fields['subject'].queryset = request.user.subjects
                form.fields['grades'].queryset = request.user.grades
                del form.fields['share']
                render['form'] = form
                return render_to_response('test.html', render)
        else:
            return HttpResponseRedirect('/tests/test/')
Esempio n. 18
0
def testEdit(request, mode, id = 0):
    render = render_options(request)
    if request.method == 'GET':
        if mode == 'add':
            form = TestForm()
        elif mode == 'edit':
            form = TestForm(instance = get_object_or_404(Test, id = id))
        else:
            get_object_or_404(Test, id = id).delete()
            return HttpResponseRedirect('/tests/test/')
        form.fields['subject'].queryset = request.user.subjects
        form.fields['grades'].queryset = request.user.grades
        del form.fields['share']
        render['form'] = form
        return render_to_response('tests/test.html', render)
    else:
        if mode == 'add':
            form = TestForm(request.POST)
            if form.is_valid():
                test = form.save(commit = False)
                test.teacher = request.user
                test.save()
                form.save_m2m()
                return HttpResponseRedirect('/tests/test/')
            else:
                form.fields['subject'].queryset = request.user.subjects
                form.fields['grades'].queryset = request.user.grades
                del form.fields['share']
                render['form'] = form
                return render_to_response('tests/test.html', render)
        elif mode == 'edit':
            form = TestForm(request.POST, instance = get_object_or_404(Test, id = id))
            if form.is_valid():
                form.save()
                return HttpResponseRedirect('/tests/test/')
            else:
                form.fields['subject'].queryset = request.user.subjects
                form.fields['grades'].queryset = request.user.grades
                del form.fields['share']
                render['form'] = form
                return render_to_response('tests/test.html', render)
        else:
            return HttpResponseRedirect('/tests/test/')
Esempio n. 19
0
def test(request):
    from forms import TestForm
    if request.method == 'POST':
        form = TestForm(request.POST)
        if form.is_valid():
            # code handle form and file data
            return render_to_response('test.html', {'form': form, 'succ': True})
    else:
        form = TestForm()
    return render_to_response('test.html', {'form': form})
Esempio n. 20
0
    def test_form_with_helper_without_layout(self):
        form_helper = FormHelper()
        form_helper.form_id = "this-form-rocks"
        form_helper.form_class = "forms-that-rock"
        form_helper.form_method = "GET"
        form_helper.form_action = "simpleAction"
        form_helper.form_error_title = "ERRORS"

        template = get_template_from_string(
            u"""
            {% load crispy_forms_tags %}
            {% crispy testForm form_helper %}
        """
        )

        # now we render it, with errors
        form = TestForm({"password1": "wargame", "password2": "god"})
        form.is_valid()
        c = Context({"testForm": form, "form_helper": form_helper})
        html = template.render(c)

        # Lets make sure everything loads right
        self.assertTrue(html.count("<form"), 1)
        self.assertTrue("forms-that-rock" in html)
        self.assertTrue('method="get"' in html)
        self.assertTrue('id="this-form-rocks"' in html)
        self.assertTrue('action="%s"' % reverse("simpleAction") in html)

        if settings.CRISPY_TEMPLATE_PACK == "uni_form":
            self.assertTrue('class="uniForm' in html)

        self.assertTrue("ERRORS" in html)
        self.assertTrue("<li>Passwords dont match</li>" in html)

        # now lets remove the form tag and render it again. All the True items above
        # should now be false because the form tag is removed.
        form_helper.form_tag = False
        html = template.render(c)
        self.assertFalse("<form" in html)
        self.assertFalse("forms-that-rock" in html)
        self.assertFalse('method="get"' in html)
        self.assertFalse('id="this-form-rocks"' in html)
Esempio n. 21
0
def insert_into_test (request) :
	if request.method == 'POST' :
		form = TestForm(request.POST)
		if form.is_valid() :
			c = connection.cursor()
			c.execute("insert into test VALUES(%s , %s)" , [form.cleaned_data['name'] , form.cleaned_data['cost']])
			c.close()
			
	else :
		form = TestForm ()
	
	return render(request, 'mani_tables/test_entry_form.html', {'form': form})
Esempio n. 22
0
    def test_form_with_helper_without_layout(self):
        form_helper = FormHelper()
        form_helper.form_id = 'this-form-rocks'
        form_helper.form_class = 'forms-that-rock'
        form_helper.form_method = 'GET'
        form_helper.form_action = 'simpleAction'
        form_helper.form_error_title = 'ERRORS'

        template = get_template_from_string(u"""
            {% load crispy_forms_tags %}
            {% crispy testForm form_helper %}
        """)

        # now we render it, with errors
        form = TestForm({'password1': 'wargame', 'password2': 'god'})
        form.is_valid()
        c = Context({'testForm': form, 'form_helper': form_helper})
        html = template.render(c)

        # Lets make sure everything loads right
        self.assertTrue(html.count('<form'), 1)
        self.assertTrue('forms-that-rock' in html)
        self.assertTrue('method="get"' in html)
        self.assertTrue('id="this-form-rocks"' in html)
        self.assertTrue('action="%s"' % reverse('simpleAction') in html)

        if (settings.CRISPY_TEMPLATE_PACK == 'uni_form'):
            self.assertTrue('class="uniForm' in html)

        self.assertTrue("ERRORS" in html)
        self.assertTrue("<li>Passwords dont match</li>" in html)

        # now lets remove the form tag and render it again. All the True items above
        # should now be false because the form tag is removed.
        form_helper.form_tag = False
        html = template.render(c)
        self.assertFalse('<form' in html)
        self.assertFalse('forms-that-rock' in html)
        self.assertFalse('method="get"' in html)
        self.assertFalse('id="this-form-rocks"' in html)
Esempio n. 23
0
    def test_form_show_errors(self):
        form = TestForm({
            'email': 'invalidemail',
            'first_name': 'first_name_too_long',
            'last_name': 'last_name_too_long',
            'password1': 'yes',
            'password2': 'yes',
        })
        form.helper = FormHelper()
        form.helper.layout = Layout(
            AppendedText('email', 'whatever'),
            PrependedText('first_name', 'blabla'),
            AppendedPrependedText('last_name', 'foo', 'bar'),
        )
        form.is_valid()

        form.helper.form_show_errors = True
        html = render_crispy_form(form)
        self.assertEqual(html.count('error'), 6)

        form.helper.form_show_errors = False
        html = render_crispy_form(form)
        self.assertEqual(html.count('error'), 0)
Esempio n. 24
0
    def test_error_text_inline(self):
        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        layout = Layout(
            AppendedText('first_name', 'wat'),
            PrependedText('email', '@'),
            AppendedPrependedText('last_name', '@', 'wat'),
        )
        form.helper.layout = layout
        form.is_valid()
        html = render_crispy_form(form)

        matches = re.findall('<span id="error_\d_\w*" class="help-inline"', html, re.MULTILINE)
        self.assertEqual(len(matches), 3)

        form = TestForm({'email': 'invalidemail'})
        form.helper = FormHelper()
        form.helper.layout = layout
        form.helper.error_text_inline = False
        html = render_crispy_form(form)

        matches = re.findall('<p id="error_\d_\w*" class="help-block"', html, re.MULTILINE)
        self.assertEqual(len(matches), 3)
Esempio n. 25
0
    def test_form_show_errors(self):
        form = TestForm({
            'email': 'invalidemail',
            'first_name': 'first_name_too_long',
            'last_name': 'last_name_too_long',
            'password1': 'yes',
            'password2': 'yes',
        })
        form.helper = FormHelper()
        form.helper.layout = Layout(
            AppendedText('email', 'whatever'),
            PrependedText('first_name', 'blabla'),
            AppendedPrependedText('last_name', 'foo', 'bar'),
        )
        form.is_valid()

        form.helper.form_show_errors = True
        html = render_crispy_form(form)
        self.assertEqual(html.count('error'), 6)

        form.helper.form_show_errors = False
        html = render_crispy_form(form)
        self.assertEqual(html.count('error'), 0)
Esempio n. 26
0
def create_test(request, project_id):
    """ Create a new Test.

    """
    project = get_object_or_404(Project, pk=project_id)
    form = TestForm(request.POST or None)
    if form.is_valid():
        new_test = form.save(commit=False) # returns unsaved instance
        new_test.project = project
        new_test.save() # real save to DB.
        messages.add_message(request, messages.SUCCESS, 'The test has been successfully created.')
        return redirect(details_project, project_id=project_id)
    return render_to_response('form.html',
                              {'form'    : form,
                               'project' : project},
                              context_instance=RequestContext(request))
Esempio n. 27
0
def edit_test(request, test_id):
    """ Edit Test.

    """  
    test = get_object_or_404(Test, pk=test_id)
    if request.method == "POST":
        form = TestForm(request.POST, instance=test)
    else:
        form = TestForm(instance=test)
    if form.is_valid(): # All validation rules pass
            form.save()
            messages.add_message(request, messages.INFO, 'The test has been successfully modified.')
            return redirect(details_test, test_id=test_id)

    return render_to_response('form.html',
                              {'form'    : form,
                               'project' : test.project},
                              context_instance=RequestContext(request))
Esempio n. 28
0
def create_test(request, project_id):
    """ Create a new Test.

    """
    project = get_object_or_404(Project, pk=project_id)
    form = TestForm(request.POST or None)
    if form.is_valid():
        new_test = form.save(commit=False)  # returns unsaved instance
        new_test.project = project
        new_test.save()  # real save to DB.
        messages.add_message(request, messages.SUCCESS,
                             'The test has been successfully created.')
        return redirect(details_project, project_id=project_id)
    return render_to_response('form.html', {
        'form': form,
        'project': project
    },
                              context_instance=RequestContext(request))
Esempio n. 29
0
def index(request):

    if request.method == 'GET':
        form = TestForm()
        tests = Test.objects.all()

        args = {'form': form, 'tests': tests}
        return render(request, 'testmanager/home.html', args)
    elif request.method == 'POST':
        form = TestForm(request.POST)
        if form.is_valid():
            dir = os.getcwd() + "/App/TestManager/"
            form.save()

            sub_time = form.cleaned_data['submissionTime']
            target_classifier = form.cleaned_data['targetClassifier']
            network_attack = form.cleaned_data['networkAttack']
            adversarial_attack = form.cleaned_data['addAttackType']
            results = form.cleaned_data['results']
            test = Test.objects.all().last()
            test.description = test_description(test.addAttackType)
            test.save()

            # Test manager executed
            cmd = "sudo python {}main.py '{}' '{}' '{}'".format(str(dir),
                   str(target_classifier), str(network_attack), str(adversarial_attack))
            Popen(['gnome-terminal', '-e', cmd], stdout=PIPE)

            results_dir = dir + "test_results/results.txt"
            open(results_dir,"w")

            while(test_result(results_dir) == '-1'):
                time.sleep(5)

            test = Test.objects.all().last()
            test.results = test_result(results_dir)
            test.save()

            return redirect('index')

        args = {'form': form, 'submissionTime':submissionTime}
        return render(request, 'testmanager/home.html', args)
Esempio n. 30
0
def edit_test(request, test_id):
    """ Edit Test.

    """
    test = get_object_or_404(Test, pk=test_id)
    if request.method == "POST":
        form = TestForm(request.POST, instance=test)
    else:
        form = TestForm(instance=test)
    if form.is_valid():  # All validation rules pass
        form.save()
        messages.add_message(request, messages.INFO,
                             'The test has been successfully modified.')
        return redirect(details_test, test_id=test_id)

    return render_to_response('form.html', {
        'form': form,
        'project': test.project
    },
                              context_instance=RequestContext(request))
Esempio n. 31
0
def metric_edit(request, metric_id):
    key = request.GET.get('key', '')

    if request.method == 'POST':
        if key in ['QA', 'TE']:
            metric = get_object_or_404(TestMetrics, pk=metric_id)
            form = TestForm(request.POST, instance=metric)
        elif key in ['QI', 'QE']:
            metric = get_object_or_404(InnovationMetrics, pk=metric_id)
            form = InnovationForm(request.POST, instance=metric)
        elif key == 'RE':
            metric = get_object_or_404(RequirementMetrics, pk=metric_id)
            form = RequirementForm(request.POST, instance=metric)
        elif key == 'TL':
            metric = get_object_or_404(LabMetrics, pk=metric_id)
            form = LabForm(request.POST, instance=metric)
        else:
            messages.error(request, 'No key to Functional Group found')
            return redirect('teams:teams')

        if form.is_valid():
            metric = form.save()
            if not metric.updated:
                metric.updated = True
                metric.save()

            # Aggregate Subteam to Team
            aggregate_subteam_to_team(metric)

            context = context_teams(request)
            context['key'] = key
            return render(request, 'teams/teams.html', context)
        else:
            print form.errors
            messages.error(request, 'Correct errors in the form')
            context = RequestContext(request, {'metric': metric, 'form': form})
            return render(request, 'teams/metric_detail.html', context)
    else:
        return redirect('teams:teams')
Esempio n. 32
0
def index(request):
    """
    Function handle index page form views and GET requests.
    @request: request to /trs page.
    @return: handled request as template with arguments.
    """
    try:
        tests = Test.objects.all()
        for test in tests:
            setattr(test, 'name', test.path.split('/')[-1])

        #Handle GET request
        if request.method == 'GET':
            form = TestForm(request.GET)
            if form.is_valid():
                log.debug('index:GET: Get path: %s' % form.cleaned_data['path'])
                log_file_full_path = form.cleaned_data['path'][:-3] + '.log'
                log.debug("index:GET: log_file_full_path: %s" % log_file_full_path)
                if request.GET.has_key('run'):
                    test_status = {}
                    # Remove .py postfix and add .log
                    status = os.system('python %s > %s' % (form.cleaned_data['path'], log_file_full_path))
                    log.debug("index:GET:run: status: %s" % status)
                    if status != 0:
                        test_status['color'] = 'red'
                        if status == 256:
                            test_status['msg'] = 'Test is fail. Please check %s' % log_file_full_path
                        else:
                            test_status['msg'] = 'Can not find test. Please provide correct pass.'
                        log.warning('index:GET:run: %s file can not be run. Reason: %s' %
                                    (form.cleaned_data['path'], test_status['msg']))
                    else:
                        test_status['color'] = 'green'
                        test_status['msg'] = 'Test was finished.'
                        log.debug('index:GET:run: test_status: %s' % test_status)

                    return render_to_response('trs/run.html', {'tests': tests, 'test_status': test_status})
                elif request.GET.has_key('show'):
                    logfile = []
                    show_error = 'Logfile is not exist or empty.'
                    show_result = ''
                    try:
                        for line in open(log_file_full_path):
                            logfile.append(line)
                            log.debug("index:GET:show: logfile: %s" % logfile)
                    except:
                        show_result = show_error
                        log.warning("index:GET:show: %s file can not be showen." % form.cleaned_data['path'])
                    if not logfile:
                        show_result = show_error
                        log.warning("index:GET:show: %s file can not be showen. Reason: %s" %
                                    (form.cleaned_data['path'], show_error))

                    return render_to_response('trs/show.html', {'tests': tests, 'test_result': logfile,
                                                                'show_result': show_result})
            else:
                log.warning('Form %s is not valid.')
        return render_to_response( 'trs/index.html', {'tests': tests})
    except Exception as e:
        log.error("index: %s" % e)
        raise Http404