Commit f173a299 by Awais

Implementing List of Preview Ready course runs tab

ECOM-6221
parent 3de6070b
# -*- coding: utf-8 -*-
# Generated by Django 1.9.11 on 2016-11-17 12:10
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('publisher', '0014_create_admin_group'),
]
operations = [
migrations.AddField(
model_name='courserun',
name='preview_url',
field=models.URLField(blank=True, null=True),
),
migrations.AddField(
model_name='historicalcourserun',
name='preview_url',
field=models.URLField(blank=True, null=True),
),
]
...@@ -256,6 +256,7 @@ class CourseRun(TimeStampedModel, ChangedByMixin): ...@@ -256,6 +256,7 @@ class CourseRun(TimeStampedModel, ChangedByMixin):
) )
) )
video_language = models.ForeignKey(LanguageTag, null=True, blank=True, related_name='video_language') video_language = models.ForeignKey(LanguageTag, null=True, blank=True, related_name='video_language')
preview_url = models.URLField(null=True, blank=True)
history = HistoricalRecords() history = HistoricalRecords()
......
...@@ -55,6 +55,7 @@ class CourseRunFactory(factory.DjangoModelFactory): ...@@ -55,6 +55,7 @@ class CourseRunFactory(factory.DjangoModelFactory):
pacing_type = FuzzyChoice([name for name, __ in CourseRunPacing.choices]) pacing_type = FuzzyChoice([name for name, __ in CourseRunPacing.choices])
length = FuzzyInteger(1, 10) length = FuzzyInteger(1, 10)
notes = "Testing notes" notes = "Testing notes"
preview_url = FuzzyText(prefix='https://example.com/')
class Meta: class Meta:
model = CourseRun model = CourseRun
......
...@@ -921,6 +921,7 @@ class DashboardTests(TestCase): ...@@ -921,6 +921,7 @@ class DashboardTests(TestCase):
# group-b course # group-b course
self._create_course_assign_permissions(State.DRAFT, self.group_b) self._create_course_assign_permissions(State.DRAFT, self.group_b)
self.table_class = "data-table-{id} display nowrap"
def _create_course_assign_permissions(self, state, group): def _create_course_assign_permissions(self, state, group):
""" DRY method to create course and assign the permissions""" """ DRY method to create course and assign the permissions"""
...@@ -943,56 +944,31 @@ class DashboardTests(TestCase): ...@@ -943,56 +944,31 @@ class DashboardTests(TestCase):
target_status_code=302 target_status_code=302
) )
def test_page_with_login(self):
""" Verify that user can access course runs list page when logged in. """
response = self.client.get(self.page_url)
self.assertEqual(response.status_code, 200)
def test_page_with_different_group_user(self): def test_page_with_different_group_user(self):
""" Verify that user from one group can access only that group courses. """ """ Verify that user from one group can access only that group courses. """
self.client.logout() self.client.logout()
self.client.login(username=self.user2.username, password=USER_PASSWORD) self.client.login(username=self.user2.username, password=USER_PASSWORD)
self.assert_dashboard_response(1, 0, 1) self.assert_dashboard_response()
def test_page_with_staff_user(self): def test_page_with_staff_user(self):
""" Verify that staff user can see all tabs with all course runs from all groups. """ """ Verify that staff user can see all tabs with all course runs from all groups. """
self.client.logout() self.client.logout()
staff_user = UserFactory(is_staff=True) staff_user = UserFactory(is_staff=True)
self.client.login(username=staff_user.username, password=USER_PASSWORD) self.client.login(username=staff_user.username, password=USER_PASSWORD)
self.assert_dashboard_response(3, 1, 3) self.assert_dashboard_response()
def test_different_course_runs_counts(self): def test_different_course_runs_counts(self):
""" Verify that user can access published, un-published and """ Verify that user can access published, un-published and
studio requests course runs. """ studio requests course runs. """
self.assert_dashboard_response(2, 1, 2) self.assert_dashboard_response()
def test_studio_request_course_runs(self): def test_studio_request_course_runs(self):
""" Verify that page loads the list course runs which need studio request. """ """ Verify that page loads the list course runs which need studio request. """
self.course_run_1.lms_course_id = 'test' self.course_run_1.lms_course_id = 'test'
self.course_run_1.save() self.course_run_1.save()
self.assert_dashboard_response(2, 1, 1) response = self.assert_dashboard_response()
self.course_run_2.lms_course_id = 'test-2' self.assertContains(response, self.table_class.format(id='studio'))
self.course_run_2.save() self.assertEqual(len(response.context['studio_request_courses']), 1)
self.assert_dashboard_response(2, 1, 0)
def assert_dashboard_response(self, unpublished_count, published_count, studio_requests):
response = self.client.get(self.page_url)
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.context['unpublished_course_runs']), unpublished_count)
self.assertEqual(len(response.context['published_course_runs']), published_count)
self.assertEqual(len(response.context['studio_request_courses']), studio_requests)
if studio_requests > 0:
self.assertContains(response, '<table class="data-table-studio display"')
else:
self.assertContains(response, 'There are no course-runs require studio instance.')
if published_count > 0:
self.assertContains(response, '<table class="data-table-published display"')
self.assertContains(response, 'The list below contains all course runs published in the past 30 days')
else:
self.assertContains(response, "Looks like you haven't published any course yet")
def test_without_studio_request_course_runs(self): def test_without_studio_request_course_runs(self):
""" Verify that studio tab indicates a message if no course-run available. """ """ Verify that studio tab indicates a message if no course-run available. """
...@@ -1000,12 +976,52 @@ class DashboardTests(TestCase): ...@@ -1000,12 +976,52 @@ class DashboardTests(TestCase):
self.course_run_1.save() self.course_run_1.save()
self.course_run_2.lms_course_id = 'test-2' self.course_run_2.lms_course_id = 'test-2'
self.course_run_2.save() self.course_run_2.save()
self.assert_dashboard_response(2, 1, 0) response = self.assert_dashboard_response()
self.assertEqual(len(response.context['studio_request_courses']), 0)
self.assertContains(response, 'There are no course-runs require studio instance.')
def test_without_published_course_runs(self): def test_without_published_course_runs(self):
""" Verify that published tab indicates a message if no course-run available. """ """ Verify that published tab indicates a message if no course-run available. """
self.course_run_3.change_state(target=State.DRAFT) self.course_run_3.change_state(target=State.DRAFT)
self.assert_dashboard_response(3, 0, 3) response = self.assert_dashboard_response()
self.assertEqual(len(response.context['published_course_runs']), 0)
self.assertContains(response, "Looks like you haven't published any course yet")
def test_published_course_runs(self):
""" Verify that published tab loads course runs list. """
response = self.assert_dashboard_response()
self.assertEqual(len(response.context['published_course_runs']), 1)
self.assertContains(response, self.table_class.format(id='published'))
self.assertContains(response, 'The list below contains all course runs published in the past 30 days')
def test_with_preview_ready_course_runs(self):
""" Verify that preview ready tabs loads the course runs list. """
self.course_run_2.change_state(target=State.NEEDS_FINAL_APPROVAL)
self.course_run_2.save()
response = self.assert_dashboard_response()
self.assertEqual(len(response.context['preview_course_runs']), 1)
self.assertContains(response, self.table_class.format(id='preview'))
self.assertContains(response, 'The list below contains all course runs awaiting course team approval')
def test_without_preview_ready_course_runs(self):
""" Verify preview ready tabs shows a message if no course run available. """
response = self.assert_dashboard_response()
self.assertEqual(len(response.context['preview_course_runs']), 0)
self.assertContains(response, 'There are no course runs marked for preview.')
def test_without_preview_url(self):
""" Verify preview ready tabs shows a message if no course run available. """
self.course_run_2.preview_url = None
self.course_run_2.save()
response = self.assert_dashboard_response()
self.assertEqual(len(response.context['preview_course_runs']), 0)
self.assertContains(response, 'There are no course runs marked for preview.')
def assert_dashboard_response(self):
""" Dry method to assert the response."""
response = self.client.get(self.page_url)
self.assertEqual(response.status_code, 200)
return response
class ToggleEmailNotificationTests(TestCase): class ToggleEmailNotificationTests(TestCase):
......
...@@ -60,6 +60,12 @@ class Dashboard(mixins.LoginRequiredMixin, ListView): ...@@ -60,6 +60,12 @@ class Dashboard(mixins.LoginRequiredMixin, ListView):
context['published_course_runs'] = [CourseRunWrapper(course_run) for course_run in published_course_runs] context['published_course_runs'] = [CourseRunWrapper(course_run) for course_run in published_course_runs]
context['default_published_days'] = self.default_published_days context['default_published_days'] = self.default_published_days
preview_course_runs = course_runs.filter(
state__name=State.NEEDS_FINAL_APPROVAL, preview_url__isnull=False
).select_related('state').order_by('-state__modified')
context['preview_course_runs'] = [CourseRunWrapper(course_run) for course_run in preview_course_runs]
return context return context
......
...@@ -7,7 +7,7 @@ msgid "" ...@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-15 13:47+0500\n" "POT-Creation-Date: 2016-11-17 23:20+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -763,7 +763,7 @@ msgstr "" ...@@ -763,7 +763,7 @@ msgstr ""
#: templates/publisher/course_run_detail/_drupal.html #: templates/publisher/course_run_detail/_drupal.html
#: templates/publisher/course_run_detail/_salesforce.html #: templates/publisher/course_run_detail/_salesforce.html
#: templates/publisher/course_run_detail/_studio.html #: templates/publisher/course_run_detail/_studio.html
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "Start Date" msgid "Start Date"
msgstr "" msgstr ""
...@@ -791,7 +791,7 @@ msgid "" ...@@ -791,7 +791,7 @@ msgid ""
msgstr "" msgstr ""
#: templates/publisher/add_course_form.html #: templates/publisher/add_course_form.html
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "Course Number" msgid "Course Number"
msgstr "" msgstr ""
...@@ -1407,12 +1407,16 @@ msgid "No Seats Available." ...@@ -1407,12 +1407,16 @@ msgid "No Seats Available."
msgstr "" msgstr ""
#: templates/publisher/course_run_detail/_studio.html #: templates/publisher/course_run_detail/_studio.html
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_preview_ready.html
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_published.html
#: templates/publisher/dashboard/_studio_requests.html
msgid "Course Name" msgid "Course Name"
msgstr "" msgstr ""
#: templates/publisher/course_run_detail/_studio.html #: templates/publisher/course_run_detail/_studio.html
#: templates/publisher/dashboard/_preview_ready.html
#: templates/publisher/dashboard/_published.html
#: templates/publisher/dashboard/_studio_requests.html
msgid "Organization" msgid "Organization"
msgstr "" msgstr ""
...@@ -1499,53 +1503,67 @@ msgstr "" ...@@ -1499,53 +1503,67 @@ msgstr ""
msgid "In Progress" msgid "In Progress"
msgstr "" msgstr ""
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_preview_ready.html
msgid "There are no course runs marked for preview."
msgstr ""
#: templates/publisher/dashboard/_preview_ready.html
msgid ""
"The list below contains all course runs awaiting course team approval. Once "
"approved, the marketing team will push the course run. you will be notified "
"via email when the course runs are live on the production site."
msgstr ""
#: templates/publisher/dashboard/_preview_ready.html
msgid "Approved"
msgstr ""
#: templates/publisher/dashboard/_preview_ready.html
msgid "Preview URL"
msgstr ""
#: templates/publisher/dashboard/_published.html
msgid "Looks like you haven't published any course yet" msgid "Looks like you haven't published any course yet"
msgstr "" msgstr ""
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_published.html
#, python-format #, python-format
msgid "" msgid ""
"The list below contains all course runs published in the past " "The list below contains all course runs published in the past "
"%(default_published_days)s days." "%(default_published_days)s days."
msgstr "" msgstr ""
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_published.html
#: templates/publisher/dashboard/studio_requests.html
msgid "Institution"
msgstr ""
#: templates/publisher/dashboard/published.html
msgid "Start" msgid "Start"
msgstr "" msgstr ""
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_published.html
msgid "End" msgid "End"
msgstr "" msgstr ""
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_published.html
msgid "Published Date" msgid "Published Date"
msgstr "" msgstr ""
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_published.html
msgid "Target Content" msgid "Target Content"
msgstr "" msgstr ""
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "" msgid ""
"The list below are the courses that need a studio instance to start " "The list below are the courses that need a studio instance to start "
"development." "development."
msgstr "" msgstr ""
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "Studio Course Run Key" msgid "Studio Course Run Key"
msgstr "" msgstr ""
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "Add" msgid "Add"
msgstr "" msgstr ""
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "There are no course-runs require studio instance." msgid "There are no course-runs require studio instance."
msgstr "" msgstr ""
......
...@@ -7,7 +7,7 @@ msgid "" ...@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-15 13:47+0500\n" "POT-Creation-Date: 2016-11-17 23:20+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
......
...@@ -7,7 +7,7 @@ msgid "" ...@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-15 13:47+0500\n" "POT-Creation-Date: 2016-11-17 23:20+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
...@@ -905,7 +905,7 @@ msgstr "Prïörïtý çöntént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм# ...@@ -905,7 +905,7 @@ msgstr "Prïörïtý çöntént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αм#
#: templates/publisher/course_run_detail/_drupal.html #: templates/publisher/course_run_detail/_drupal.html
#: templates/publisher/course_run_detail/_salesforce.html #: templates/publisher/course_run_detail/_salesforce.html
#: templates/publisher/course_run_detail/_studio.html #: templates/publisher/course_run_detail/_studio.html
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "Start Date" msgid "Start Date"
msgstr "Stärt Däté Ⱡ'σяєм ιρѕυм ∂σłσ#" msgstr "Stärt Däté Ⱡ'σяєм ιρѕυм ∂σłσ#"
...@@ -945,7 +945,7 @@ msgstr "" ...@@ -945,7 +945,7 @@ msgstr ""
"Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя#" "Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя#"
#: templates/publisher/add_course_form.html #: templates/publisher/add_course_form.html
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "Course Number" msgid "Course Number"
msgstr "Çöürsé Nümßér Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#" msgstr "Çöürsé Nümßér Ⱡ'σяєм ιρѕυм ∂σłσя ѕι#"
...@@ -1651,12 +1651,16 @@ msgid "No Seats Available." ...@@ -1651,12 +1651,16 @@ msgid "No Seats Available."
msgstr "Nö Séäts Àväïläßlé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#" msgstr "Nö Séäts Àväïläßlé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,#"
#: templates/publisher/course_run_detail/_studio.html #: templates/publisher/course_run_detail/_studio.html
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_preview_ready.html
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_published.html
#: templates/publisher/dashboard/_studio_requests.html
msgid "Course Name" msgid "Course Name"
msgstr "Çöürsé Nämé Ⱡ'σяєм ιρѕυм ∂σłσя #" msgstr "Çöürsé Nämé Ⱡ'σяєм ιρѕυм ∂σłσя #"
#: templates/publisher/course_run_detail/_studio.html #: templates/publisher/course_run_detail/_studio.html
#: templates/publisher/dashboard/_preview_ready.html
#: templates/publisher/dashboard/_published.html
#: templates/publisher/dashboard/_studio_requests.html
msgid "Organization" msgid "Organization"
msgstr "Örgänïzätïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#" msgstr "Örgänïzätïön Ⱡ'σяєм ιρѕυм ∂σłσя ѕ#"
...@@ -1750,13 +1754,42 @@ msgstr "PÛBLÌSHÉD ÇÖÛRSÉ RÛNS Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт ...@@ -1750,13 +1754,42 @@ msgstr "PÛBLÌSHÉD ÇÖÛRSÉ RÛNS Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт
msgid "In Progress" msgid "In Progress"
msgstr "Ìn Prögréss Ⱡ'σяєм ιρѕυм ∂σłσя #" msgstr "Ìn Prögréss Ⱡ'σяєм ιρѕυм ∂σłσя #"
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_preview_ready.html
msgid "There are no course runs marked for preview."
msgstr ""
"Théré äré nö çöürsé rüns märkéd för prévïéw. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, "
"¢σηѕє¢тєтυя #"
#: templates/publisher/dashboard/_preview_ready.html
msgid ""
"The list below contains all course runs awaiting course team approval. Once "
"approved, the marketing team will push the course run. you will be notified "
"via email when the course runs are live on the production site."
msgstr ""
"Thé lïst ßélöw çöntäïns äll çöürsé rüns äwäïtïng çöürsé téäm äppröväl. Önçé "
"äpprövéd, thé märkétïng téäm wïll püsh thé çöürsé rün. ýöü wïll ßé nötïfïéd "
"vïä émäïl whén thé çöürsé rüns äré lïvé ön thé prödüçtïön sïté. Ⱡ'σяєм ιρѕυм"
" ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя "
"ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ "
"ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ "
"¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє "
"¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα ραяιαтυя.#"
#: templates/publisher/dashboard/_preview_ready.html
msgid "Approved"
msgstr "Àpprövéd Ⱡ'σяєм ιρѕυм ∂#"
#: templates/publisher/dashboard/_preview_ready.html
msgid "Preview URL"
msgstr "Prévïéw ÛRL Ⱡ'σяєм ιρѕυм ∂σłσя #"
#: templates/publisher/dashboard/_published.html
msgid "Looks like you haven't published any course yet" msgid "Looks like you haven't published any course yet"
msgstr "" msgstr ""
"Lööks lïké ýöü hävén't püßlïshéd äný çöürsé ýét Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт," "Lööks lïké ýöü hävén't püßlïshéd äný çöürsé ýét Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт,"
" ¢σηѕє¢тєтυя α#" " ¢σηѕє¢тєтυя α#"
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_published.html
#, python-format #, python-format
msgid "" msgid ""
"The list below contains all course runs published in the past " "The list below contains all course runs published in the past "
...@@ -1765,28 +1798,23 @@ msgstr "" ...@@ -1765,28 +1798,23 @@ msgstr ""
"Thé lïst ßélöw çöntäïns äll çöürsé rüns püßlïshéd ïn thé päst " "Thé lïst ßélöw çöntäïns äll çöürsé rüns püßlïshéd ïn thé päst "
"%(default_published_days)s däýs. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя#" "%(default_published_days)s däýs. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя#"
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_published.html
#: templates/publisher/dashboard/studio_requests.html
msgid "Institution"
msgstr "Ìnstïtütïön Ⱡ'σяєм ιρѕυм ∂σłσя #"
#: templates/publisher/dashboard/published.html
msgid "Start" msgid "Start"
msgstr "Stärt Ⱡ'σяєм ιρѕ#" msgstr "Stärt Ⱡ'σяєм ιρѕ#"
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_published.html
msgid "End" msgid "End"
msgstr "Énd Ⱡ'σяєм#" msgstr "Énd Ⱡ'σяєм#"
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_published.html
msgid "Published Date" msgid "Published Date"
msgstr "Püßlïshéd Däté Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" msgstr "Püßlïshéd Däté Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#"
#: templates/publisher/dashboard/published.html #: templates/publisher/dashboard/_published.html
msgid "Target Content" msgid "Target Content"
msgstr "Tärgét Çöntént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#" msgstr "Tärgét Çöntént Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#"
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "" msgid ""
"The list below are the courses that need a studio instance to start " "The list below are the courses that need a studio instance to start "
"development." "development."
...@@ -1794,15 +1822,15 @@ msgstr "" ...@@ -1794,15 +1822,15 @@ msgstr ""
"Thé lïst ßélöw äré thé çöürsés thät nééd ä stüdïö ïnstänçé tö stärt " "Thé lïst ßélöw äré thé çöürsés thät nééd ä stüdïö ïnstänçé tö stärt "
"dévélöpmént. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#" "dévélöpmént. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тє#"
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "Studio Course Run Key" msgid "Studio Course Run Key"
msgstr "Stüdïö Çöürsé Rün Kéý Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #" msgstr "Stüdïö Çöürsé Rün Kéý Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, #"
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "Add" msgid "Add"
msgstr "Àdd Ⱡ'σяєм#" msgstr "Àdd Ⱡ'σяєм#"
#: templates/publisher/dashboard/studio_requests.html #: templates/publisher/dashboard/_studio_requests.html
msgid "There are no course-runs require studio instance." msgid "There are no course-runs require studio instance."
msgstr "" msgstr ""
"Théré äré nö çöürsé-rüns réqüïré stüdïö ïnstänçé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт " "Théré äré nö çöürsé-rüns réqüïré stüdïö ïnstänçé. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт "
......
...@@ -7,7 +7,7 @@ msgid "" ...@@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-11-15 13:47+0500\n" "POT-Creation-Date: 2016-11-17 23:20+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
......
$(document).ready(function() { $(document).ready(function() {
var data_table_studio = $('.data-table-studio').addClass('nowrap').DataTable({ var data_table_studio = $('.data-table-studio').DataTable({
"autoWidth": false "autoWidth": false
}); });
...@@ -46,7 +46,11 @@ $(document).ready(function() { ...@@ -46,7 +46,11 @@ $(document).ready(function() {
}); });
}); });
$('.data-table-published').addClass('nowrap').DataTable({ $('.data-table-published').DataTable({
"autoWidth": false "autoWidth": false
}); });
$('.data-table-preview').DataTable({
"autoWidth": false
});
}); });
...@@ -7,12 +7,12 @@ ...@@ -7,12 +7,12 @@
{% endblock title %} {% endblock title %}
{% block content %} {% block content %}
{% with studio_count=studio_request_courses|length published_count=published_course_runs|length %} {% with studio_count=studio_request_courses|length published_count=published_course_runs|length preview_count=preview_course_runs|length %}
<div class="publisher-container"> <div class="publisher-container">
<h2 class="hd-2 emphasized">{% trans "Course runs" %}</h2> <h2 class="hd-2 emphasized">{% trans "Course runs" %}</h2>
<ul role="tablist" class="tabs"> <ul role="tablist" class="tabs">
<li role="tab" id="tab-progress" class="tab" aria-selected="true" aria-expanded="false" aria-controls="progress" tabindex="0"><span>0</span>{% trans "IN PROGRESS" %}</li> <li role="tab" id="tab-progress" class="tab" aria-selected="true" aria-expanded="false" aria-controls="progress" tabindex="0"><span>0</span>{% trans "IN PROGRESS" %}</li>
<li role="tab" id="tab-preview" class="tab" aria-selected="false" aria-expanded="false" aria-controls="preview" tabindex="-1"><span>0</span>{% trans "PREVIEW READY" %}</li> <li role="tab" id="tab-preview" class="tab" aria-selected="false" aria-expanded="false" aria-controls="preview" tabindex="-1"><span>{{ preview_count }}</span>{% trans "PREVIEW READY" %}</li>
<li role="tab" id="tab-studio" class="tab" aria-selected="false" aria-expanded="true" aria-controls="studio" tabindex="-1" data-studio-count="{{ studio_count }}"><span>{{ studio_count }}</span>{% trans "STUDIO REQUEST" %}</li> <li role="tab" id="tab-studio" class="tab" aria-selected="false" aria-expanded="true" aria-controls="studio" tabindex="-1" data-studio-count="{{ studio_count }}"><span>{{ studio_count }}</span>{% trans "STUDIO REQUEST" %}</li>
<li role="tab" id="tab-published" class="tab" aria-selected="false" aria-expanded="false" aria-controls="published" tabindex="-1"><span>{{ published_count }}</span>{% trans "PUBLISHED COURSE RUNS" %}</li> <li role="tab" id="tab-published" class="tab" aria-selected="false" aria-expanded="false" aria-controls="published" tabindex="-1"><span>{{ published_count }}</span>{% trans "PUBLISHED COURSE RUNS" %}</li>
</ul> </ul>
...@@ -23,15 +23,15 @@ ...@@ -23,15 +23,15 @@
</div> </div>
<div role="tabpanel" id="preview" class="tab-panel" aria-labelledby="tab-preview" aria-hidden="true" tabindex="-1"> <div role="tabpanel" id="preview" class="tab-panel" aria-labelledby="tab-preview" aria-hidden="true" tabindex="-1">
<h2>{% trans "PREVIEW READY" %}</h2> {% include "publisher/dashboard/_preview_ready.html" %}
<p></p> <p></p>
</div> </div>
<div role="tabpanel" id="studio" class="tab-panel" aria-labelledby="tab-studio" aria-hidden="false" tabindex="0"> <div role="tabpanel" id="studio" class="tab-panel" aria-labelledby="tab-studio" aria-hidden="false" tabindex="0">
{% include "publisher/dashboard/studio_requests.html" %} {% include "publisher/dashboard/_studio_requests.html" %}
</div> </div>
<div role="tabpanel" id="published" class="tab-panel" aria-labelledby="tab-published" aria-hidden="false" tabindex="0"> <div role="tabpanel" id="published" class="tab-panel" aria-labelledby="tab-published" aria-hidden="false" tabindex="0">
{% include "publisher/dashboard/published.html" %} {% include "publisher/dashboard/_published.html" %}
</div> </div>
</div> </div>
......
{% load i18n %}
{% if preview_count == 0 %}
<div class="depth depth-0">
<p class="empty-courserun-text">{% trans "There are no course runs marked for preview." %}</p>
</div>
{% else %}
<p>{% trans "The list below contains all course runs awaiting course team approval. Once approved, the marketing team will push the course run. you will be notified via email when the course runs are live on the production site." %}</p>
<div class="table-view">
<table class="data-table-preview display nowrap" cellspacing="0" width="100%">
<thead>
<tr>
<th role="button">
{% trans "Course Name" %}
</th>
<th role="button">
{% trans "Organization" %}
</th>
<th role="button">
{% trans "Approved" %}
</th>
<th role="button">
{% trans "Preview URL" %}
</th>
</tr>
</thead>
<tbody>
{% for course_run in preview_course_runs %}
<tr>
<td id="course-title-{{ course_run.title }}">
<a href="{% url 'publisher:publisher_course_run_detail' course_run.id %}">{{ course_run.title }}</a>
</td>
<td>{{ course_run.course.group_institution }}</td>
<td>
{{ course_run.state }}
</td>
<td>
<a target="_blank" href="{{ course_run.preview_url }}">{{ course_run.preview_url }}</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
The list below contains all course runs published in the past {{ default_published_days }} days. The list below contains all course runs published in the past {{ default_published_days }} days.
{% endblocktrans %} {% endblocktrans %}
</p> </p>
<table class="data-table-published display" cellspacing="0" width="100%"> <table class="data-table-published display nowrap" cellspacing="0" width="100%">
<thead> <thead>
<tr> <tr>
<th role="button"> <th role="button">
{% trans "Course Name" %} {% trans "Course Name" %}
</th> </th>
<th role="button"> <th role="button">
{% trans "Institution" %} {% trans "Organization" %}
</th> </th>
<th role="button"> <th role="button">
{% trans "Start" %} {% trans "Start" %}
......
...@@ -6,14 +6,14 @@ ...@@ -6,14 +6,14 @@
<p class="copy-meta"></p> <p class="copy-meta"></p>
</div> </div>
<div class="table-view"> <div class="table-view">
<table class="data-table-studio display" cellspacing="0" width="100%"> <table class="data-table-studio display nowrap" cellspacing="0" width="100%">
<thead> <thead>
<tr> <tr>
<th role="button"> <th role="button">
{% trans "Course Name" %} {% trans "Course Name" %}
</th> </th>
<th role="button"> <th role="button">
{% trans "Institution" %} {% trans "Organization" %}
</th> </th>
<th role="button"> <th role="button">
{% trans "Start Date" %} {% trans "Start Date" %}
......
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