Commit c0faf2f2 by rabiaiftikhar Committed by Rabia Iftikhar

EDUCATOR-1086 Allow range of hours/units or one, non-range value in 'Estimated Effort' field

parent d21afab9
......@@ -364,6 +364,10 @@ class CustomCourseRunForm(CourseRunForm):
raise ValidationError({'start': _('Start date cannot be after the End date')})
if min_effort and max_effort and min_effort > max_effort:
raise ValidationError({'min_effort': _('Minimum effort cannot be greater than Maximum effort')})
if min_effort and max_effort and min_effort == max_effort:
raise ValidationError({'min_effort': _('Minimum effort and Maximum effort can not be same')})
if not min_effort and max_effort:
raise ValidationError({'min_effort': _('Minimum effort can not be empty')})
if is_xseries and not xseries_name:
raise ValidationError({'xseries_name': _('Enter XSeries program name')})
if is_micromasters and not micromasters_name:
......
......@@ -725,7 +725,7 @@ class CourseRunState(TimeStampedModel, ChangedByMixin):
course_run.pacing_type, course_run.has_valid_staff, course_run.is_valid_micromasters,
course_run.is_valid_professional_certificate, course_run.is_valid_xseries, course_run.language,
course_run.transcript_languages.all(), course_run.lms_course_id, course_run.min_effort,
course_run.max_effort, course_run.video_language, course_run.length
course_run.video_language, course_run.length
])
......
......@@ -101,6 +101,34 @@ class PublisherCourseRunEditFormTests(TestCase):
run_form.cleaned_data['min_effort'] = 1
self.assertEqual(run_form.clean(), run_form.cleaned_data)
def test_minimum_maximum_effort_equality(self):
"""
Verify that 'clean' raises 'ValidationError' error if Minimum effort and
Maximum effort are equal.
"""
run_form = CustomCourseRunForm()
run_form.cleaned_data = {'min_effort': 4, 'max_effort': 4}
with self.assertRaises(ValidationError) as err:
run_form.clean()
self.assertEqual(str(err.exception), "{'min_effort': ['Minimum effort and Maximum effort can not be same']}")
run_form.cleaned_data['min_effort'] = 2
self.assertEqual(run_form.clean(), run_form.cleaned_data)
def test_minimum__effort_is_not_empty(self):
"""
Verify that 'clean' raises 'ValidationError' error if Minimum effort is
empty.
"""
run_form = CustomCourseRunForm()
run_form.cleaned_data = {'max_effort': 4}
with self.assertRaises(ValidationError) as err:
run_form.clean()
self.assertEqual(str(err.exception), "{'min_effort': ['Minimum effort can not be empty']}")
run_form.cleaned_data['min_effort'] = 1
self.assertEqual(run_form.clean(), run_form.cleaned_data)
def test_course_run_dates(self):
"""
Verify that 'clean' raises 'ValidationError' if the Start date is in the past
......
......@@ -1025,6 +1025,7 @@ class CourseRunDetailTests(SiteMixin, TestCase):
self.course_run.language = language_tag
self.course_run.is_micromasters = True
self.course_run.micromasters_name = 'test'
self.course_run.max_effort = None
self.course_run.save()
self.course_run.staff.add(PersonFactory())
......
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-21 17:33+0500\n"
"POT-Creation-Date: 2017-08-11 17:00+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -707,6 +707,14 @@ msgid "Minimum effort cannot be greater than Maximum effort"
msgstr ""
#: apps/publisher/forms.py
msgid "Minimum effort and Maximum effort can not be same"
msgstr ""
#: apps/publisher/forms.py
msgid "Minimum effort can not be empty"
msgstr ""
#: apps/publisher/forms.py
msgid "Enter XSeries program name"
msgstr ""
......
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-21 17:33+0500\n"
"POT-Creation-Date: 2017-08-11 17:00+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-21 17:33+0500\n"
"POT-Creation-Date: 2017-08-11 17:00+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -842,6 +842,16 @@ msgstr ""
"αмєт, ¢σηѕє¢тєтυя α#"
#: apps/publisher/forms.py
msgid "Minimum effort and Maximum effort can not be same"
msgstr ""
"Mïnïmüm éffört änd Mäxïmüm éffört çän nöt ßé sämé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт "
"αмєт, ¢σηѕє¢тєтυя α#"
#: apps/publisher/forms.py
msgid "Minimum effort can not be empty"
msgstr "Mïnïmüm éffört çän nöt ßé émptý Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢т#"
#: apps/publisher/forms.py
msgid "Enter XSeries program name"
msgstr "Éntér XSérïés prögräm nämé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#"
......
......@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-07-21 17:33+0500\n"
"POT-Creation-Date: 2017-08-11 17:00+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......
......@@ -94,6 +94,8 @@
<div>
{% if object.min_effort and object.max_effort %}
{{ object.min_effort }}-{{ object.max_effort }} {% trans "hours per week" %}
{% elif object.min_effort %}
{{ object.min_effort }} {% trans "hours per week" %}
{% else %}
{% with object.estimated_effort as field %}
{% include "publisher/_render_required_field.html" %}
......
......@@ -138,6 +138,8 @@
<div class="copy">
{% if object.min_effort and object.max_effort %}
{{ object.min_effort }} {% trans "to" %} {{ object.max_effort }} {% trans "hours per week" %}
{% elif object.min_effort %}
{{ object.min_effort }} {% trans "hours per week" %}
{% else %}
{% with object.estimated_effort as field %}
{% include "publisher/_render_required_field.html" %}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment