Skip to content

Commit

Permalink
Add setup_duration & testing_duration in testcases/mutable.html, Refs #…
Browse files Browse the repository at this point in the history
  • Loading branch information
APiligrim authored and atodorov committed Jul 6, 2021
1 parent d3d005b commit 3529805
Show file tree
Hide file tree
Showing 5 changed files with 68 additions and 5 deletions.
30 changes: 30 additions & 0 deletions tcms/core/widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,3 +40,33 @@ class Media:
"prismjs/plugins/autoloader/prism-autoloader.min.js",
"js/simplemde_security_override.js",
]


class DurationWidget(forms.Textarea):
def render(self, name, value, attrs=None, renderer=None):
rendered_duration = super().render(name, value, attrs, renderer)
rendered_duration += """
<input id="%s" type="text" style="display: none">
<script>
$(function () {
$('#%s').durationPicker({
showDays: true,
showHours: true,
showMinutes: true,
showSeconds: true,
});
});
</script>
""" % (
attrs["id"],
attrs["id"],
)

return rendered_duration

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.13.2",
"marked": "2.1.3",
Expand Down
11 changes: 9 additions & 2 deletions tcms/testcases/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.utils.translation import gettext_lazy as _

from tcms.core.forms.fields import UserField
from tcms.core.widgets import SimpleMDE
from tcms.core.widgets import DurationWidget, SimpleMDE
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 +35,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 +89,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 id="setup_duration">
{{ 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 id="testing-duration">
{{ 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
7 changes: 7 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

0 comments on commit 3529805

Please sign in to comment.