diff --git a/mediathread/assetmgr/models.py b/mediathread/assetmgr/models.py index 506bab741a..7945d7cf0b 100755 --- a/mediathread/assetmgr/models.py +++ b/mediathread/assetmgr/models.py @@ -10,7 +10,7 @@ from django.core.cache import cache from django.urls import reverse from django.db import models -from django.utils.encoding import smart_text +from django.utils.encoding import smart_str from tagging.models import Tag from mediathread.assetmgr.custom_storage import private_storage @@ -378,7 +378,7 @@ class Source(models.Model): auto_now=True) def __str__(self): - return '[%s] %s' % (self.label, smart_text(self.asset)) + return '[%s] %s' % (self.label, smart_str(self.asset)) def is_image(self): return (self.label == 'poster' or diff --git a/mediathread/assetmgr/tests/test_models.py b/mediathread/assetmgr/tests/test_models.py index 0c9c832853..276afe553b 100644 --- a/mediathread/assetmgr/tests/test_models.py +++ b/mediathread/assetmgr/tests/test_models.py @@ -3,7 +3,7 @@ from django.core.cache import cache from django.test import TestCase -from django.utils.encoding import smart_text +from django.utils.encoding import smart_str from mediathread.assetmgr.models import Asset, Source, METADATA_ORIGINAL_OWNER from mediathread.djangosherd.models import SherdNote @@ -57,7 +57,7 @@ def test_unicode(self): primary_source='image', author=self.instructor_one, title="Item Title") - self.assertEqual(smart_text(asset1), + self.assertEqual(smart_str(asset1), 'Item Title <%s> (Sample Course)' % asset1.id) def test_get_by_args(self): @@ -357,17 +357,17 @@ def test_assets_by_course_and_user(self): self.assertEqual(assets.count(), 0) def test_source_unicode(self): - desc = smart_text(self.asset1.primary) + desc = smart_str(self.asset1.primary) self.assertTrue('[image]' in desc) self.assertTrue('Sample Course' in desc) def test_external_collection_unicode(self): collection = ExternalCollectionFactory() - self.assertEqual(smart_text(collection), 'collection') + self.assertEqual(smart_str(collection), 'collection') def test_suggested_external_collection_unicode(self): collection = SuggestedExternalCollectionFactory() - self.assertEqual(smart_text(collection), 'collection') + self.assertEqual(smart_str(collection), 'collection') def test_html_source(self): with self.assertRaises(Source.DoesNotExist): diff --git a/mediathread/discussions/views.py b/mediathread/discussions/views.py index 8985689bce..91f5481bf3 100644 --- a/mediathread/discussions/views.py +++ b/mediathread/discussions/views.py @@ -6,7 +6,7 @@ from django.shortcuts import get_object_or_404, render from django.urls import reverse from django.utils.decorators import method_decorator -from django.utils.encoding import smart_text +from django.utils.encoding import smart_bytes from django.utils import timezone from django.views.decorators.csrf import ensure_csrf_cookie from django.views.decorators.http import require_POST @@ -313,7 +313,8 @@ def threaded_comment_json(request, comment): return { 'type': 'discussion', - 'form': smart_text(django_comments.get_form()(comment.content_object)), + 'form': smart_bytes( + django_comments.get_form()(comment.content_object)), 'editing': True, 'can_edit': True, 'discussion': { diff --git a/mediathread/djangosherd/models.py b/mediathread/djangosherd/models.py index 81fbb5a033..c8a72674ec 100755 --- a/mediathread/djangosherd/models.py +++ b/mediathread/djangosherd/models.py @@ -11,7 +11,7 @@ from django.urls import reverse from django.db import models from django.db.models.query_utils import Q -from django.utils.encoding import smart_text +from django.utils.encoding import smart_str from django_comments.models import Comment from tagging.fields import TagField from tagging.models import Tag, TaggedItem @@ -444,7 +444,7 @@ class DiscussionIndex(models.Model): modified = models.DateTimeField(auto_now=True) # update on save def __str__(self): - return smart_text(self.body) + return smart_str(self.body) @property def body(self): diff --git a/mediathread/main/clumper.py b/mediathread/main/clumper.py index 73f55bbf3c..c799f70194 100644 --- a/mediathread/main/clumper.py +++ b/mediathread/main/clumper.py @@ -1,6 +1,6 @@ from functools import total_ordering, cmp_to_key -from django.utils.encoding import smart_text +from django.utils.encoding import smart_str from django_comments.models import Comment from mediathread.assetmgr.models import Asset from mediathread.djangosherd.models import SherdNote, DiscussionIndex @@ -60,7 +60,7 @@ def __lt__(self, other): return self.order_by(self.things[0], other.things[0]) < 0 def __str__(self): - return smart_text(self.things[0]) + return smart_str(self.things[0]) def append(self, obj): if len(self.things) < 4: diff --git a/mediathread/main/tests/test_models.py b/mediathread/main/tests/test_models.py index d13a3572a3..5f47768617 100644 --- a/mediathread/main/tests/test_models.py +++ b/mediathread/main/tests/test_models.py @@ -2,7 +2,7 @@ from django.test.client import RequestFactory from django.test.testcases import TestCase -from django.utils.encoding import smart_text +from django.utils.encoding import smart_str from mediathread.factories import ( MediathreadTestMixin, UserFactory, UserProfileFactory, CourseFactory, @@ -43,7 +43,7 @@ class UserProfileTest(TestCase): def test_unicode(self): user = UserFactory(username='johndoe') profile = UserProfileFactory(user=user) - self.assertEquals(smart_text(profile), 'johndoe') + self.assertEqual(smart_str(profile), 'johndoe') class UserRegistrationTest(TestCase): diff --git a/mediathread/main/tests/test_views.py b/mediathread/main/tests/test_views.py index d9edd7027b..16400bfa32 100644 --- a/mediathread/main/tests/test_views.py +++ b/mediathread/main/tests/test_views.py @@ -21,7 +21,7 @@ from django.http.response import Http404 from django.test import TestCase, override_settings from django.test.client import RequestFactory -from django.utils.encoding import smart_text +from django.utils.encoding import smart_str from django.utils.html import escape from django.utils.text import slugify import factory @@ -62,7 +62,7 @@ class SimpleViewTest(TestCase): def test_index(self): # Mediathread splash page should appear response = self.client.get('/') - self.assertEquals(response.status_code, 200) + self.assertEqual(response.status_code, 200) def test_500(self): with self.assertRaises(Exception): @@ -124,12 +124,12 @@ def test_as_student(self): password='test')) response = self.client.get( reverse('dashboard-migrate', args=[self.sample_course.pk])) - self.assertEquals(response.status_code, 403) + self.assertEqual(response.status_code, 403) def test_not_logged_in(self): response = self.client.get( reverse('dashboard-migrate', args=[self.sample_course.pk])) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) def test_get_context_data(self): request = RequestFactory().get( @@ -142,27 +142,27 @@ def test_get_context_data(self): ctx = view.get_context_data() - self.assertEquals(len(ctx['current_course_faculty']), 3) - self.assertEquals(ctx['current_course_faculty'][0].username, - 'instructor_one') - self.assertEquals(ctx['current_course_faculty'][1].username, - 'instructor_three') - self.assertEquals(ctx['current_course_faculty'][2].username, - 'instructor_two') + self.assertEqual(len(ctx['current_course_faculty']), 3) + self.assertEqual(ctx['current_course_faculty'][0].username, + 'instructor_one') + self.assertEqual(ctx['current_course_faculty'][1].username, + 'instructor_three') + self.assertEqual(ctx['current_course_faculty'][2].username, + 'instructor_two') - self.assertEquals(len(ctx['available_courses']), 2) - self.assertEquals(ctx['available_courses'][0].title, - 'Alternate Course') - self.assertEquals(ctx['available_courses'][1].title, - 'Sample Course') + self.assertEqual(len(ctx['available_courses']), 2) + self.assertEqual(ctx['available_courses'][0].title, + 'Alternate Course') + self.assertEqual(ctx['available_courses'][1].title, + 'Sample Course') request.user = self.superuser ctx = view.get_context_data() - self.assertEquals(len(ctx['available_courses']), 2) - self.assertEquals(ctx['available_courses'][0].title, - 'Alternate Course') - self.assertEquals(ctx['available_courses'][1].title, - 'Sample Course') + self.assertEqual(len(ctx['available_courses']), 2) + self.assertEqual(ctx['available_courses'][0].title, + 'Alternate Course') + self.assertEqual(ctx['available_courses'][1].title, + 'Sample Course') def test_post_invalidcourse(self): data = {'fromCourse': 42} @@ -235,23 +235,23 @@ def test_migrate_asset(self): the_json = json.loads(response.content) self.assertTrue(the_json['success']) - self.assertEquals(the_json['asset_count'], 1) - self.assertEquals(the_json['project_count'], 0) - self.assertEquals(the_json['note_count'], 3) + self.assertEqual(the_json['asset_count'], 1) + self.assertEqual(the_json['project_count'], 0) + self.assertEqual(the_json['note_count'], 3) new_asset = Asset.objects.get(course=self.alt_course, title=self.asset1.title) - self.assertEquals(new_asset.sherdnote_set.count(), 2) + self.assertEqual(new_asset.sherdnote_set.count(), 2) # verify there is a global annotation for instructor three ga = new_asset.global_annotation(self.instructor_three, False) self.assertIsNone(ga.title) - self.assertEquals(ga.tags, '') + self.assertEqual(ga.tags, '') self.assertIsNone(ga.body) # verify there is a selection annotation for instructor three note = new_asset.sherdnote_set.get(title=self.instructor_note.title) - self.assertEquals(note.tags, '') + self.assertEqual(note.tags, '') self.assertIsNone(note.body) self.assertFalse(note.is_global_annotation) @@ -278,14 +278,14 @@ def test_migrate_with_tags(self): new_asset = Asset.objects.get(course=self.alt_course, title=self.asset1.title) - self.assertEquals(new_asset.sherdnote_set.count(), 2) + self.assertEqual(new_asset.sherdnote_set.count(), 2) note = new_asset.sherdnote_set.get(title=self.instructor_note.title) - self.assertEquals(note.tags, self.instructor_note.tags) + self.assertEqual(note.tags, self.instructor_note.tags) self.assertIsNone(note.body) note = new_asset.global_annotation(self.instructor_three, False) - self.assertEquals( + self.assertEqual( note.tags, ',image, instructor_one_global,,instructor_two_global,') self.assertIsNone(note.body) @@ -313,15 +313,15 @@ def test_migrate_with_notes(self): new_asset = Asset.objects.get(course=self.alt_course, title=self.asset1.title) - self.assertEquals(new_asset.sherdnote_set.count(), 2) + self.assertEqual(new_asset.sherdnote_set.count(), 2) note = new_asset.sherdnote_set.get(title=self.instructor_note.title) - self.assertEquals(note.tags, '') - self.assertEquals(note.body, self.instructor_note.body) + self.assertEqual(note.tags, '') + self.assertEqual(note.body, self.instructor_note.body) note = new_asset.global_annotation(self.instructor_three, False) - self.assertEquals(note.tags, '') - self.assertEquals( + self.assertEqual(note.tags, '') + self.assertEqual( note.body, 'instructor one global noteinstructor two global note') @@ -348,17 +348,17 @@ def test_migrate_tags_and_notes(self): new_asset = Asset.objects.get(course=self.alt_course, title=self.asset1.title) - self.assertEquals(new_asset.sherdnote_set.count(), 2) + self.assertEqual(new_asset.sherdnote_set.count(), 2) note = new_asset.sherdnote_set.get(title=self.instructor_note.title) - self.assertEquals(note.tags, self.instructor_note.tags) - self.assertEquals(note.body, self.instructor_note.body) + self.assertEqual(note.tags, self.instructor_note.tags) + self.assertEqual(note.body, self.instructor_note.body) note = new_asset.global_annotation(self.instructor_three, False) - self.assertEquals( + self.assertEqual( note.tags, ',image, instructor_one_global,,instructor_two_global,') - self.assertEquals( + self.assertEqual( note.body, 'instructor one global noteinstructor two global note') @@ -369,7 +369,7 @@ def test_migrate_project(self): self.add_citation(self.project1, self.instructor_note) self.add_citation(self.project1, self.student_note) - self.assertEquals(len(self.project1.citations()), 2) + self.assertEqual(len(self.project1.citations()), 2) data = { 'fromCourse': self.sample_course.id, @@ -391,28 +391,28 @@ def test_migrate_project(self): the_json = json.loads(response.content) self.assertTrue(the_json['success']) - self.assertEquals(the_json['asset_count'], 1) - self.assertEquals(the_json['project_count'], 1) - self.assertEquals(the_json['note_count'], 2) + self.assertEqual(the_json['asset_count'], 1) + self.assertEqual(the_json['project_count'], 1) + self.assertEqual(the_json['note_count'], 2) new_asset = Asset.objects.get(course=self.alt_course, title=self.asset1.title) - self.assertEquals(new_asset.sherdnote_set.count(), 3) + self.assertEqual(new_asset.sherdnote_set.count(), 3) new_note = new_asset.sherdnote_set.get(title=self.student_note.title) - self.assertEquals(new_note.author, self.instructor_three) + self.assertEqual(new_note.author, self.instructor_three) new_note = new_asset.sherdnote_set.get( title=self.instructor_note.title) - self.assertEquals(new_note.author, self.instructor_three) + self.assertEqual(new_note.author, self.instructor_three) new_note = new_asset.sherdnote_set.get(title=None) - self.assertEquals(new_note.author, self.instructor_three) + self.assertEqual(new_note.author, self.instructor_three) self.assertTrue(new_note.is_global_annotation) new_project = Project.objects.get( course=self.alt_course, title=self.project1.title) - self.assertEquals(len(new_project.citations()), 2) + self.assertEqual(len(new_project.citations()), 2) def test_migrate_materials_view_student(self): self.assertTrue(self.client.login(username=self.student_one.username, @@ -421,7 +421,7 @@ def test_migrate_materials_view_student(self): response = self.client.get('/dashboard/migrate/materials/%s/' % self.sample_course.id, {}, HTTP_X_REQUESTED_WITH='XMLHttpRequest') - self.assertEquals(response.status_code, 403) + self.assertEqual(response.status_code, 403) def test_migrate_materials_sample_course(self): flv = AssetFactory.create(course=self.sample_course, @@ -443,25 +443,25 @@ def test_migrate_materials_sample_course(self): set_course_url = '/?set_course=%s&next=/' % \ self.sample_course.group.name response = self.client.get(set_course_url, follow=True) - self.assertEquals(response.status_code, 200) + self.assertEqual(response.status_code, 200) url = '/dashboard/migrate/materials/%s/' % self.sample_course.id response = self.client.get(url, {}, HTTP_X_REQUESTED_WITH='XMLHttpRequest') - self.assertEquals(response.status_code, 200) + self.assertEqual(response.status_code, 200) the_json = json.loads(response.content) - self.assertEquals(the_json['course']['title'], 'Sample Course') - self.assertEquals(len(the_json['assets']), 1) + self.assertEqual(the_json['course']['title'], 'Sample Course') + self.assertEqual(len(the_json['assets']), 1) - self.assertEquals(the_json['assets'][0]['title'], - self.asset1.title) - self.assertEquals(the_json['assets'][0]['annotation_count'], 1) + self.assertEqual(the_json['assets'][0]['title'], + self.asset1.title) + self.assertEqual(the_json['assets'][0]['annotation_count'], 1) - self.assertEquals(len(the_json['projects']), 1) - self.assertEquals(the_json['projects'][0]['title'], - self.project2.title) + self.assertEqual(len(the_json['projects']), 1) + self.assertEqual(the_json['projects'][0]['title'], + self.project2.title) def test_migrate_materials_alternate_course(self): self.assertTrue(self.client.login( @@ -470,18 +470,18 @@ def test_migrate_materials_alternate_course(self): set_course_url = '/?set_course=%s&next=/' % \ self.alt_course.group.name response = self.client.get(set_course_url, follow=True) - self.assertEquals(response.status_code, 200) + self.assertEqual(response.status_code, 200) url = '/dashboard/migrate/materials/%s/' % self.alt_course.id response = self.client.get(url, {}, HTTP_X_REQUESTED_WITH='XMLHttpRequest') - self.assertEquals(response.status_code, 200) + self.assertEqual(response.status_code, 200) the_json = json.loads(response.content) - self.assertEquals(the_json['course']['title'], 'Alternate Course') - self.assertEquals(len(the_json['assets']), 0) - self.assertEquals(len(the_json['projects']), 0) + self.assertEqual(the_json['course']['title'], 'Alternate Course') + self.assertEqual(len(the_json['assets']), 0) + self.assertEqual(len(the_json['projects']), 0) class ContactUsViewTest(TestCase): @@ -508,9 +508,9 @@ def test_get_initial_not_anonymous(self): initial = view.get_initial() self.assertIsNotNone(initial['issue_date']) - self.assertEquals(initial['name'], 'Foo Bar') - self.assertEquals(initial['email'], 'foo@bar.com') - self.assertEquals(initial['username'], view.request.user.username) + self.assertEqual(initial['name'], 'Foo Bar') + self.assertEqual(initial['email'], 'foo@bar.com') + self.assertEqual(initial['username'], view.request.user.username) # a subsequent call using an anonymous session returns a clean initial view.request.session = {} @@ -540,17 +540,17 @@ def test_form_valid(self): self.assertEqual(mail.outbox[0].subject, 'Mediathread Support Request') - self.assertEquals(mail.outbox[0].from_email, - settings.SERVER_EMAIL) - self.assertEquals(mail.outbox[0].to, - [settings.CONTACT_US_EMAIL]) + self.assertEqual(mail.outbox[0].from_email, + settings.SERVER_EMAIL) + self.assertEqual(mail.outbox[0].to, + [settings.CONTACT_US_EMAIL]) self.assertEqual(mail.outbox[1].subject, 'Mediathread Contact Us Request') - self.assertEquals(mail.outbox[1].from_email, - settings.SERVER_EMAIL) - self.assertEquals(mail.outbox[1].to, - ['sender@ccnmtl.columbia.edu']) + self.assertEqual(mail.outbox[1].from_email, + settings.SERVER_EMAIL) + self.assertEqual(mail.outbox[1].to, + ['sender@ccnmtl.columbia.edu']) def test_form_valid_with_support_destination(self): view = ContactUsView() @@ -571,17 +571,17 @@ def test_form_valid_with_support_destination(self): self.assertEqual(mail.outbox[0].subject, 'Mediathread Support Request') - self.assertEquals(mail.outbox[0].from_email, - settings.SERVER_EMAIL) - self.assertEquals(mail.outbox[0].to, - [settings.CONTACT_US_EMAIL]) + self.assertEqual(mail.outbox[0].from_email, + settings.SERVER_EMAIL) + self.assertEqual(mail.outbox[0].to, + [settings.CONTACT_US_EMAIL]) self.assertEqual(mail.outbox[1].subject, 'Mediathread Contact Us Request') - self.assertEquals(mail.outbox[1].from_email, - settings.SERVER_EMAIL) - self.assertEquals(mail.outbox[1].to, - [settings.SUPPORT_DESTINATION]) + self.assertEqual(mail.outbox[1].from_email, + settings.SERVER_EMAIL) + self.assertEqual(mail.outbox[1].to, + [settings.SUPPORT_DESTINATION]) class CourseManageSourcesViewTest(MediathreadTestMixin, TestCase): @@ -594,7 +594,7 @@ def setUp(self): def test_not_logged_in(self): response = self.client.get( reverse('course-manage-sources', args=[self.sample_course.pk])) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) def test_as_student(self): self.assertTrue( @@ -602,7 +602,7 @@ def test_as_student(self): password='test')) response = self.client.get( reverse('course-manage-sources', args=[self.sample_course.pk])) - self.assertEquals(response.status_code, 403) + self.assertEqual(response.status_code, 403) def test_get_context(self): request = RequestFactory().get( @@ -614,9 +614,9 @@ def test_get_context(self): view.request = request ctx = view.get_context_data() - self.assertEquals(ctx['course'], self.sample_course) - self.assertEquals(list(ctx['suggested_collections']), []) - self.assertEquals(ctx['space_viewer'], self.instructor_one) + self.assertEqual(ctx['course'], self.sample_course) + self.assertEqual(list(ctx['suggested_collections']), []) + self.assertEqual(ctx['space_viewer'], self.instructor_one) self.assertFalse(ctx['is_staff']) self.assertIsNotNone(ctx['uploader']) @@ -656,7 +656,7 @@ def setUp(self): def test_not_logged_in(self): response = self.client.get(self.url) - self.assertEquals(response.status_code, 200) + self.assertEqual(response.status_code, 200) self.assertContains(response, '"current": false') self.assertContains(response, '"logged_in": false') @@ -670,7 +670,7 @@ def test_logged_in_no_course(self): password='test') response = self.client.get(self.url) - self.assertEquals(response.status_code, 200) + self.assertEqual(response.status_code, 200) self.assertContains(response, '"current": false') self.assertContains(response, '"logged_in": true') @@ -688,7 +688,7 @@ def test_logged_in_with_course(self): DJANGOSHERD_FLICKR_APIKEY="456", BOOKMARKLET_VERSION="2"): response = self.client.get(self.url, {'version': 2}) - self.assertEquals(response.status_code, 200) + self.assertEqual(response.status_code, 200) self.assertContains(response, '"current": true') self.assertContains(response, '"logged_in": true') @@ -802,16 +802,16 @@ def setUp(self): def verify_alt_course_materials(self): # alt course assets, notes & projects are intact assets = Asset.objects.filter(course=self.alt_course) - self.assertEquals(self.alt_asset, assets.first()) + self.assertEqual(self.alt_asset, assets.first()) notes = SherdNote.objects.filter(asset__course=self.alt_course) - self.assertEquals(self.alt_note, notes.first()) + self.assertEqual(self.alt_note, notes.first()) projects = Project.objects.filter(course=self.alt_course) - self.assertEquals(self.alt_composition, projects.first()) + self.assertEqual(self.alt_composition, projects.first()) - self.assertEquals(get_course_discussions(self.alt_course), - [self.alt_discussion]) + self.assertEqual(get_course_discussions(self.alt_course), + [self.alt_discussion]) comments = ThreadedComment.objects.filter(parent=self.alt_discussion) - self.assertEquals(self.alt_comment, comments.first()) + self.assertEqual(self.alt_comment, comments.first()) def test_access(self): url = reverse('course-delete-materials', args=[self.sample_course.pk]) @@ -819,7 +819,7 @@ def test_access(self): self.client.login(username=self.student_one.username, password='test') response = self.client.post(url, data) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) def test_clear_all(self): url = reverse('course-delete-materials', args=[self.sample_course.pk]) @@ -829,21 +829,21 @@ def test_clear_all(self): self.switch_course(self.client, self.sample_course) response = self.client.post(url, data) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) messages = [m.message for m in get_messages(response.wsgi_request)] self.assertIn('All requested materials were deleted', messages[0]) assets = Asset.objects.filter(course=self.sample_course) - self.assertEquals(assets.count(), 0) + self.assertEqual(assets.count(), 0) notes = SherdNote.objects.filter(asset__course=self.sample_course) - self.assertEquals(notes.count(), 0) + self.assertEqual(notes.count(), 0) projects = Project.objects.filter(course=self.sample_course) - self.assertEquals(projects.count(), 0) + self.assertEqual(projects.count(), 0) - self.assertEquals(get_course_discussions(self.sample_course), - [self.discussion]) + self.assertEqual(get_course_discussions(self.sample_course), + [self.discussion]) comments = ThreadedComment.objects.filter(parent=self.discussion) - self.assertEquals(comments.count(), 0) + self.assertEqual(comments.count(), 0) self.verify_alt_course_materials() @@ -858,27 +858,27 @@ def test_clear_student_only(self): self.switch_course(self.client, self.sample_course) response = self.client.post(url, data) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) messages = [m.message for m in get_messages(response.wsgi_request)] self.assertIn('All requested materials were deleted', messages[0]) assets = Asset.objects.filter(course=self.sample_course) - self.assertEquals(assets.count(), 1) - self.assertEquals(assets.first(), self.faculty_asset) + self.assertEqual(assets.count(), 1) + self.assertEqual(assets.first(), self.faculty_asset) notes = SherdNote.objects.filter(asset__course=self.sample_course) - self.assertEquals(notes.count(), 1) - self.assertEquals(notes.first(), self.faculty_note1) + self.assertEqual(notes.count(), 1) + self.assertEqual(notes.first(), self.faculty_note1) projects = Project.objects.filter(course=self.sample_course) - self.assertEquals(projects.count(), 2) + self.assertEqual(projects.count(), 2) self.assertTrue(self.faculty_composition in projects.all()) self.assertTrue(self.assignment in projects.all()) - self.assertEquals(get_course_discussions(self.sample_course), - [self.discussion]) + self.assertEqual(get_course_discussions(self.sample_course), + [self.discussion]) comments = ThreadedComment.objects.filter(parent=self.discussion) - self.assertEquals(comments.count(), 0) + self.assertEqual(comments.count(), 0) self.verify_alt_course_materials() @@ -896,22 +896,22 @@ def test_clear_and_delete_course(self): self.switch_course(self.client, self.sample_course) response = self.client.post(url, data) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) messages = [m.message for m in get_messages(response.wsgi_request)] self.assertIn('Sample Course and requested materials were deleted', messages[0]) assets = Asset.objects.filter(course=self.sample_course) - self.assertEquals(assets.count(), 0) + self.assertEqual(assets.count(), 0) notes = SherdNote.objects.filter(asset__course=self.sample_course) - self.assertEquals(notes.count(), 0) + self.assertEqual(notes.count(), 0) projects = Project.objects.filter(course=self.sample_course) - self.assertEquals(projects.count(), 0) + self.assertEqual(projects.count(), 0) - self.assertEquals(get_course_discussions(self.sample_course), - [self.discussion]) + self.assertEqual(get_course_discussions(self.sample_course), + [self.discussion]) comments = ThreadedComment.objects.filter(parent=self.discussion) - self.assertEquals(comments.count(), 0) + self.assertEqual(comments.count(), 0) self.verify_alt_course_materials() self.assertFalse( @@ -935,7 +935,7 @@ def test_get(self): self.client.login(username=self.instructor_one.username, password='test') response = self.client.get(self.url) - self.assertEquals(response.status_code, 200) + self.assertEqual(response.status_code, 200) def test_roster_view_get_queryset(self): request = RequestFactory().get(self.url) @@ -946,7 +946,7 @@ def test_roster_view_get_queryset(self): view.request = request qs = view.get_queryset() - self.assertEquals(qs.count(), self.sample_course.members.count()) + self.assertEqual(qs.count(), self.sample_course.members.count()) def test_promote_demote_users(self): self.client.login(username=self.instructor_one.username, @@ -957,13 +957,13 @@ def test_promote_demote_users(self): data = {'student_id': self.student_one.id} response = self.client.post(url, data) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) self.assertTrue(self.sample_course.is_faculty(self.student_one)) url = reverse('course-roster-demote') data = {'faculty_id': self.student_one.id} response = self.client.post(url, data) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) self.assertFalse(self.sample_course.is_faculty(self.student_one)) def test_remove_user(self): @@ -974,12 +974,12 @@ def test_remove_user(self): url = reverse('course-roster-remove') data = {'user_id': self.student_one.id} response = self.client.post(url, data) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) self.assertFalse(self.sample_course.is_member(self.student_one)) data = {'user_id': self.instructor_two.id} response = self.client.post(url, data) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) self.assertFalse(self.sample_course.is_faculty(self.instructor_two)) self.assertFalse(self.sample_course.is_member(self.instructor_two)) @@ -993,7 +993,7 @@ def test_uni_invite_get_or_create_user(self): user = view.get_or_create_user('abc123') self.assertFalse(user.has_usable_password()) - self.assertEquals(user, view.get_or_create_user('abc123')) + self.assertEqual(user, view.get_or_create_user('abc123')) def test_uni_invite_post(self): self.client.login(username=self.instructor_one.username, @@ -1002,13 +1002,13 @@ def test_uni_invite_post(self): url = reverse('course-roster-add-uni') response = self.client.post(url, {}) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) messages = [m.message for m in get_messages(response.wsgi_request)] self.assertIn('Please enter a comma-separated list of UNIs', messages[0]) response = self.client.post(url, {'unis': 'abc123'}) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) user = User.objects.get(username='abc123') self.assertTrue(self.sample_course.is_true_member(user)) @@ -1019,7 +1019,7 @@ def test_uni_invite_post(self): response = self.client.post( url, {'unis': ' abc123 ,efg456,az4@columbia.edu,1234 56'}) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) user = User.objects.get(username='efg456') self.assertTrue(self.sample_course.is_true_member(user)) @@ -1042,7 +1042,7 @@ def test_uni_invite_post_newlines(self): url = reverse('course-roster-add-uni') # sometimes they enter a newline instead of a comma response = self.client.post(url, {'unis': ' abc123\nefg456,'}) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) user = User.objects.get(username='efg456') self.assertTrue(self.sample_course.is_true_member(user)) @@ -1055,7 +1055,7 @@ def test_email_invite_existing_course_member(self): password='test') self.switch_course(self.client, self.sample_course) response = self.client.post(url, {'emails': self.student_one.email}) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) messages = [m.message for m in get_messages(response.wsgi_request)] self.assertIn( 'Student One (student_one@example.com) is already a course member', @@ -1071,7 +1071,7 @@ def test_email_invite_existing_user(self): self.switch_course(self.client, self.sample_course) response = self.client.post(url, {'emails': self.alt_student.email}) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) messages = [m.message for m in get_messages(response.wsgi_request)] self.assertIn('Student Alternate is now a course member', messages[0]) @@ -1081,8 +1081,8 @@ def test_email_invite_existing_user(self): self.assertEqual(len(mail.outbox), 1) self.assertEqual(mail.outbox[0].subject, 'Mediathread: Sample Course') - self.assertEquals(mail.outbox[0].from_email, - 'mediathread@example.com') + self.assertEqual(mail.outbox[0].from_email, + 'mediathread@example.com') self.assertTrue(mail.outbox[0].to, [self.alt_student.email]) self.assertTrue(CourseInvitation.objects.count() == 0) @@ -1094,7 +1094,7 @@ def test_email_invite_new_user(self): self.switch_course(self.client, self.sample_course) response = self.client.post(url, {'emails': 'foo@example.com'}) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) messages = [m.message for m in get_messages(response.wsgi_request)] self.assertIn('An email was sent to foo@example.com inviting this ' 'user to join the course.', messages[0]) @@ -1102,8 +1102,8 @@ def test_email_invite_new_user(self): self.assertEqual(len(mail.outbox), 1) self.assertEqual(mail.outbox[0].subject, 'Mediathread Course Invitation: Sample Course') - self.assertEquals(mail.outbox[0].from_email, - 'mediathread@example.com') + self.assertEqual(mail.outbox[0].from_email, + 'mediathread@example.com') self.assertTrue(mail.outbox[0].to, ['foo@example.com']) self.assertTrue(CourseInvitation.objects.count() == 1) @@ -1122,7 +1122,7 @@ def test_email_invite_no_user(self): self.switch_course(self.client, self.sample_course) response = self.client.post(url, {}) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) messages = [m.message for m in get_messages(response.wsgi_request)] self.assertIn('Please enter a comma-separated list of email ' 'addresses.', messages[0]) @@ -1134,7 +1134,7 @@ def test_email_invite_invalid_email(self): self.switch_course(self.client, self.sample_course) response = self.client.post(url, {'emails': '#$%^,foo@example.com'}) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) messages = [m.message for m in get_messages(response.wsgi_request)] self.assertIn('#$%^ is not a valid email address.', messages[0]) self.assertIn('An email was sent to foo@example.com inviting ' @@ -1146,7 +1146,7 @@ def test_accept_invite_invalid_uuid(self): 'course-invite-accept', kwargs={'uidb64': uuid.uuid4()}) response = self.client.get(url) - self.assertEquals(response.status_code, 404) + self.assertEqual(response.status_code, 404) # already accepted invitation invite = CourseInvitationFactory( @@ -1154,7 +1154,7 @@ def test_accept_invite_invalid_uuid(self): invited_by=self.instructor_one) url = reverse('course-invite-accept', kwargs={'uidb64': invite.uuid}) response = self.client.get(url) - self.assertEquals(response.status_code, 200) + self.assertEqual(response.status_code, 200) self.assertContains( response, 'This invitation has already been accepted') @@ -1167,7 +1167,7 @@ def test_accept_invite_get_invite(self): invite = CourseInvitationFactory( course=self.sample_course, invited_by=self.instructor_one) - self.assertEquals(view.get_invite(invite.uuid), invite) + self.assertEqual(view.get_invite(invite.uuid), invite) def test_accept_invite_form_valid(self): form = AcceptInvitationForm() @@ -1184,9 +1184,9 @@ def test_accept_invite_form_valid(self): view.form_valid(form) user = User.objects.get(username='testname') - self.assertEquals(user.first_name, 'Foo') - self.assertEquals(user.last_name, 'Bar') - self.assertEquals(user.email, invite.email) + self.assertEqual(user.first_name, 'Foo') + self.assertEqual(user.last_name, 'Bar') + self.assertEqual(user.email, invite.email) invite.refresh_from_db() self.assertTrue(invite.accepted()) @@ -1202,14 +1202,14 @@ def test_resend_invite(self): password='test') self.switch_course(self.client, self.sample_course) response = self.client.post(url, {'invite-id': '3'}) - self.assertEquals(response.status_code, 404) + self.assertEqual(response.status_code, 404) invite = CourseInvitationFactory( course=self.sample_course, invited_by=self.instructor_one) with self.settings(SERVER_EMAIL='mediathread@example.com'): response = self.client.post(url, {'invite-id': invite.id}) - self.assertEquals(response.status_code, 302) + self.assertEqual(response.status_code, 302) msg = 'A course invitation was resent to {}'.format(invite.email) messages = [m.message for m in get_messages(response.wsgi_request)] @@ -1218,8 +1218,8 @@ def test_resend_invite(self): self.assertEqual(len(mail.outbox), 1) self.assertEqual(mail.outbox[0].subject, 'Mediathread Course Invitation: Sample Course') - self.assertEquals(mail.outbox[0].from_email, - 'mediathread@example.com') + self.assertEqual(mail.outbox[0].from_email, + 'mediathread@example.com') self.assertTrue(mail.outbox[0].to, [invite.email]) @@ -1367,7 +1367,7 @@ def test_post(self): course = Course.objects.last() self.assertEqual(course.title, 'English for Cats') self.assertEqual( - smart_text(course.info), + smart_str(course.info), 'English for Cats (Spring 2016) None None-None') self.assertEqual(course.info.term, 1) self.assertEqual(course.info.year, 2016) @@ -1394,10 +1394,10 @@ def test_send_faculty_email(self): self.assertEqual( mail.outbox[0].subject, 'Your Mediathread Course Activation: English for Cats') - self.assertEquals( + self.assertEqual( mail.outbox[0].from_email, settings.SERVER_EMAIL) - self.assertEquals( + self.assertEqual( mail.outbox[0].to, ['test_user@example.com']) @@ -1419,10 +1419,10 @@ def test_send_staff_email(self): self.assertEqual( mail.outbox[0].subject, 'Mediathread Course Activated: English for Cats') - self.assertEquals( + self.assertEqual( mail.outbox[0].from_email, settings.SERVER_EMAIL) - self.assertEquals( + self.assertEqual( mail.outbox[0].to, [settings.CONTACT_US_EMAIL]) self.assertIn( @@ -1645,8 +1645,8 @@ def test_get(self): self.client.login( username=self.instructor_one.username, password='test') response = self.client.get(url, follow=True) - self.assertEquals(response.status_code, 200) - self.assertEquals(response.context['course'], self.sample_course) + self.assertEqual(response.status_code, 200) + self.assertEqual(response.context['course'], self.sample_course) def test_get_without_course(self): ctx = LTICourseContextFactory( @@ -1661,7 +1661,7 @@ def test_get_without_course(self): self.client.login( username=self.instructor_one.username, password='test') response = self.client.get(url, follow=True) - self.assertEquals(response.status_code, 200) + self.assertEqual(response.status_code, 200) self.assertTrue('course' not in response.context) @@ -1682,15 +1682,15 @@ def test_post_sis_course_id(self): self.assertEqual(response.status_code, 302) c = Course.objects.get(title='LTI Course') - self.assertEquals( + self.assertEqual( c.group.name, 't3.y2017.s010.ct7113.socw.st.course:columbia.edu') - self.assertEquals( + self.assertEqual( c.faculty_group.name, 't3.y2017.s010.ct7113.socw.fc.course:columbia.edu') - self.assertEquals(c.info.term, 3) - self.assertEquals(c.info.year, 2017) + self.assertEqual(c.info.term, 3) + self.assertEqual(c.info.year, 2017) self.assertTrue(user in c.group.user_set.all()) self.assertTrue(user in c.faculty_group.user_set.all()) @@ -1699,17 +1699,17 @@ def test_post_sis_course_id(self): self.assertEqual(mail.outbox[0].subject, 'Mediathread Course Connected') - self.assertEquals(mail.outbox[0].from_email, - settings.SERVER_EMAIL) - self.assertEquals(mail.outbox[0].to, - [settings.CONTACT_US_EMAIL]) + self.assertEqual(mail.outbox[0].from_email, + settings.SERVER_EMAIL) + self.assertEqual(mail.outbox[0].to, + [settings.CONTACT_US_EMAIL]) self.assertEqual(mail.outbox[1].subject, 'Mediathread Course Connected') - self.assertEquals(mail.outbox[1].from_email, - settings.SERVER_EMAIL) - self.assertEquals(mail.outbox[1].to, - [user.email]) + self.assertEqual(mail.outbox[1].from_email, + settings.SERVER_EMAIL) + self.assertEqual(mail.outbox[1].to, + [user.email]) LTICourseContext.objects.get( lms_course_context='1234', @@ -1742,10 +1742,10 @@ def test_post_course_context(self): self.assertEqual(response.status_code, 302) c = Course.objects.get(title='LTI Course') - self.assertEquals(c.group.name, '1234') - self.assertEquals(c.faculty_group.name, '1234_faculty') - self.assertEquals(c.info.term, 1) - self.assertEquals(c.info.year, 2017) + self.assertEqual(c.group.name, '1234') + self.assertEqual(c.faculty_group.name, '1234_faculty') + self.assertEqual(c.info.term, 1) + self.assertEqual(c.info.year, 2017) self.assertTrue(user in c.group.user_set.all()) self.assertTrue(user in c.faculty_group.user_set.all()) @@ -1782,10 +1782,10 @@ def test_post_course_context_with_unicode(self): c = Course.objects.get( title='LTI Course "Película", rødgrød med fløde') - self.assertEquals(c.group.name, '1234') - self.assertEquals(c.faculty_group.name, '1234_faculty') - self.assertEquals(c.info.term, 1) - self.assertEquals(c.info.year, 2017) + self.assertEqual(c.group.name, '1234') + self.assertEqual(c.faculty_group.name, '1234_faculty') + self.assertEqual(c.info.term, 1) + self.assertEqual(c.info.year, 2017) self.assertTrue(user in c.group.user_set.all()) self.assertTrue(user in c.faculty_group.user_set.all()) @@ -1878,14 +1878,14 @@ def test_get_context_data(self): with self.settings(ASSET_CONVERT_API=None): ctx = view.get_context_data() self.assertFalse(ctx['endpoint']) - self.assertEquals(ctx['assets'].count(), 4) + self.assertEqual(ctx['assets'].count(), 4) def test_get_conversion_endpoint(self): view = CourseConvertMaterialsView() with self.settings(SERVER_ADMIN_SECRETKEYS={}): - self.assertEquals(view.get_conversion_endpoint(), (None, None)) + self.assertEqual(view.get_conversion_endpoint(), (None, None)) rv = ('http://something', 'foo') with self.settings(ASSET_CONVERT_API=rv[0], SERVER_ADMIN_SECRETKEYS={rv[0]: rv[1]}): - self.assertEquals(view.get_conversion_endpoint(), rv) + self.assertEqual(view.get_conversion_endpoint(), rv) diff --git a/mediathread/main/views.py b/mediathread/main/views.py index 85d2ab90ac..738c733abb 100644 --- a/mediathread/main/views.py +++ b/mediathread/main/views.py @@ -20,7 +20,7 @@ from django.template import loader from django.urls import reverse from django.utils.decorators import method_decorator -from django.utils.encoding import smart_bytes, smart_text +from django.utils.encoding import smart_bytes, smart_str from django.utils.http import urlencode from django.utils.safestring import mark_safe from django.utils import timezone @@ -402,7 +402,7 @@ def form_valid(self, form): subject = 'Mediathread Contact Us Request' form_data = form.cleaned_data tmpl = loader.get_template('main/contact_description.txt') - form_data['description'] = smart_text(tmpl.render(form_data)) + form_data['description'] = smart_str(tmpl.render(form_data)) # send to server email instead send_mail('Mediathread Support Request', form_data['description'], diff --git a/mediathread/projects/api.py b/mediathread/projects/api.py index 05613c4b1d..0901ca4b9d 100644 --- a/mediathread/projects/api.py +++ b/mediathread/projects/api.py @@ -6,7 +6,7 @@ from courseaffils.lib import get_public_name from django.urls import reverse -from django.utils.encoding import smart_text +from django.utils.encoding import smart_str from tastypie import fields from tastypie.resources import ModelResource @@ -193,9 +193,9 @@ def render_one(self, request, project, version_number=None): if self.editable: projectform = ProjectForm(request, instance=project) data['form'] = { - 'participants': smart_text(projectform['participants']), - 'publish': smart_text(projectform['publish']), - 'response_view_policy': smart_text( + 'participants': smart_str(projectform['participants']), + 'publish': smart_str(projectform['publish']), + 'response_view_policy': smart_str( projectform['response_view_policy']), } diff --git a/mediathread/templates/assetmgr/analyze.html b/mediathread/templates/assetmgr/analyze.html index d36d54a7b3..c2dbe3f565 100644 --- a/mediathread/templates/assetmgr/analyze.html +++ b/mediathread/templates/assetmgr/analyze.html @@ -1,25 +1,25 @@ {% spaceless %} -{% ifequal action "collection" %} +{% if action == "collection" %} -{% endifequal %} +{% endif %} -{% ifequal action "cont" %} +{% if action == "cont" %} -{% endifequal %} +{% endif %} -{% ifequal action "analyze" %} +{% if action == "analyze" %} -{% endifequal %} +{% endif %} -{% ifequal action None %} +{% if action == None %} -{% endifequal %} +{% endif %} {% endspaceless %} diff --git a/mediathread/templates/assetmgr/pretender_select.html b/mediathread/templates/assetmgr/pretender_select.html index ccb57f3b05..8445a1189a 100644 --- a/mediathread/templates/assetmgr/pretender_select.html +++ b/mediathread/templates/assetmgr/pretender_select.html @@ -1,6 +1,6 @@ {% load coursetags %} {% if user.is_staff %} - {% ifequal role_in_course "non-member" %} + {% if role_in_course == "non-member" %}
- {% endifequal%} + {% endif %} {% endif %} diff --git a/mediathread/templates/courseaffils/course_detail.html b/mediathread/templates/courseaffils/course_detail.html index accd1105f8..6695896b3f 100644 --- a/mediathread/templates/courseaffils/course_detail.html +++ b/mediathread/templates/courseaffils/course_detail.html @@ -22,10 +22,10 @@ {% endblock %} diff --git a/mediathread/templates/dashboard/class_manage_sources.html b/mediathread/templates/dashboard/class_manage_sources.html index a1089d3260..72452ae5e6 100644 --- a/mediathread/templates/dashboard/class_manage_sources.html +++ b/mediathread/templates/dashboard/class_manage_sources.html @@ -17,7 +17,7 @@

Image Uploader

:  
diff --git a/mediathread/templates/dashboard/class_migrate.html b/mediathread/templates/dashboard/class_migrate.html index b208e157d2..d53c1b4c7e 100644 --- a/mediathread/templates/dashboard/class_migrate.html +++ b/mediathread/templates/dashboard/class_migrate.html @@ -252,7 +252,7 @@

Migrate Course Materials

Migrate As
- {% ifequal role_in_course "non-member" %} + {% if role_in_course == "non-member" %}
You are not a member of this course.
You must migrate on behalf of an instructor.
- {% endifequal %} + {% endif %}
Include
diff --git a/mediathread/templates/dashboard/clump.html b/mediathread/templates/dashboard/clump.html index c38d6aa443..b6c8e935c3 100644 --- a/mediathread/templates/dashboard/clump.html +++ b/mediathread/templates/dashboard/clump.html @@ -1,9 +1,9 @@ {% load coursetags %}
  • {{clump.title|striptags|safe|default:"(Untitled)"}}
    diff --git a/mediathread/templates/help/help_contentarea.html b/mediathread/templates/help/help_contentarea.html index 64be7c39d3..b0360f69fa 100644 --- a/mediathread/templates/help/help_contentarea.html +++ b/mediathread/templates/help/help_contentarea.html @@ -16,7 +16,7 @@ class="ui-widget-content feature-help" {% if not default_help_state %}style="display: none"{% endif %}> - {% ifequal help_id "help_taxonomy" %} + {% if help_id == "help_taxonomy" %} About Course Vocabularies
    A Mediathread course vocabulary is a set of concepts and associated terms chosen by a course instructor. This is a good way to designate metadata for students to apply to items they analyze in Mediathread.
    @@ -36,9 +36,9 @@
    Instructors may delete concepts and terms by clicking on the trash icon. If a term is deleted, all of its associations with Items in Mediathread are also deleted and cannot be restored. If a concept is deleted, all of its associated terms are also deleted and cannot be restored.
    - {% endifequal %} + {% endif %} - {% ifequal help_id "help_migrate_materials" %} + {% if help_id == "help_migrate_materials" %} How To Migrate Course Materials @@ -84,9 +84,9 @@ - {% endifequal %} + {% endif %} - {% ifequal help_id "help_homepage_instructor_column" %} + {% if help_id == "help_homepage_instructor_column" %} From Your Instructor {% if is_faculty %}
    @@ -123,10 +123,10 @@

    {% endif %} - {% endifequal %} + {% endif %} - {% ifequal help_id "help_homepage_classwork_column" %} + {% if help_id == "help_homepage_classwork_column" %} The Composition Section @@ -203,9 +203,9 @@ {% endif %} - {% endifequal %} + {% endif %} - {% ifequal help_id "help_sequence_assignment" %} + {% if help_id == "help_sequence_assignment" %}

    A sequence assignment allows students to line up a "primary" selection of video or audio against multiple "secondary" selections and/or annotations. The secondary selections will appear at designated @@ -216,9 +216,9 @@ series of thoughts (ie, textual annotations). Students may be asked to display correlations or contrasts in context, or to prepare a set of annotations that appear as a media selection plays.

    - {% endifequal %} + {% endif %} - {% ifequal help_id "help_homepage_explore_column" %} + {% if help_id == "help_homepage_explore_column" %} The Collection Section
    @@ -272,7 +272,7 @@ {% endif %} - {% endifequal %} + {% endif %}
    diff --git a/mediathread/templates/main/collection_add.html b/mediathread/templates/main/collection_add.html index 04ba8e3cc1..c0937983fb 100644 --- a/mediathread/templates/main/collection_add.html +++ b/mediathread/templates/main/collection_add.html @@ -21,7 +21,7 @@
    Upload Media
    into Mediathread.

    - {% ifequal role_in_course "non-member" %} + {% if role_in_course == "non-member" %}

    You must be a course member to upload media files.

    {% else %}
    Video
    @@ -33,7 +33,7 @@
    Video
    @@ -52,7 +52,7 @@
    Audio
    @@ -63,7 +63,7 @@
    Audio
    - {% endifequal %} + {% endif %} {% endif %} @@ -93,7 +93,7 @@
    IMAGE / PDF
    {% for owner in owners %} - + {% endfor %} @@ -229,7 +229,7 @@

    Upload from Computer

    @@ -238,7 +238,7 @@

    Upload from Computer

      Upload audio - {% endifequal %} + {% endif %} {% endif %} diff --git a/mediathread/templates/projects/clump.html b/mediathread/templates/projects/clump.html index 638c136869..314bd59957 100644 --- a/mediathread/templates/projects/clump.html +++ b/mediathread/templates/projects/clump.html @@ -1,7 +1,7 @@ {% load coursetags %}
  • + {% if clump.type == "asset"%} asset-{{clump.content_object.primary.label}} {% endif %}"> {{clump.title|striptags|safe|default:"(Untitled)"}}
    diff --git a/mediathread/templates/projects/selection_assignment_view.html b/mediathread/templates/projects/selection_assignment_view.html index 48d483fbb5..3151ec1d48 100644 --- a/mediathread/templates/projects/selection_assignment_view.html +++ b/mediathread/templates/projects/selection_assignment_view.html @@ -203,13 +203,13 @@