Commit b53055ee by tasawernawaz Committed by Tasawer Nawaz

dashboard tabs visible to course team

ECOM-7418
parent 89f04618
...@@ -1186,7 +1186,7 @@ class DashboardTests(TestCase): ...@@ -1186,7 +1186,7 @@ class DashboardTests(TestCase):
self.client.logout() self.client.logout()
self.client.login(username=UserFactory(), password=USER_PASSWORD) self.client.login(username=UserFactory(), password=USER_PASSWORD)
response = self.assert_dashboard_response(studio_count=0, published_count=0, progress_count=0, preview_count=0) response = self.assert_dashboard_response(studio_count=0, published_count=0, progress_count=0, preview_count=0)
self._assert_tabs_without_roles(response) self._assert_tabs_with_roles(response)
@ddt.data('progress', 'preview', 'studio', 'published') @ddt.data('progress', 'preview', 'studio', 'published')
def test_with_internal_group(self, tab): def test_with_internal_group(self, tab):
...@@ -1205,7 +1205,7 @@ class DashboardTests(TestCase): ...@@ -1205,7 +1205,7 @@ class DashboardTests(TestCase):
self.course_run_1.course.organizations.add(self.organization_extension.organization) self.course_run_1.course.organizations.add(self.organization_extension.organization)
response = self.assert_dashboard_response(studio_count=0, published_count=0, progress_count=0, preview_count=0) response = self.assert_dashboard_response(studio_count=0, published_count=0, progress_count=0, preview_count=0)
self._assert_tabs_without_roles(response) self._assert_tabs_with_roles(response)
def test_with_permissions_with_data(self): def test_with_permissions_with_data(self):
""" Verify that user with assigned permission on course can see all tabs """ Verify that user with assigned permission on course can see all tabs
...@@ -1228,7 +1228,7 @@ class DashboardTests(TestCase): ...@@ -1228,7 +1228,7 @@ class DashboardTests(TestCase):
) )
response = self.assert_dashboard_response(studio_count=0, published_count=0, progress_count=2, preview_count=1) response = self.assert_dashboard_response(studio_count=0, published_count=0, progress_count=2, preview_count=1)
self._assert_tabs_without_roles(response) self._assert_tabs_with_roles(response)
def test_studio_request_course_runs_as_pc(self): def test_studio_request_course_runs_as_pc(self):
""" Verify that PC user can see only those courses on which he is assigned as PC role. """ """ Verify that PC user can see only those courses on which he is assigned as PC role. """
...@@ -1338,16 +1338,19 @@ class DashboardTests(TestCase): ...@@ -1338,16 +1338,19 @@ class DashboardTests(TestCase):
return response return response
def _assert_tabs_without_roles(self, response):
""" Dry method to assert the tabs data."""
self.assertContains(response, '<li role="tab" id="tab-progress" class="tab"')
for tab in ['preview', 'studio', 'published']:
self.assertNotIn(
'<li role="tab" id="tab-{tab}" class="tab"'.format(tab=tab), response.content.decode('UTF-8')
)
def _assert_tabs_with_roles(self, response): def _assert_tabs_with_roles(self, response):
""" Dry method to assert the tabs data.""" """ Dry method to assert the tabs data."""
for tab in ['progress', 'preview', 'published']:
self.assertContains(response, '<li role="tab" id="tab-{tab}" class="tab"'.format(tab=tab))
def test_tabs_with_pc(self):
"""Verify that only pc use can see studio request tab on dashboard."""
pc_user = UserFactory()
pc_user.groups.add(Group.objects.get(name=PROJECT_COORDINATOR_GROUP_NAME))
self.client.logout()
self.client.login(username=pc_user.username, password=USER_PASSWORD)
response = self.client.get(self.page_url)
for tab in ['progress', 'preview', 'studio', 'published']: for tab in ['progress', 'preview', 'studio', 'published']:
self.assertContains(response, '<li role="tab" id="tab-{tab}" class="tab"'.format(tab=tab)) self.assertContains(response, '<li role="tab" id="tab-{tab}" class="tab"'.format(tab=tab))
......
...@@ -106,9 +106,8 @@ class Dashboard(mixins.LoginRequiredMixin, ListView): ...@@ -106,9 +106,8 @@ class Dashboard(mixins.LoginRequiredMixin, ListView):
context['in_progress_course_runs'] = [CourseRunWrapper(course_run) for course_run in in_progress_course_runs] context['in_progress_course_runs'] = [CourseRunWrapper(course_run) for course_run in in_progress_course_runs]
context['preview_course_runs'] = [CourseRunWrapper(course_run) for course_run in preview_course_runs] context['preview_course_runs'] = [CourseRunWrapper(course_run) for course_run in preview_course_runs]
# If user is course team member only show in-progress tab. # shows 'studio request' tab only to project coordinators
# shows all tabs to internal-users and publisher admins context['is_project_coordinator'] = is_project_coordinator_user(self.request.user)
context['can_view_all_tabs'] = mixins.check_roles_access(self.request.user)
return context return context
......
...@@ -7,14 +7,14 @@ msgid "" ...@@ -7,14 +7,14 @@ 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: 2017-03-13 14:43+0500\n" "POT-Creation-Date: 2017-03-14 12:15+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"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
#: apps/api/filters.py #: apps/api/filters.py
#, python-brace-format #, python-brace-format
...@@ -2333,7 +2333,7 @@ msgid "Course runs" ...@@ -2333,7 +2333,7 @@ msgid "Course runs"
msgstr "" msgstr ""
#: templates/publisher/dashboard.html #: templates/publisher/dashboard.html
msgid "IN PROGRESS" msgid "IN DEVELOPMENT"
msgstr "" msgstr ""
#: templates/publisher/dashboard.html #: templates/publisher/dashboard.html
......
...@@ -7,14 +7,14 @@ msgid "" ...@@ -7,14 +7,14 @@ 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: 2017-03-13 14:43+0500\n" "POT-Creation-Date: 2017-03-14 12:15+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"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
#: static/js/catalogs-change-form.js #: static/js/catalogs-change-form.js
msgid "Preview" msgid "Preview"
......
...@@ -7,14 +7,14 @@ msgid "" ...@@ -7,14 +7,14 @@ 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: 2017-03-13 14:43+0500\n" "POT-Creation-Date: 2017-03-14 12:15+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"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps/api/filters.py #: apps/api/filters.py
...@@ -2740,8 +2740,8 @@ msgid "Course runs" ...@@ -2740,8 +2740,8 @@ msgid "Course runs"
msgstr "Çöürsé rüns Ⱡ'σяєм ιρѕυм ∂σłσя #" msgstr "Çöürsé rüns Ⱡ'σяєм ιρѕυм ∂σłσя #"
#: templates/publisher/dashboard.html #: templates/publisher/dashboard.html
msgid "IN PROGRESS" msgid "IN DEVELOPMENT"
msgstr "ÌN PRÖGRÉSS Ⱡ'σяєм ιρѕυм ∂σłσя #" msgstr "ÌN DÉVÉLÖPMÉNT Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт#"
#: templates/publisher/dashboard.html #: templates/publisher/dashboard.html
msgid "PREVIEW READY" msgid "PREVIEW READY"
......
...@@ -7,14 +7,14 @@ msgid "" ...@@ -7,14 +7,14 @@ 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: 2017-03-13 14:43+0500\n" "POT-Creation-Date: 2017-03-14 12:15+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"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/js/catalogs-change-form.js #: static/js/catalogs-change-form.js
......
...@@ -13,22 +13,23 @@ ...@@ -13,22 +13,23 @@
<ul role="tablist" class="tabs"> <ul role="tablist" class="tabs">
<li role="tab" id="tab-progress" class="tab" aria-selected="true" aria-expanded="false" <li role="tab" id="tab-progress" class="tab" aria-selected="true" aria-expanded="false"
aria-controls="progress" tabindex="0"> aria-controls="progress" tabindex="0">
<span>{{ in_progress_count }}</span>{% trans "IN PROGRESS" %} <span>{{ in_progress_count }}</span>{% trans "IN DEVELOPMENT" %}
</li> </li>
{% if can_view_all_tabs %} <li role="tab" id="tab-preview" class="tab" aria-selected="false" aria-expanded="false"
<li role="tab" id="tab-preview" class="tab" aria-selected="false" aria-expanded="false" aria-controls="preview" tabindex="-1">
aria-controls="preview" tabindex="-1"> <span>{{ preview_count }}</span>{% trans "PREVIEW READY" %}
<span>{{ preview_count }}</span>{% trans "PREVIEW READY" %} </li>
</li> {% if is_project_coordinator %}
<li role="tab" id="tab-studio" class="tab" aria-selected="false" aria-expanded="true" <li role="tab" id="tab-studio" class="tab" aria-selected="false" aria-expanded="true"
aria-controls="studio" tabindex="-1" data-studio-count="{{ studio_count }}"> aria-controls="studio" tabindex="-1" data-studio-count="{{ studio_count }}">
<span id="studio-count">{{ studio_count }}</span>{% trans "STUDIO REQUEST" %} <span id="studio-count">{{ studio_count }}</span>{% trans "STUDIO REQUEST" %}
</li> </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>
{% endif %} {% endif %}
<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>
<div role="tabpanel" id="progress" class="tab-panel" aria-labelledby="tab-progress" aria-hidden="false" tabindex="-1"> <div role="tabpanel" id="progress" class="tab-panel" aria-labelledby="tab-progress" aria-hidden="false" tabindex="-1">
...@@ -40,9 +41,12 @@ ...@@ -40,9 +41,12 @@
<p></p> <p></p>
</div> </div>
<div role="tabpanel" id="studio" class="tab-panel" aria-labelledby="tab-studio" aria-hidden="false" tabindex="0"> {% if is_project_coordinator %}
{% include "publisher/dashboard/_studio_requests.html" %} <div role="tabpanel" id="studio" class="tab-panel" aria-labelledby="tab-studio" aria-hidden="false" tabindex="0">
</div> {% include "publisher/dashboard/_studio_requests.html" %}
</div>
{% endif %}
<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>
......
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