Commit ac3a6f63 by Bill DeRusha Committed by Bill DeRusha

Update new course page fields

parent 3c385e69
......@@ -6,7 +6,7 @@ from django import forms
from django.utils.translation import ugettext_lazy as _
from course_discovery.apps.course_metadata.choices import CourseRunPacing
from course_discovery.apps.course_metadata.models import Person, Organization
from course_discovery.apps.course_metadata.models import Person, Organization, Subject
from course_discovery.apps.ietf_language_tags.models import LanguageTag
from course_discovery.apps.publisher.models import Course, CourseRun, Seat, User, OrganizationExtension
......@@ -77,13 +77,30 @@ class CustomCourseForm(CourseForm):
label=_('Organization Course Admin'),
)
subjects = Subject.objects.all()
primary_subject = forms.ModelChoiceField(
queryset=subjects,
label=_('Primary'),
required=False
)
secondary_subject = forms.ModelChoiceField(
queryset=subjects,
label=_('Secondary (optional)'),
required=False
)
tertiary_subject = forms.ModelChoiceField(
queryset=subjects,
label=_('Tertiary (optional)'),
required=False
)
class Meta(CourseForm.Meta):
model = Course
fields = (
'title', 'number', 'short_description', 'full_description',
'expected_learnings', 'level_type', 'primary_subject', 'secondary_subject',
'tertiary_subject', 'prerequisites', 'level_type', 'image', 'team_admin',
'level_type', 'organization', 'is_seo_review', 'keywords',
'level_type', 'organization', 'is_seo_review', 'syllabus',
)
def __init__(self, *args, **kwargs):
......@@ -161,14 +178,28 @@ class CustomCourseRunForm(CourseRunForm):
}
),
required=False,
)
is_xseries = forms.BooleanField(
label=_('Is XSeries?'),
widget=forms.CheckboxInput,
required=False,
)
is_micromasters = forms.BooleanField(
label=_('Is MicroMasters?'),
widget=forms.CheckboxInput,
required=False,
)
xseries_name = forms.CharField(label=_('XSeries Name'), required=False)
micromasters_name = forms.CharField(label=_('MicroMasters Name'), required=False)
class Meta(CourseRunForm.Meta):
fields = (
'length', 'transcript_languages', 'language', 'min_effort', 'max_effort',
'contacted_partner_manager', 'target_content', 'pacing_type', 'video_language',
'staff', 'start', 'end',
'staff', 'start', 'end', 'is_xseries', 'xseries_name', 'is_micromasters', 'micromasters_name',
)
def save(self, commit=True, course=None, changed_by=None): # pylint: disable=arguments-differ
......
......@@ -329,7 +329,6 @@ class CreateUpdateCourseViewTests(TestCase):
course_dict = model_to_dict(course)
course_dict.update(**data)
course_dict['team_admin'] = self.user.id
course_dict['keywords'] = 'abc def xyz'
if course_run:
course_dict.update(**model_to_dict(course_run))
course_dict.pop('video_language')
......@@ -386,7 +385,6 @@ class CreateUpdateCourseViewTests(TestCase):
self.assertEqual(response.status_code, 200)
# django-taggit stores data without any order. For test .
self.assertEqual(sorted([c.name for c in course.keywords.all()]), ['abc', 'def', 'xyz'])
self.assertEqual(course.organizations.first(), self.organization_extension.organization)
self.assertTrue(len(course.course_user_roles.all()), 2)
......
......@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-01-13 12:29+0500\n"
"POT-Creation-Date: 2017-01-13 15: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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
#: apps/api/filters.py
#, python-brace-format
......@@ -449,7 +449,6 @@ msgid "Course Number"
msgstr ""
#: apps/publisher/forms.py apps/publisher/models.py
#: templates/publisher/add_course_form.html
msgid "Brief Description"
msgstr ""
......@@ -467,6 +466,18 @@ msgid "Organization Course Admin"
msgstr ""
#: apps/publisher/forms.py
msgid "Primary"
msgstr ""
#: apps/publisher/forms.py
msgid "Secondary (optional)"
msgstr ""
#: apps/publisher/forms.py
msgid "Tertiary (optional)"
msgstr ""
#: apps/publisher/forms.py
msgid "Contacted PM"
msgstr ""
......@@ -493,6 +504,22 @@ msgid "Pace"
msgstr ""
#: apps/publisher/forms.py
msgid "Is XSeries?"
msgstr ""
#: apps/publisher/forms.py
msgid "Is MicroMasters?"
msgstr ""
#: apps/publisher/forms.py
msgid "XSeries Name"
msgstr ""
#: apps/publisher/forms.py
msgid "MicroMasters Name"
msgstr ""
#: apps/publisher/forms.py
msgid "Only audit seat can be without price."
msgstr ""
......@@ -512,8 +539,7 @@ msgstr ""
msgid "Professional Education"
msgstr ""
#: apps/publisher/forms.py templates/publisher/add_course_form.html
#: templates/publisher/course_run_detail/_seats.html
#: apps/publisher/forms.py templates/publisher/course_run_detail/_seats.html
msgid "Seat Type"
msgstr ""
......@@ -965,6 +991,37 @@ msgid "About page information"
msgstr ""
#: templates/publisher/add_course_form.html
msgid "PROGRAM ASSOCIATION"
msgstr ""
#: templates/publisher/add_course_form.html
msgid "Is this course a part of any programs?"
msgstr ""
#: templates/publisher/add_course_form.html
msgid "Select the type or types of programs."
msgstr ""
#: templates/publisher/add_course_form.html
msgid "Add the name of the program this course will be a part of."
msgstr ""
#: templates/publisher/add_course_form.html
#: templates/publisher/add_courserun_form.html
msgid "CERTIFICATE TYPE AND PRICE"
msgstr ""
#: templates/publisher/add_course_form.html
msgid ""
"If Verified or Professional Education, indicate certificate price in US "
"dollars (minimum of $49)"
msgstr ""
#: templates/publisher/add_course_form.html
msgid "BRIEF DESCRIPTION"
msgstr ""
#: templates/publisher/add_course_form.html
msgid ""
"Reads as a tag line - a short, engaging description for students browsing "
"course listings"
......@@ -979,6 +1036,10 @@ msgid "SEO optimized and targeted to a global audience"
msgstr ""
#: templates/publisher/add_course_form.html
msgid "140 character limit, including spaces."
msgstr ""
#: templates/publisher/add_course_form.html
msgid "FULL DESCRIPTION"
msgstr ""
......@@ -1009,6 +1070,10 @@ msgid ""
msgstr ""
#: templates/publisher/add_course_form.html
msgid "2500 character limit, including spaces."
msgstr ""
#: templates/publisher/add_course_form.html
msgid "EXPECTED LEARNINGS"
msgstr ""
......@@ -1035,14 +1100,6 @@ msgid "Limited to the primary instructors a learner will encounter in videos"
msgstr ""
#: templates/publisher/add_course_form.html
msgid "KEYWORDS"
msgstr ""
#: templates/publisher/add_course_form.html
msgid "Some instructions here???"
msgstr ""
#: templates/publisher/add_course_form.html
msgid "SUBJECT FIELD"
msgstr ""
......@@ -1107,6 +1164,14 @@ msgid "200 character limit, including spaces"
msgstr ""
#: templates/publisher/add_course_form.html
msgid "200 character limit, including spaces."
msgstr ""
#: templates/publisher/add_course_form.html
msgid "SYLLABUS"
msgstr ""
#: templates/publisher/add_course_form.html
msgid "ESTIMATED EFFORT"
msgstr ""
......@@ -1245,10 +1310,6 @@ msgid "etc."
msgstr ""
#: templates/publisher/add_courserun_form.html
msgid "CERTIFICATE TYPE AND PRICE"
msgstr ""
#: templates/publisher/add_courserun_form.html
msgid ""
"If Verified or Professional Ed, indicate certificate price in US dollars "
"(minimum of $49)"
......
......@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-01-13 12:29+0500\n"
"POT-Creation-Date: 2017-01-13 15: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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
#: static/js/catalogs-change-form.js
msgid "Preview"
......
......@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-01-13 12:29+0500\n"
"POT-Creation-Date: 2017-01-13 15: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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps/api/filters.py
......@@ -557,7 +557,6 @@ msgid "Course Number"
msgstr "Çöürsé Nümßér Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#"
#: apps/publisher/forms.py apps/publisher/models.py
#: templates/publisher/add_course_form.html
msgid "Brief Description"
msgstr "Brïéf Désçrïptïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#"
......@@ -575,6 +574,18 @@ msgid "Organization Course Admin"
msgstr "Örgänïzätïön Çöürsé Àdmïn Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#"
#: apps/publisher/forms.py
msgid "Primary"
msgstr "Prïmärý Ⱡ'σяєм ιρѕυм #"
#: apps/publisher/forms.py
msgid "Secondary (optional)"
msgstr "Séçöndärý (öptïönäl) Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #"
#: apps/publisher/forms.py
msgid "Tertiary (optional)"
msgstr "Tértïärý (öptïönäl) Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#"
#: apps/publisher/forms.py
msgid "Contacted PM"
msgstr "Çöntäçtéd PM Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#"
......@@ -601,6 +612,22 @@ msgid "Pace"
msgstr "Päçé Ⱡ'σяєм ι#"
#: apps/publisher/forms.py
msgid "Is XSeries?"
msgstr "Ìs XSérïés? Ⱡ'σяєм ιρѕυм ∂σłσя #"
#: apps/publisher/forms.py
msgid "Is MicroMasters?"
msgstr "Ìs MïçröMästérs? Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#"
#: apps/publisher/forms.py
msgid "XSeries Name"
msgstr "XSérïés Nämé Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#"
#: apps/publisher/forms.py
msgid "MicroMasters Name"
msgstr "MïçröMästérs Nämé Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#"
#: apps/publisher/forms.py
msgid "Only audit seat can be without price."
msgstr ""
"Önlý äüdït séät çän ßé wïthöüt prïçé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, "
......@@ -622,8 +649,7 @@ msgstr "Vérïfïéd Çértïfïçäté Ⱡ'σяєм ιρѕυм ∂σłσя ѕι
msgid "Professional Education"
msgstr "Pröféssïönäl Édüçätïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#"
#: apps/publisher/forms.py templates/publisher/add_course_form.html
#: templates/publisher/course_run_detail/_seats.html
#: apps/publisher/forms.py templates/publisher/course_run_detail/_seats.html
msgid "Seat Type"
msgstr "Séät Týpé Ⱡ'σяєм ιρѕυм ∂σł#"
......@@ -1147,6 +1173,45 @@ msgid "About page information"
msgstr "Àßöüt pägé ïnförmätïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢#"
#: templates/publisher/add_course_form.html
msgid "PROGRAM ASSOCIATION"
msgstr "PRÖGRÀM ÀSSÖÇÌÀTÌÖN Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#"
#: templates/publisher/add_course_form.html
msgid "Is this course a part of any programs?"
msgstr ""
"Ìs thïs çöürsé ä pärt öf äný prögräms? Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, "
"¢σηѕє¢тєтυя#"
#: templates/publisher/add_course_form.html
msgid "Select the type or types of programs."
msgstr ""
"Séléçt thé týpé ör týpés öf prögräms. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, "
"¢σηѕє¢тєтυ#"
#: templates/publisher/add_course_form.html
msgid "Add the name of the program this course will be a part of."
msgstr ""
"Àdd thé nämé öf thé prögräm thïs çöürsé wïll ßé ä pärt öf. Ⱡ'σяєм ιρѕυм "
"∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#"
#: templates/publisher/add_course_form.html
#: templates/publisher/add_courserun_form.html
msgid "CERTIFICATE TYPE AND PRICE"
msgstr "ÇÉRTÌFÌÇÀTÉ TÝPÉ ÀND PRÌÇÉ Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#"
#: templates/publisher/add_course_form.html
msgid ""
"If Verified or Professional Education, indicate certificate price in US "
"dollars (minimum of $49)"
msgstr ""
"Ìf Vérïfïéd ör Pröféssïönäl Édüçätïön, ïndïçäté çértïfïçäté prïçé ïn ÛS "
"döllärs (mïnïmüm öf $49) Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #"
#: templates/publisher/add_course_form.html
msgid "BRIEF DESCRIPTION"
msgstr "BRÌÉF DÉSÇRÌPTÌÖN Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмє#"
#: templates/publisher/add_course_form.html
msgid ""
"Reads as a tag line - a short, engaging description for students browsing "
"course listings"
......@@ -1167,6 +1232,12 @@ msgstr ""
" ¢σηѕє¢тєтυя α#"
#: templates/publisher/add_course_form.html
msgid "140 character limit, including spaces."
msgstr ""
"140 çhäräçtér lïmït, ïnçlüdïng späçés. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, "
"¢σηѕє¢тєтυя#"
#: templates/publisher/add_course_form.html
msgid "FULL DESCRIPTION"
msgstr "FÛLL DÉSÇRÌPTÌÖN Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#"
......@@ -1207,6 +1278,12 @@ msgstr ""
" ündér thé fïrst 4-5 lïnés Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#"
#: templates/publisher/add_course_form.html
msgid "2500 character limit, including spaces."
msgstr ""
"2500 çhäräçtér lïmït, ïnçlüdïng späçés. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, "
"¢σηѕє¢тєтυя#"
#: templates/publisher/add_course_form.html
msgid "EXPECTED LEARNINGS"
msgstr "ÉXPÉÇTÉD LÉÀRNÌNGS Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт#"
......@@ -1241,14 +1318,6 @@ msgstr ""
" ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя #"
#: templates/publisher/add_course_form.html
msgid "KEYWORDS"
msgstr "KÉÝWÖRDS Ⱡ'σяєм ιρѕυм ∂#"
#: templates/publisher/add_course_form.html
msgid "Some instructions here???"
msgstr "Sömé ïnstrüçtïöns héré??? Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#"
#: templates/publisher/add_course_form.html
msgid "SUBJECT FIELD"
msgstr "SÛBJÉÇT FÌÉLD Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#"
......@@ -1338,6 +1407,16 @@ msgstr ""
"¢σηѕє¢тєтυ#"
#: templates/publisher/add_course_form.html
msgid "200 character limit, including spaces."
msgstr ""
"200 çhäräçtér lïmït, ïnçlüdïng späçés. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, "
"¢σηѕє¢тєтυя#"
#: templates/publisher/add_course_form.html
msgid "SYLLABUS"
msgstr "SÝLLÀBÛS Ⱡ'σяєм ιρѕυм ∂#"
#: templates/publisher/add_course_form.html
msgid "ESTIMATED EFFORT"
msgstr "ÉSTÌMÀTÉD ÉFFÖRT Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#"
......@@ -1522,10 +1601,6 @@ msgid "etc."
msgstr "étç. Ⱡ'σяєм ι#"
#: templates/publisher/add_courserun_form.html
msgid "CERTIFICATE TYPE AND PRICE"
msgstr "ÇÉRTÌFÌÇÀTÉ TÝPÉ ÀND PRÌÇÉ Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#"
#: templates/publisher/add_courserun_form.html
msgid ""
"If Verified or Professional Ed, indicate certificate price in US dollars "
"(minimum of $49)"
......
......@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-01-13 12:29+0500\n"
"POT-Creation-Date: 2017-01-13 15: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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/js/catalogs-change-form.js
......
......@@ -28,6 +28,13 @@ $(document).ready(function(){
if (org_id){
loadAdminUsers(org_id);
}
$('#id_is_micromasters').click( function(){
$('#micromasters_name_group').toggle(this.checked);
});
$('#id_is_xseries').click( function(e){
$('#xseries_name_group').toggle(this.checked);
});
});
$(document).on('change', '#id_organization', function (e) {
......
......@@ -169,11 +169,58 @@
<div class="card course-form">
<div class="course-information">
<fieldset class="form-group grid-container grid-manual">
<div class="field-title">{% trans "PROGRAM ASSOCIATION" %}</div>
<div class="row">
<div class="col col-6 help-text">
<ul>
<li>{% trans "Is this course a part of any programs?" %}</li>
<li>{% trans "Select the type or types of programs." %}</li>
<li>{% trans "Add the name of the program this course will be a part of." %}</li>
</ul>
</div>
<div class="col col-6">
<div class="row">
<div class="col col-5">
<label class="field-label ">{{ run_form.is_micromasters.label_tag }}</label>
{{ run_form.is_micromasters}}
</div>
<div class="col col-7 {% if run_form.micromasters_name %} hidden {% endif %}" id="micromasters_name_group">
<label class="field-label ">{{ run_form.micromasters_name.label_tag }}</label>
{{ run_form.micromasters_name }}
</div>
{% if run_form.micromasters_name.errors %}
<div class="field-message has-error">
<span class="field-message-content">
{{ run_form.micromasters_name.errors|escape }}
</span>
</div>
{% endif %}
</div>
<div class="row">
<div class="col col-5">
<label class="field-label ">{{ run_form.is_xseries.label_tag }}</label>
{{ run_form.is_xseries}}
</div>
<div class="col col-7 {% if run_form.xseries_name %} hidden {% endif %}" id="xseries_name_group">
<label class="field-label ">{{ run_form.xseries_name.label_tag }}</label>
{{ run_form.xseries_name}}
</div>
{% if run_form.xseries_name.errors %}
<div class="field-message has-error">
<span class="field-message-content">
{{ run_form.xseries_name.errors|escape }}
</span>
</div>
{% endif %}
</div>
</div>
<div class="field-title">{% trans "Seat Type" %}</div>
</div>
<div class="field-title">{% trans "CERTIFICATE TYPE AND PRICE" %}</div>
<div class="row">
<div class="col col-6 help-text">
{% trans "The date when this self-paced course run will end, replaced by an updated version of the course" %}
{% trans "If Verified or Professional Education, indicate certificate price in US dollars (minimum of $49)" %}
</div>
<div class="col col-6">
<div class="row">
......@@ -200,7 +247,7 @@
</div>
<div class="field-title">{% trans "Brief Description" %}</div>
<div class="field-title">{% trans "BRIEF DESCRIPTION" %}</div>
<div class="row">
<div class="col col-6 help-text">
<ul>
......@@ -213,6 +260,7 @@
<div class="col col-6">
<label class="field-label ">{{ course_form.short_description.label_tag }}</label>
{{ course_form.short_description }}
<p>{% trans "140 character limit, including spaces." %}</p>
</div>
</div>
......@@ -234,6 +282,7 @@
<div class="col col-6">
<label class="field-label ">{{ course_form.full_description.label_tag }}</label>
{{ course_form.full_description }}
<p>{% trans "2500 character limit, including spaces." %}</p>
</div>
</div>
......@@ -266,20 +315,6 @@
</div>
</div>
<div class="field-title">{% trans "KEYWORDS" %}</div>
<div class="row">
<div class="col col-6 help-text">
{% trans "Some instructions here???" %}
</div>
<div class="col col-6">
<label class="field-label ">{{ course_form.keywords.label_tag }}</label>
{{ course_form.keywords}}
<label class="field-label ">{{ course_form.is_seo_review.label_tag }}</label>
{{ course_form.is_seo_review}}
</div>
</div>
<div class="field-title">{% trans "SUBJECT FIELD" %}</div>
<div class="row">
<div class="col col-6 help-text">
......@@ -342,6 +377,20 @@
<div class="col col-6">
<label class="field-label ">{{ course_form.prerequisites.label_tag }}</label>
{{ course_form.prerequisites }}
<p>{% trans "200 character limit, including spaces." %}</p>
</div>
</div>
<div class="field-title">{% trans "SYLLABUS" %}</div>
<div class="row">
<div class="col col-6 help-text">
<ul>
<!-- Help text will go here when we have it.-->
</ul>
</div>
<div class="col col-6">
<label class="field-label ">{{ course_form.syllabus.label_tag }}</label>
{{ course_form.syllabus }}
</div>
</div>
......@@ -439,8 +488,8 @@
</div>
</div>
<div class="layout-full publisher-layout layout">
<div class="card course-form">
<div class="layout-full layout">
<div class="course-form">
<div class="course-information">
<fieldset class="form-group grid-container grid-manual">
<button class="btn-brand btn-base" type="submit">{% trans "Save Draft" %}</button>
......
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