Skip to content

Commit

Permalink
Added: 2 New fields in test cases templates Refs. kiwitcms#1923
Browse files Browse the repository at this point in the history
- setup_duration & testing_duration are added in testcases/mutable.html and can be editted
  • Loading branch information
APiligrim committed Apr 24, 2021
1 parent 1e9b0c4 commit c98d95f
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 4 deletions.
16 changes: 16 additions & 0 deletions tcms/core/widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
Custom widgets for Django
"""
from django import forms
from django.shortcuts import render


class SimpleMDE(forms.Textarea):
Expand Down Expand Up @@ -40,3 +41,18 @@ class Media:
"prismjs/plugins/autoloader/prism-autoloader.min.js",
"js/simplemde_security_override.js",
]


class DurationWidget(forms.Textarea):

def index(request, attrs=None):
duration_template = "tcms/templates/include/duration_picker_script.html"
context = {'selector': attrs['id']}
return render(request, duration_template, context)

class Media:
css = {"all": ["bootstrap-duration-picker/dist/bootstrap-duration-picker.css"]}
js = [
"bootstrap-duration-picker/dist/bootstrap-duration-picker.js",
"bootstrap-duration-picker/dist/bootstrap-duration-picker-debug.js",
]
1 change: 1 addition & 0 deletions tcms/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"dependencies": {
"bootstrap-duration-picker": "2.1.3",
"bootstrap-switch": "3.3.4",
"html5sortable": "0.11.1",
"marked": "2.0.1",
Expand Down
11 changes: 11 additions & 0 deletions tcms/templates/include/duration_picker_script.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<input id="{{id_selector}}" type="text" style="display: none">
<script>
$(function () {
$('{{ selector }}').durationPicker({
showDays: true,
showHours: true,
showMinutes: true,
showSeconds: true,
});
});
</script>
10 changes: 9 additions & 1 deletion tcms/testcases/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

from tcms.core.forms.fields import UserField
from tcms.core.widgets import SimpleMDE
from tcms.core.widgets import DurationWidget
from tcms.management.models import Component, Priority, Product
from tcms.testcases.fields import MultipleEmailField
from tcms.testcases.models import (
Expand Down Expand Up @@ -35,6 +36,14 @@ class Meta:
queryset=Product.objects.all(),
empty_label=None,
)
setup_duration = forms.DurationField(
widget=DurationWidget(),
required=False,
)
testing_duration = forms.DurationField(
widget=DurationWidget(),
required=False,
)
text = forms.CharField(
widget=SimpleMDE(),
required=False,
Expand Down Expand Up @@ -81,7 +90,6 @@ class Meta:
for field in TestCaseEmailSettings._meta.fields:
_email_settings_fields.append(field.name)


# for usage in CreateView, UpdateView
CaseNotifyFormSet = inlineformset_factory( # pylint: disable=invalid-name
TestCase,
Expand Down
24 changes: 21 additions & 3 deletions tcms/testcases/templates/testcases/mutable.html
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,21 @@
</div>
</div>

<div class="form-group">
<label class="col-md-1 col-lg-1" >{% trans "Setup Duration" %}</label>
<div class="col-md-3 col-lg-3">
<div type="text" id="duration" class="form-control">
{{ form.setup_duration }}
</div>
</div>
<label class="col-md-1 col-lg-1" >{% trans "Testing Duration" %}</label>
<div class="col-md-3 col-lg-3">
<div type="text" id="testing_duration" class="form-control">
{{ form.testing_duration }}
</div>
</div>
</div>

<div class="form-group">
<div class="col-md-12 col-lg-12">
<label class="{% if form.text.errors %}has-error{% endif %}">{% trans "Text" %}:</label>
Expand Down Expand Up @@ -233,11 +248,14 @@
</form>
</div>


<script src="{% static 'bootstrap-select/dist/js/bootstrap-select.min.js' %}"></script>
<script src="{% static 'bootstrap-switch/dist/js/bootstrap-switch.min.js' %}"></script>
<script src="{% static "grappelli/jquery/jquery.min.js" %}"></script>
<script src="{% static "grappelli/js/grappelli.min.js" %}"></script>
<script src="{% static "admin/js/admin/RelatedObjectLookups.js" %}"></script>
<script src="{% static 'bootstrap-duration-picker/dist/bootstrap-duration-picker.js' %}"></script>
<script src="{% static 'bootstrap-duration-picker/dist/bootstrap-duration-picker-debug.js' %}"></script>
<script src="{% static 'grappelli/jquery/jquery.min.js' %}"></script>
<script src="{% static 'grappelli/js/grappelli.min.js' %}"></script>
<script src="{% static 'admin/js/admin/RelatedObjectLookups.js' %}"></script>

<script src="{% static 'js/jsonrpc.js' %}"></script>
<script src="{% static 'js/utils.js' %}"></script>
Expand Down
16 changes: 16 additions & 0 deletions tcms/testcases/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ def setUpTestData(cls):
cls.summary = "summary"
cls.text = "some text description"
cls.script = "some script"
cls.duration = "2:20:10:00"
cls.arguments = "args1, args2, args3"
cls.requirement = "requirement"
cls.link = "http://somelink.net"
Expand All @@ -100,6 +101,8 @@ def setUpTestData(cls):
"category": cls.case.category.pk,
"case_status": cls.case_status_confirmed.pk,
"priority": cls.case.priority.pk,
"setup_duration": cls.duration,
"testing_duration": "00:00:00:00",
"text": cls.text,
"script": cls.script,
"arguments": cls.arguments,
Expand Down Expand Up @@ -180,6 +183,8 @@ def _assertTestCase(self, test_case):
self.assertEqual(test_case.requirement, self.requirement)
self.assertEqual(test_case.extra_link, self.link)
self.assertEqual(test_case.notes, self.notes)
self.assertEqual(test_case.setup_duration, self.duration)
self.assertEqual(test_case.testing_duration, self.duration)


class TestNewCasePermission(PermissionsTestCase):
Expand Down Expand Up @@ -282,6 +287,8 @@ def setUpTestData(cls):
"product": cls.case_1.category.product.pk,
"category": cls.case_1.category.pk,
"default_tester": "",
"testing_duration": "00:00:00:00",
"setup_duration": "01:02:00:00",
"case_status": cls.case_status_confirmed.pk,
"arguments": "",
"extra_link": "",
Expand Down Expand Up @@ -362,6 +369,15 @@ def test_initial_default_tester(self):
'<input type="text" id="id_default_tester" name="default_tester" '
f'value="{self.tester.email}" class="form-control">',
)
#def test_edit_duration_fields(self):

# testcase = TestCaseFactory(
# setup_duration=self.setup_duration,
# testing_duration=self.testing_duration,
# )
# response = self.client.get()

# self.assertEqual() #setup_duration & testing_duration


class TestEditTestCaseViewPermission(PermissionsTestCase):
Expand Down

0 comments on commit c98d95f

Please sign in to comment.