From 7c3aa0e569361b476db87f00647b09878a7766de Mon Sep 17 00:00:00 2001 From: Naman Sharma Date: Thu, 10 Sep 2026 09:46:36 +0000 Subject: [PATCH 01/12] updgrade django to 3.2 and make changes to creation models/views/urls accordingly --- creation/forms.py | 4 - creation/models.py | 63 +++++------ creation/test_creation.py | 2 +- creation/urls.py | 214 +++++++++++++++++++------------------- creation/views.py | 3 +- requirements-common.txt | 2 +- spoken/settings.py | 15 +-- spoken/urls.py | 88 ++++++++-------- 8 files changed, 181 insertions(+), 210 deletions(-) diff --git a/creation/forms.py b/creation/forms.py index ea8bd066d..361c151e6 100644 --- a/creation/forms.py +++ b/creation/forms.py @@ -1,8 +1,4 @@ - # Third Party Stuff -from builtins import str -from builtins import range -from builtins import object from django import forms from django.contrib.auth.models import User from django.db.models import Q diff --git a/creation/models.py b/creation/models.py index 80aada2cb..44dac495e 100644 --- a/creation/models.py +++ b/creation/models.py @@ -1,9 +1,6 @@ # Third Party Stuff - -from builtins import object from django.contrib.auth.models import User from django.db import models -from django.utils.encoding import python_2_unicode_compatible import uuid from datetime import timedelta, date @@ -41,7 +38,6 @@ import datetime -@python_2_unicode_compatible class Language(models.Model): name = models.CharField(max_length=255, unique=True) user = models.ForeignKey(User, on_delete=models.PROTECT ) @@ -49,14 +45,13 @@ class Language(models.Model): created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) - class Meta(object): + class Meta: ordering = ('name',) def __str__(self): return self.name -@python_2_unicode_compatible class FossSuperCategory(models.Model): name = models.CharField(max_length=255, unique=True) created = models.DateTimeField(auto_now_add=True) @@ -65,7 +60,7 @@ class FossSuperCategory(models.Model): # Some of the Fosses are part of Recommendation System part_of_recsys = models.BooleanField(max_length=2, default=False) - class Meta(object): + class Meta: verbose_name = 'FOSS Category' verbose_name_plural = 'FOSS Categories' ordering = ('name',) @@ -88,7 +83,6 @@ def __str__(self): return self.name -@python_2_unicode_compatible class FossCategory(models.Model): foss = models.CharField(unique=True, max_length=255) description = models.TextField() @@ -115,7 +109,7 @@ class FossCategory(models.Model): operating_system = models.CharField(max_length=255, null=True, blank=True) download = models.BooleanField(default=False, help_text='If checked, this foss will be available for CD content download') - class Meta(object): + class Meta: verbose_name = 'FOSS' verbose_name_plural = 'FOSSes' ordering = ('foss', ) @@ -132,14 +126,13 @@ class Meta: unique_together = (('fosscategory', 'domain'),) -@python_2_unicode_compatible class BrochureDocument(models.Model): foss_course = models.ForeignKey(FossCategory, on_delete=models.PROTECT ) foss_language = models.ForeignKey(Language, on_delete=models.PROTECT ) created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) - class Meta(object): + class Meta: verbose_name = 'FOSS Brochure' verbose_name_plural = 'FOSS Brochures' @@ -152,12 +145,11 @@ class BrochurePage(models.Model): page = models.FileField(upload_to='brochures/') page_no = models.PositiveIntegerField() - class Meta(object): + class Meta: ordering = ('page_no', ) unique_together = (('brochure', 'page_no'),) -@python_2_unicode_compatible class PlaylistInfo(models.Model): foss = models.ForeignKey(FossCategory, on_delete=models.PROTECT ) language = models.ForeignKey(Language, on_delete=models.PROTECT ) @@ -165,7 +157,7 @@ class PlaylistInfo(models.Model): created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) - class Meta(object): + class Meta: verbose_name = 'Playlist Info' unique_together = (('foss', 'language'),) @@ -179,24 +171,22 @@ class PlaylistItem(models.Model): created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) - class Meta(object): + class Meta: verbose_name = 'Playlist Item' unique_together = (('playlist', 'item_id'),) -@python_2_unicode_compatible class Level(models.Model): level = models.CharField(max_length=255) code = models.CharField(max_length=10) - class Meta(object): + class Meta: verbose_name = 'Tutorial Level' def __str__(self): return self.level -@python_2_unicode_compatible class TutorialDetail(models.Model): foss = models.ForeignKey(FossCategory, on_delete=models.PROTECT ) tutorial = models.CharField(max_length=255) @@ -206,7 +196,7 @@ class TutorialDetail(models.Model): created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) - class Meta(object): + class Meta: verbose_name = 'Tutorial Detail' unique_together = (('foss', 'tutorial', 'level'),) @@ -247,7 +237,7 @@ class TutorialCommonContent(models.Model): created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) - class Meta(object): + class Meta: verbose_name = 'Tutorial Common Content' def keyword_as_list(self): @@ -303,7 +293,7 @@ def get_absolute_url(self): class PaymentHonorarium(models.Model): amount = models.DecimalField(default=0, max_digits=7, decimal_places=2) code = models.CharField(max_length=20, editable=False) - initiated_by = models.ForeignKey(User, related_name="initiator",default=7) + initiated_by = models.ForeignKey(User, related_name="initiator", default=7, on_delete=models.PROTECT) status = models.PositiveSmallIntegerField(default=1, choices=HONORARIUM_STATUS) updated = models.DateTimeField(auto_now=True) @@ -323,8 +313,8 @@ def save(self, *args, **kwargs): class TutorialPayment(models.Model): - user = models.ForeignKey(User, related_name="contributor",) - tutorial_resource = models.ForeignKey(TutorialResource) + user = models.ForeignKey(User, related_name="contributor", on_delete=models.PROTECT) + tutorial_resource = models.ForeignKey(TutorialResource, on_delete=models.PROTECT) payment_honorarium = models.ForeignKey('PaymentHonorarium', related_name="tutorials", null=True, blank=True, on_delete=models.SET_NULL) user_type = models.PositiveSmallIntegerField(default=3, choices=USER_TYPE) seconds = models.PositiveIntegerField(default=0, help_text="Tutorial duration in seconds") @@ -386,7 +376,7 @@ class ContributorRole(models.Model): user = models.ForeignKey(User, on_delete=models.PROTECT ) language = models.ForeignKey(Language, on_delete=models.PROTECT ) foss_category = models.ForeignKey(FossCategory, on_delete=models.PROTECT ) - tutorial_detail = models.ForeignKey(TutorialDetail, null=True) + tutorial_detail = models.ForeignKey(TutorialDetail, null=True, on_delete=models.PROTECT) status = models.BooleanField() created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) @@ -395,7 +385,7 @@ def revoke(self): self.status = 0 self.save() - class Meta(object): + class Meta: unique_together = (('user', 'tutorial_detail', 'language',),) verbose_name = 'Contributor Role' @@ -522,7 +512,7 @@ class QualityReviewerNotification(models.Model): class RoleRequest(models.Model): user = models.ForeignKey(User, related_name='user', on_delete=models.PROTECT ) role_type = models.IntegerField(default=0) - language = models.ForeignKey(Language, null=True) + language = models.ForeignKey(Language, null=True, on_delete=models.PROTECT) status = models.PositiveSmallIntegerField(default=0) approved_user = models.ForeignKey( User, related_name='approved_user', null=True, blank=True, on_delete=models.PROTECT ) @@ -544,7 +534,7 @@ class FossAvailableForWorkshop(models.Model): status = models.BooleanField(default=0) created = models.DateTimeField(auto_now_add=True) - class Meta(object): + class Meta: unique_together = (('foss', 'language'),) @@ -554,7 +544,7 @@ class FossAvailableForTest(models.Model): status = models.BooleanField(default=0) created = models.DateTimeField(auto_now_add=True) - class Meta(object): + class Meta: unique_together = (('foss', 'language'),) @@ -579,7 +569,6 @@ class TutorialMissingComponentReply(models.Model): created = models.DateTimeField(auto_now_add=True) -@python_2_unicode_compatible class OperatingSystem(models.Model): name = models.CharField(max_length=255) @@ -587,7 +576,6 @@ def __str__(self): return self.name -@python_2_unicode_compatible class SuggestTopic(models.Model): user = models.ForeignKey(User, on_delete=models.PROTECT ) topic_title = models.CharField(max_length=255) @@ -601,7 +589,6 @@ def __str__(self): return self.topic_title -@python_2_unicode_compatible class SuggestExample(models.Model): user = models.ForeignKey(User, on_delete=models.PROTECT ) topic_title = models.CharField(max_length=255) @@ -614,7 +601,6 @@ def __str__(self): return self.topic_title -@python_2_unicode_compatible class ContributeTowards(models.Model): name = models.CharField(max_length=255) @@ -642,18 +628,18 @@ class Collaborate(models.Model): class ContributorRating(models.Model): - user = models.ForeignKey(User) + user = models.ForeignKey(User, on_delete=models.PROTECT) choices = ((0,0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5)) rating = models.PositiveIntegerField(choices=choices,default=0) - language = models.ForeignKey(Language) + language = models.ForeignKey(Language, on_delete=models.PROTECT) class Meta: unique_together = (('user', 'language'),) class TutorialsAvailable(models.Model): - tutorial_detail = models.ForeignKey(TutorialDetail) - language = models.ForeignKey(Language) + tutorial_detail = models.ForeignKey(TutorialDetail, on_delete=models.PROTECT) + language = models.ForeignKey(Language, on_delete=models.PROTECT) class Meta: unique_together = (('tutorial_detail', 'language'),) @@ -661,8 +647,8 @@ class Meta: class LanguageManager(models.Model): - user = models.ForeignKey(User) - language = models.ForeignKey(Language) + user = models.ForeignKey(User, on_delete=models.PROTECT) + language = models.ForeignKey(Language, on_delete=models.PROTECT) status = models.BooleanField(default=0) created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now=True) @@ -685,3 +671,4 @@ class TutorialSummaryCache(models.Model): def __str__(self): return f"FOSS {self.foss_id}: {self.tutorial_count} tutorials" + diff --git a/creation/test_creation.py b/creation/test_creation.py index 78b46d603..21cf0c901 100644 --- a/creation/test_creation.py +++ b/creation/test_creation.py @@ -1,7 +1,7 @@ import os from django.test import TestCase -from django.core.urlresolvers import reverse +from django.urls import reverse from django.contrib.auth.models import User, Group from .models import TutorialPayment diff --git a/creation/urls.py b/creation/urls.py index 829a0c440..d920452f9 100644 --- a/creation/urls.py +++ b/creation/urls.py @@ -1,5 +1,5 @@ # Third Party Stuff -from django.conf.urls import include, url +from django.urls import include, re_path from creation.views import * from creation.script import * from django.contrib.sitemaps.views import sitemap @@ -13,131 +13,131 @@ urlpatterns = [ # Main pages dispatcher - url(r'^$', creationhome, name="creationhome"), + re_path(r'^$', creationhome, name="creationhome"), # Contributor part - url(r'^upload/$', upload_index, name="upload_index"), - url(r'^upload/tutorial/(\d+)/$', upload_tutorial, name="upload_tutorial"), - url(r'^upload/outline/(\d+)/$', upload_outline, name="upload_outline"), - url(r'^upload/script/(\d+)/$', upload_script, name="upload_script"), - url(r'^upload/timed-script/$', upload_timed_script, name="upload_timed_script"), - url(r'^upload/timed-script/(\d+)/save/$', save_timed_script, name="save_timed_script"), - url(r'^upload/keywords/(\d+)/$', upload_keywords, name="upload_keywords"), - url(r'^upload/prerequisite/(\d+)/$', upload_prerequisite, name="upload_prerequisite"), - url(r'^upload/component/(\d+)/(\w+)/$', upload_component, name="upload_component"), - url(r'^mark/notrequired/(\d+)/(\d+)/(\w+)/$', mark_notrequired, name="mark_notrequired"), - url(r'^view/component/(\d+)/(\w+)/$', view_component, name="view_component"), - url(r'^upload/needimprovement/$', tutorials_needimprovement, name="tutorials_needimprovement"), - url(r'^upload/contributed/$', tutorials_contributed, name="tutorials_contributed"), - url(r'^upload/pending-tutorials/$', tutorials_pending, name="tutorials_pending"), - url(r'^upload-publish-outline/$', upload_publish_outline, name="upload_publish_outline"), - url(r'^list-missing-script/$', list_missing_script, name="list_missing_script"), - url(r'^ajax-upload-foss/$', ajax_upload_foss, name="ajax_upload_foss"), - url(r'^ajax-upload-prerequisite/$', ajax_upload_prerequisite, name="ajax_upload_prerequisite"), - url(r'^ajax-upload-timed-script/$', ajax_upload_timed_script, name="ajax_upload_timed_script"), - url(r'^ajax-get-keywords/$', ajax_get_keywords, name="ajax_get_keywords"), - url(r'^view_brochure/$', view_brochure, name="view_brochure"), + re_path(r'^upload/$', upload_index, name="upload_index"), + re_path(r'^upload/tutorial/(\d+)/$', upload_tutorial, name="upload_tutorial"), + re_path(r'^upload/outline/(\d+)/$', upload_outline, name="upload_outline"), + re_path(r'^upload/script/(\d+)/$', upload_script, name="upload_script"), + re_path(r'^upload/timed-script/$', upload_timed_script, name="upload_timed_script"), + re_path(r'^upload/timed-script/(\d+)/save/$', save_timed_script, name="save_timed_script"), + re_path(r'^upload/keywords/(\d+)/$', upload_keywords, name="upload_keywords"), + re_path(r'^upload/prerequisite/(\d+)/$', upload_prerequisite, name="upload_prerequisite"), + re_path(r'^upload/component/(\d+)/(\w+)/$', upload_component, name="upload_component"), + re_path(r'^mark/notrequired/(\d+)/(\d+)/(\w+)/$', mark_notrequired, name="mark_notrequired"), + re_path(r'^view/component/(\d+)/(\w+)/$', view_component, name="view_component"), + re_path(r'^upload/needimprovement/$', tutorials_needimprovement, name="tutorials_needimprovement"), + re_path(r'^upload/contributed/$', tutorials_contributed, name="tutorials_contributed"), + re_path(r'^upload/pending-tutorials/$', tutorials_pending, name="tutorials_pending"), + re_path(r'^upload-publish-outline/$', upload_publish_outline, name="upload_publish_outline"), + re_path(r'^list-missing-script/$', list_missing_script, name="list_missing_script"), + re_path(r'^ajax-upload-foss/$', ajax_upload_foss, name="ajax_upload_foss"), + re_path(r'^ajax-upload-prerequisite/$', ajax_upload_prerequisite, name="ajax_upload_prerequisite"), + re_path(r'^ajax-upload-timed-script/$', ajax_upload_timed_script, name="ajax_upload_timed_script"), + re_path(r'^ajax-get-keywords/$', ajax_get_keywords, name="ajax_get_keywords"), + re_path(r'^view_brochure/$', view_brochure, name="view_brochure"), # Admin Reviewer part - url(r'^admin-review/$', admin_review_index, name="admin_review_index"), - url(r'^admin-review/reviewed/$', admin_reviewed_video, name="admin_reviewed_video"), - url(r'^admin-review/video/(\d+)/$', admin_review_video, name="admin_review_video"), + re_path(r'^admin-review/$', admin_review_index, name="admin_review_index"), + re_path(r'^admin-review/reviewed/$', admin_reviewed_video, name="admin_reviewed_video"), + re_path(r'^admin-review/video/(\d+)/$', admin_review_video, name="admin_review_video"), # Domain Reviewer part - url(r'^domain-review/$', domain_review_index, name="domain_review_index"), - url(r'^domain-review/reviewed/$', domain_reviewed_tutorials, name="domain_reviewed_tutorials"), - url(r'^domain-review/tutorial/(\d+)/$', domain_review_tutorial, name="domain_review_tutorial"), - url(r'^domain-review/component/(\d+)/(\w+)/$', domain_review_component, name="domain_review_component"), + re_path(r'^domain-review/$', domain_review_index, name="domain_review_index"), + re_path(r'^domain-review/reviewed/$', domain_reviewed_tutorials, name="domain_reviewed_tutorials"), + re_path(r'^domain-review/tutorial/(\d+)/$', domain_review_tutorial, name="domain_review_tutorial"), + re_path(r'^domain-review/component/(\d+)/(\w+)/$', domain_review_component, name="domain_review_component"), # Quality Reviewer part - url(r'^quality-review/$', quality_review_index, name="quality_review_index"), - url(r'^quality-review/(\d+)/$', quality_review_index, name="quality_review_index"), - url(r'^quality-review/reviewed/$', quality_reviewed_tutorials, name="quality_reviewed_tutorials"), - url(r'^quality-review/tutorial/(\d+)/$', quality_review_tutorial, name="quality_review_tutorial"), - url(r'^quality-review/tutorial/publish/index/$', publish_tutorial_index, name="publish_tutorial_index"), - url(r'^quality-review/tutorial/publish/(\d+)/$', publish_tutorial, name="publish_tutorial"), - url(r'^quality-review/component/(\d+)/(\w+)/$', quality_review_component, name="quality_review_component"), - url(r'^public-review/tutorial/index/$', public_review_tutorial_index, name="public_review_tutorial_index"), - url(r'^public-review/tutorial/(\d+)/$', public_review_tutorial, name="public_review_tutorial"), - url(r'^public-review/publish/(\d+)/$', public_review_publish, name="public_review_publish"), - url(r'^public-review/mark-as-pending/(\d+)/$', public_review_mark_as_pending, name="public_review_mark_as_pending"), - url(r'^public-review/list/$', public_review_list, name="public_review_list"), + re_path(r'^quality-review/$', quality_review_index, name="quality_review_index"), + re_path(r'^quality-review/(\d+)/$', quality_review_index, name="quality_review_index"), + re_path(r'^quality-review/reviewed/$', quality_reviewed_tutorials, name="quality_reviewed_tutorials"), + re_path(r'^quality-review/tutorial/(\d+)/$', quality_review_tutorial, name="quality_review_tutorial"), + re_path(r'^quality-review/tutorial/publish/index/$', publish_tutorial_index, name="publish_tutorial_index"), + re_path(r'^quality-review/tutorial/publish/(\d+)/$', publish_tutorial, name="publish_tutorial"), + re_path(r'^quality-review/component/(\d+)/(\w+)/$', quality_review_component, name="quality_review_component"), + re_path(r'^public-review/tutorial/index/$', public_review_tutorial_index, name="public_review_tutorial_index"), + re_path(r'^public-review/tutorial/(\d+)/$', public_review_tutorial, name="public_review_tutorial"), + re_path(r'^public-review/publish/(\d+)/$', public_review_publish, name="public_review_publish"), + re_path(r'^public-review/mark-as-pending/(\d+)/$', public_review_mark_as_pending, name="public_review_mark_as_pending"), + re_path(r'^public-review/list/$', public_review_list, name="public_review_list"), # Administrator part - url(r'^role/requests/$', creation_list_role_requests, name="creation_list_role_requests"), - url(r'^role/lang_requests/$', creation_lang_list_role_requests, name="creation_lang_list_role_requests"), - url(r'^update-prerequisite/$', update_prerequisite, name="update_prerequisite"), - url(r'^update-keywords/$', update_keywords, name="update_keywords"), - url(r'^update-manual/(\w+)/$', update_sheet, name="update_sheet"), - url(r'^update-assignment/$', update_assignment, name="update_assignment"), - url(r'^update-thumbnail/$', update_thumbnail, name="update_thumbnail"), - url(r'^update-codefiles/$', update_codefiles, name="update_codefiles"), - url(r'^role/requests/([a-zA-Z-]+)/$', creation_list_role_requests, name="creation_list_role_requests"), - url(r'^role/lang_requests/([a-zA-Z-]+)/$', creation_lang_list_role_requests, name="creation_lang_list_role_requests"), - url(r'^role/accept/(?P\d+)/(?P\w+)/$', creation_accept_role_request, name="creation_accept_role_request"), - url(r'^role/reject/(?P\d+)/(?P\w+)/$', creation_reject_role_request, name="creation_reject_role_request"), - url(r'^role/revoke/([a-zA-Z-]+)/([0-9/]+)/$', creation_revoke_role_request, name="creation_revoke_role_request"), - url(r'^admin/tutorial/status/pending/$', creation_change_published_to_pending, name="creation_change_published_to_pending"), - url(r'^admin/tutorial/component/status/$', creation_change_component_status, name="creation_change_component_status"), - url(r'^ajax-publish-to-pending/$', ajax_publish_to_pending, name="ajax_publish_to_pending"), - url(r'^ajax-change-component-status/$', ajax_change_component_status, name="ajax_change_component_status"), - url(r'^ajax-manual-language/$', ajax_manual_language, name="ajax_manual_language"), - url(r'^ajax-get-tutorials/$', ajax_get_tutorials, name="ajax_get_tutorials"), - url(r'^update-common-component/$', update_common_component, name="update_common_component"), - url(r'^update_tutorials/$', update_tutorials, name="update_tutorials"), - url(r'^grant_role/$', grant_role, name="grant_role"), + re_path(r'^role/requests/$', creation_list_role_requests, name="creation_list_role_requests"), + re_path(r'^role/lang_requests/$', creation_lang_list_role_requests, name="creation_lang_list_role_requests"), + re_path(r'^update-prerequisite/$', update_prerequisite, name="update_prerequisite"), + re_path(r'^update-keywords/$', update_keywords, name="update_keywords"), + re_path(r'^update-manual/(\w+)/$', update_sheet, name="update_sheet"), + re_path(r'^update-assignment/$', update_assignment, name="update_assignment"), + re_path(r'^update-thumbnail/$', update_thumbnail, name="update_thumbnail"), + re_path(r'^update-codefiles/$', update_codefiles, name="update_codefiles"), + re_path(r'^role/requests/([a-zA-Z-]+)/$', creation_list_role_requests, name="creation_list_role_requests"), + re_path(r'^role/lang_requests/([a-zA-Z-]+)/$', creation_lang_list_role_requests, name="creation_lang_list_role_requests"), + re_path(r'^role/accept/(?P\d+)/(?P\w+)/$', creation_accept_role_request, name="creation_accept_role_request"), + re_path(r'^role/reject/(?P\d+)/(?P\w+)/$', creation_reject_role_request, name="creation_reject_role_request"), + re_path(r'^role/revoke/([a-zA-Z-]+)/([0-9/]+)/$', creation_revoke_role_request, name="creation_revoke_role_request"), + re_path(r'^admin/tutorial/status/pending/$', creation_change_published_to_pending, name="creation_change_published_to_pending"), + re_path(r'^admin/tutorial/component/status/$', creation_change_component_status, name="creation_change_component_status"), + re_path(r'^ajax-publish-to-pending/$', ajax_publish_to_pending, name="ajax_publish_to_pending"), + re_path(r'^ajax-change-component-status/$', ajax_change_component_status, name="ajax_change_component_status"), + re_path(r'^ajax-manual-language/$', ajax_manual_language, name="ajax_manual_language"), + re_path(r'^ajax-get-tutorials/$', ajax_get_tutorials, name="ajax_get_tutorials"), + re_path(r'^update-common-component/$', update_common_component, name="update_common_component"), + re_path(r'^update_tutorials/$', update_tutorials, name="update_tutorials"), + re_path(r'^grant_role/$', grant_role, name="grant_role"), # Common to Domain & Admin reviewer parts - url(r'^accept-all/(\w+)/(\d+)/$', accept_all, name="accept_all"), - url(r'^delete-notification/(\w+)/(\d+)/$', delete_creation_notification, name="delete_creation_notification"), - url(r'^clear-notifications/(\w+)/$', clear_creation_notification, name="clear_creation_notification"), - url(r'^tutorial/view/([0-9a-zA-Z-+%\(\).,\']+)/([0-9a-zA-Z-+%\(\).,\']+)/([a-zA-Z-]+)/$', creation_view_tutorial, name="creation_view_tutorial"), - url(r'^init/$', init_creation_app, name="init_creation_app"), - url(r'^role/add/([a-zA-Z-]+)/([0-9/]+)/$', creation_add_role, name="creation_add_role"), - url(r'^collaborate/$', collaborate, name="collaborate"), - url(r'^suggest-a-topic/$', suggest_topic, name="suggest_topic"), - url(r'^suggest-an-example/$', suggest_example, name="suggest_example"), - url(r'^report-missing-component/(\d+)/$', report_missing_component, name="report_missing_component"), - url(r'^report-missing-component/reply/(\d+)/$', report_missing_component_reply, name="report_missing_component_reply"), - url(r'^report-missing-component/list/$', report_missing_component_list, name="report_missing_component_list"), + re_path(r'^accept-all/(\w+)/(\d+)/$', accept_all, name="accept_all"), + re_path(r'^delete-notification/(\w+)/(\d+)/$', delete_creation_notification, name="delete_creation_notification"), + re_path(r'^clear-notifications/(\w+)/$', clear_creation_notification, name="clear_creation_notification"), + re_path(r'^tutorial/view/([0-9a-zA-Z-+%\(\).,\']+)/([0-9a-zA-Z-+%\(\).,\']+)/([a-zA-Z-]+)/$', creation_view_tutorial, name="creation_view_tutorial"), + re_path(r'^init/$', init_creation_app, name="init_creation_app"), + re_path(r'^role/add/([a-zA-Z-]+)/([0-9/]+)/$', creation_add_role, name="creation_add_role"), + re_path(r'^collaborate/$', collaborate, name="collaborate"), + re_path(r'^suggest-a-topic/$', suggest_topic, name="suggest_topic"), + re_path(r'^suggest-an-example/$', suggest_example, name="suggest_example"), + re_path(r'^report-missing-component/(\d+)/$', report_missing_component, name="report_missing_component"), + re_path(r'^report-missing-component/reply/(\d+)/$', report_missing_component_reply, name="report_missing_component_reply"), + re_path(r'^report-missing-component/list/$', report_missing_component_list, name="report_missing_component_list"), # Additional Views Created for Payment Module - url(r'payment/tutorials/$', list_all_published_tutorials, name="list_all_published_tutorials"), - url(r'payment/ajax/languages/$', load_languages, name="load_languages"), - url(r'payment/ajax/fosses/$', load_fosses, name="load_fosses"), - url(r'payment/due/$', list_all_due_tutorials, name="payment_due_tutorials"), - url(r'payment/honorarium/$', list_payment_honorarium, name="payment_honorarium_list"), - url(r'payment/honorarium/detail/(\d+)/$', detail_payment_honorarium, name="payment_honorarium_detail"), - url(r'hono_agreement/(?P\d+)/',honorarium_agreement,name='honorarium_agreement'), - url(r'honorarium/(?P\d+)/',honorarium,name='honorarium'), - url(r'hono_receipt/(?P\d+)/',honorarium_receipt,name='honorarium_receipt'), - url(r'add_details/',add_details,name='add_details'), - url(r'save_details/',save_details,name='save_details'), - url(r'file_checker/(?P[\w]+)/(?P[-\w]+)',file_checker,name='file_checker'), + re_path(r'payment/tutorials/$', list_all_published_tutorials, name="list_all_published_tutorials"), + re_path(r'payment/ajax/languages/$', load_languages, name="load_languages"), + re_path(r'payment/ajax/fosses/$', load_fosses, name="load_fosses"), + re_path(r'payment/due/$', list_all_due_tutorials, name="payment_due_tutorials"), + re_path(r'payment/honorarium/$', list_payment_honorarium, name="payment_honorarium_list"), + re_path(r'payment/honorarium/detail/(\d+)/$', detail_payment_honorarium, name="payment_honorarium_detail"), + re_path(r'hono_agreement/(?P\d+)/',honorarium_agreement,name='honorarium_agreement'), + re_path(r'honorarium/(?P\d+)/',honorarium,name='honorarium'), + re_path(r'hono_receipt/(?P\d+)/',honorarium_receipt,name='honorarium_receipt'), + re_path(r'add_details/',add_details,name='add_details'), + re_path(r'save_details/',save_details,name='save_details'), + re_path(r'file_checker/(?P[\w]+)/(?P[-\w]+)',file_checker,name='file_checker'), #Bidding Module - url(r'^rate_contributors/$',rate_contributors,name = "rate_contributors"), - url(r'^add_contributorrating',add_contributorrating,name = "add_contributorrating"), - url(r'^allocate_tutorial/(?P\w+)/(?P\w+)/$', allocate_tutorial, name="allocate_tutorial"), - url(r'^allocate_tutorial_manager/(?P\w+)/(?P\w+)/$', allocate_tutorial, name="allocate_tutorial_manager"), - #url(r'^refresh_tutorials/$',refresh_tutorials,name = "refresh_tutorials"), - #url(r'^revoke_allocated_tutorial/(?P\w+)/(?P\w+)/(?P\w+)/(?P\w+)/(?P\w+)/$', revoke_allocated_tutorial, name="revoke_allocated_tutorial"), - url(r'^revoke_allocated_tutorial/$', revoke_allocated_tutorial, name="revoke_allocated_tutorial"), - url(r'^extend_submission_date/$', extend_submission_date, name="extend_submission_date"), - url(r'^allocate/(?P\d+)/(?P\d+)/(?P\d+)/(?P\d+)/$', allocate, name="allocate"), - url(r'^allocate_foss/(?P\d+)/(?P\w+)/(?P\d+)/(?P\w+)/(?P\d+)/$', allocate_foss, name="allocate_foss"), - url(r'^get_languages/(?P\w+)$', get_languages, name="get_languages"), - url(r'^get_tutorials/(?P\w+)/(?P\w+)$', get_tutorials, name="get_tutorials"), - url(r'^get_other_languages/(?P\w+)$', get_other_languages, name="get_other_languages"), - url(r'^get_domain_languages/(?P\w+)$', get_domain_languages, name="get_domain_languages"), - url(r'^get_quality_languages/(?P\w+)$', get_quality_languages, name="get_quality_languages"), - url(r'^refresh_roles/$', refresh_roles, name="refresh_roles"), - url(r'^get_rated_contributors/$', get_rated_contributors, name="get_rated_contributors"), - url(r'^update_contributors/$', update_contributors, name="update_contributors"), + re_path(r'^rate_contributors/$',rate_contributors,name = "rate_contributors"), + re_path(r'^add_contributorrating',add_contributorrating,name = "add_contributorrating"), + re_path(r'^allocate_tutorial/(?P\w+)/(?P\w+)/$', allocate_tutorial, name="allocate_tutorial"), + re_path(r'^allocate_tutorial_manager/(?P\w+)/(?P\w+)/$', allocate_tutorial, name="allocate_tutorial_manager"), + #re_path(r'^refresh_tutorials/$',refresh_tutorials,name = "refresh_tutorials"), + #re_path(r'^revoke_allocated_tutorial/(?P\w+)/(?P\w+)/(?P\w+)/(?P\w+)/(?P\w+)/$', revoke_allocated_tutorial, name="revoke_allocated_tutorial"), + re_path(r'^revoke_allocated_tutorial/$', revoke_allocated_tutorial, name="revoke_allocated_tutorial"), + re_path(r'^extend_submission_date/$', extend_submission_date, name="extend_submission_date"), + re_path(r'^allocate/(?P\d+)/(?P\d+)/(?P\d+)/(?P\d+)/$', allocate, name="allocate"), + re_path(r'^allocate_foss/(?P\d+)/(?P\w+)/(?P\d+)/(?P\w+)/(?P\d+)/$', allocate_foss, name="allocate_foss"), + re_path(r'^get_languages/(?P\w+)$', get_languages, name="get_languages"), + re_path(r'^get_tutorials/(?P\w+)/(?P\w+)$', get_tutorials, name="get_tutorials"), + re_path(r'^get_other_languages/(?P\w+)$', get_other_languages, name="get_other_languages"), + re_path(r'^get_domain_languages/(?P\w+)$', get_domain_languages, name="get_domain_languages"), + re_path(r'^get_quality_languages/(?P\w+)$', get_quality_languages, name="get_quality_languages"), + re_path(r'^refresh_roles/$', refresh_roles, name="refresh_roles"), + re_path(r'^get_rated_contributors/$', get_rated_contributors, name="get_rated_contributors"), + re_path(r'^update_contributors/$', update_contributors, name="update_contributors"), #creation sitemaps - url(r'^sitemap\.xml/$', sitemap, {'sitemaps' : tutorial_sitemaps } , name='tutorial_sitemap'), + re_path(r'^sitemap\.xml/$', sitemap, {'sitemaps' : tutorial_sitemaps } , name='tutorial_sitemap'), ] diff --git a/creation/views.py b/creation/views.py index ec19f88e0..14a8b9c7e 100644 --- a/creation/views.py +++ b/creation/views.py @@ -37,7 +37,7 @@ from django.shortcuts import render,redirect from django.db.models import Count, F, Q from django.views.generic.list import ListView -from django.core.urlresolvers import reverse +from django.urls import reverse from django.db import IntegrityError # Spoken Tutorial Stuff @@ -55,7 +55,6 @@ from django.contrib.auth.models import User import itertools from django.utils.html import format_html -from django.core.urlresolvers import reverse def humansize(nbytes): suffixes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'] diff --git a/requirements-common.txt b/requirements-common.txt index c598c0602..d871e34db 100644 --- a/requirements-common.txt +++ b/requirements-common.txt @@ -8,7 +8,7 @@ cachetools==2.1.0 captcha==0.2.4 certifi==2022.12.7 chardet==3.0.4 -Django==1.11 +Django==3.2.25 django-appconf==1.0.2 django-compressor==2.2 django-extensions==2.1.3 diff --git a/spoken/settings.py b/spoken/settings.py index aed0b2341..dba75a4bf 100644 --- a/spoken/settings.py +++ b/spoken/settings.py @@ -56,8 +56,6 @@ COMPRESS_ENABLED = True -TEMPLATE_DEBUG = True - ALLOWED_HOSTS = ['*'] # Application definition @@ -130,6 +128,8 @@ # Database # https://docs.djangoproject.com/en/1.11/ref/settings/#databases +DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' + CONN_MAX_AGE = DB_CONN_MAX_AGE_DEFAULT DATABASES = { @@ -311,17 +311,6 @@ REPORT_BUILDER_EXCLUDE = ['user'] # Allow all models except User to be accessed REPORT_BUILDER_ASYNC_REPORT = False -TEMPLATE_CONTEXT_PROCESSORS = ( - "django.contrib.auth.context_processors.auth", - "django.core.context_processors.debug", - "django.core.context_processors.i18n", - "django.core.context_processors.media", - "django.core.context_processors.static", - "django.core.context_processors.tz", - "django.contrib.messages.context_processors.messages", - "django.core.context_processors.request" -) - STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', diff --git a/spoken/urls.py b/spoken/urls.py index 2d00a93a3..66a03fd31 100644 --- a/spoken/urls.py +++ b/spoken/urls.py @@ -2,7 +2,7 @@ # Third Party Stuff from . import settings -from django.conf.urls import include, url +from django.urls import include, re_path from django.contrib import admin from django.views.generic import TemplateView from spoken.views import * @@ -17,53 +17,53 @@ admin.autodiscover() urlpatterns = [ - url(r'^robots\.txt', robots_txt, name='robots-txt'), - #url(r'^sitemap\.xml$', TemplateView.as_view(template_name='sitemap.xml', content_type='text/xml')), - url(r'^sitemap\.html$', sitemap, name='sitemap'), + re_path(r'^robots\.txt', robots_txt, name='robots-txt'), + #re_path(r'^sitemap\.xml$', TemplateView.as_view(template_name='sitemap.xml', content_type='text/xml')), + re_path(r'^sitemap\.html$', sitemap, name='sitemap'), # Examples: - url(r'^addu/$', add_user, name='addu'), - url(r'^logs/(?P[\w-]+)/download/$', download_log, name='download_log'), - # url(r'^NMEICT-Intro/$', nmeict_intro, name="nmeict_intro"), - url(r'^tutorial-search/$', tutorial_search, name="tutorial-search"), - url(r'^series/$', series_foss, name="series"), - url(r'^series_tutorial-search/$', series_tutorial_search, name="series-tutorial-search"), - url(r'^archived/$', archived_foss, name="archived"), - url(r'^archived_tutorial-search/$', archived_tutorial_search, name="archived-tutorial-search"), - url(r'^news/(?P[\w-]+)/$', news, name="news"), - url(r'^news/(?P[\w-]+)/(?P[\w-]+)/$', news_view, name="news_view"), - url(r'^keyword-search/$', keyword_search, name="keyword-search"), - url(r'^watch/([0-9a-zA-Z-+%\(\).,\' ]+)/([0-9a-zA-Z-+%\(\).,\' ]+)/([a-zA-Z-]+)/$', watch_tutorial, name="watch_tutorial"), - url(r'^What_is_a_Spoken_Tutorial/$', what_is_spoken_tutorial, name="what_is_spoken_tutorial"), - url(r'^get-language/(?P[\w-]+)/$', get_language, name="get_language"), - url(r'^testimonials/new/$', testimonials_new, name="testimonials_new"), - url(r'^testimonials/$', testimonials, name="testimonials"), - url(r'^testimonials/(?P[\w]+)/$', testimonials, name="testimonials"), - url(r'^testimonials/media/(?P[\w ]+)/$', foss_testimonials, name="foss_testimonials"), - - url(r'^admin/testimonials/$', admin_testimonials, name="admin_testimonials"), - url(r'^admin/testimonials/(?P\d+)/edit/$', admin_testimonials_edit, name="admin_testimonials_edit"), - url(r'^testimonials/new/media/(?P[\w]+)/$', testimonials_new_media, name="testimonials_new_media"), - url(r'^admin/testimonials/(?P\d+)/delete/$', admin_testimonials_delete, name="admin_testimonials_delete"), - url(r'^admin/testimonials/media/(?P\d+)/delete/$', admin_testimonials_media_delete,name="admin_testimonials_media_delete"), - url(r'^brochures/$', ViewBrochures, name="view_brochures"), - url(r'^$', home, name='home'), - url(r'^home/$', home, name='home'), - url(r'^site-feedback/$', site_feedback, name='site_feedback'), - url(r'^learn-Drupal/$', learndrupal, name='learndrupal'), - # url(r'^learn-Drupal./$', learndrupal', name='learndrupal'), - # url(r'^induction_old/$', induction_2017', name='induction_2017'), - url(r'^induction/$', induction_2017_new, name='induction_2017_new'), - # url(r'^induction/expression_of_intrest/$', expression_of_intrest', name='expression_of_intrest'), - url(r'^induction/expression_of_intrest/$', expression_of_intrest, name='expression_of_intrest'), - url(r'^induction/eoi/$', expression_of_intrest_new, name='expression_of_intrest_new'), - url(r'^admin/testimonials/media/(?P\d+)/edit/$', admin_testimonials_media_edit, name="admin_testimonials_media_edit"), - - # url(r'^spoken/', include('spoken.foo.urls')), + re_path(r'^addu/$', add_user, name='addu'), + re_path(r'^logs/(?P[\w-]+)/download/$', download_log, name='download_log'), + # re_path(r'^NMEICT-Intro/$', nmeict_intro, name="nmeict_intro"), + re_path(r'^tutorial-search/$', tutorial_search, name="tutorial-search"), + re_path(r'^series/$', series_foss, name="series"), + re_path(r'^series_tutorial-search/$', series_tutorial_search, name="series-tutorial-search"), + re_path(r'^archived/$', archived_foss, name="archived"), + re_path(r'^archived_tutorial-search/$', archived_tutorial_search, name="archived-tutorial-search"), + re_path(r'^news/(?P[\w-]+)/$', news, name="news"), + re_path(r'^news/(?P[\w-]+)/(?P[\w-]+)/$', news_view, name="news_view"), + re_path(r'^keyword-search/$', keyword_search, name="keyword-search"), + re_path(r'^watch/([0-9a-zA-Z-+%\(\).,\' ]+)/([0-9a-zA-Z-+%\(\).,\' ]+)/([a-zA-Z-]+)/$', watch_tutorial, name="watch_tutorial"), + re_path(r'^What_is_a_Spoken_Tutorial/$', what_is_spoken_tutorial, name="what_is_spoken_tutorial"), + re_path(r'^get-language/(?P[\w-]+)/$', get_language, name="get_language"), + re_path(r'^testimonials/new/$', testimonials_new, name="testimonials_new"), + re_path(r'^testimonials/$', testimonials, name="testimonials"), + re_path(r'^testimonials/(?P[\w]+)/$', testimonials, name="testimonials"), + re_path(r'^testimonials/media/(?P[\w ]+)/$', foss_testimonials, name="foss_testimonials"), + + re_path(r'^admin/testimonials/$', admin_testimonials, name="admin_testimonials"), + re_path(r'^admin/testimonials/(?P\d+)/edit/$', admin_testimonials_edit, name="admin_testimonials_edit"), + re_path(r'^testimonials/new/media/(?P[\w]+)/$', testimonials_new_media, name="testimonials_new_media"), + re_path(r'^admin/testimonials/(?P\d+)/delete/$', admin_testimonials_delete, name="admin_testimonials_delete"), + re_path(r'^admin/testimonials/media/(?P\d+)/delete/$', admin_testimonials_media_delete,name="admin_testimonials_media_delete"), + re_path(r'^brochures/$', ViewBrochures, name="view_brochures"), + re_path(r'^$', home, name='home'), + re_path(r'^home/$', home, name='home'), + re_path(r'^site-feedback/$', site_feedback, name='site_feedback'), + re_path(r'^learn-Drupal/$', learndrupal, name='learndrupal'), + # re_path(r'^learn-Drupal./$', learndrupal', name='learndrupal'), + # re_path(r'^induction_old/$', induction_2017', name='induction_2017'), + re_path(r'^induction/$', induction_2017_new, name='induction_2017_new'), + # re_path(r'^induction/expression_of_intrest/$', expression_of_intrest', name='expression_of_intrest'), + re_path(r'^induction/expression_of_intrest/$', expression_of_intrest, name='expression_of_intrest'), + re_path(r'^induction/eoi/$', expression_of_intrest_new, name='expression_of_intrest_new'), + re_path(r'^admin/testimonials/media/(?P\d+)/edit/$', admin_testimonials_media_edit, name="admin_testimonials_media_edit"), + + # re_path(r'^spoken/', include('spoken.foo.urls')), # Uncomment the admin/doc line below to enable admin documentation: - # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), + # re_path(r'^admin/doc/', include('django.contrib.admindocs.urls')), # Uncomment the next line to enable the admin: - url(r'^admin/', include(admin.site.urls)), + re_path(r'^admin/', admin.site.urls), #subscription urls url(r'^payment/callback/$', payment_callback, name="payment_callback"), From 42a70babed437d5fd0160450e5cc20ab79afb358 Mon Sep 17 00:00:00 2001 From: Naman Sharma Date: Thu, 10 Sep 2026 12:18:10 +0000 Subject: [PATCH 02/12] fixed django 3.2 compatibility issues across other apps, urls and old migrations --- cdeep/models.py | 56 +++--- certificate/migrations/0001_initial.py | 3 +- .../migrations/0003_auto_20160816_1148.py | 3 +- cms/migrations/0001_initial.py | 25 +-- cms/models.py | 3 - cms/services.py | 2 +- cms/templatetags/announcements.py | 2 +- creation/migrations/0001_initial.py | 139 +++++++------- .../migrations/0002_auto_20170107_1845.py | 3 +- .../migrations/0006_auto_20170329_1132.py | 5 +- .../migrations/0009_auto_20170612_1543.py | 3 +- donate/models.py | 4 +- donate/payment.py | 2 +- donate/subscription.py | 2 +- events/decorators.py | 5 +- events/migrations/0001_initial.py | 173 +++++++++--------- events/migrations/0002_auto_20150623_1627.py | 3 +- .../migrations/0003_testattendance_student.py | 3 +- events/migrations/0005_auto_20150731_1230.py | 3 +- events/migrations/0006_auto_20150731_1340.py | 3 +- events/migrations/0008_auto_20150731_1648.py | 3 +- events/migrations/0009_auto_20150806_1820.py | 9 +- events/migrations/0012_auto_20150908_1722.py | 5 +- ...kshopfeedbackpost_stworkshopfeedbackpre.py | 5 +- events/migrations/0018_auto_20170615_1654.py | 3 +- events/migrations/0020_inductioninterest.py | 5 +- events/migrations/0027_inductionfinallist.py | 3 +- events/migrations/0029_mumbaistudents.py | 5 +- events/migrations/0030_accountexecutive.py | 7 +- events/migrations/0031_auto_20180720_1500.py | 5 +- .../0032_paymenttransactiondetails.py | 5 +- events/migrations/0036_auto_20180824_1241.py | 3 +- events/models.py | 2 +- requirements-common.txt | 16 +- requirements-dev.txt | 2 +- requirements-py3.txt | 6 +- spoken/urls.py | 101 +++++----- spoken/views.py | 2 +- statistics/migrations/0001_initial.py | 3 +- workshop/models.py | 7 +- youtube/migrations/0001_initial.py | 3 +- 41 files changed, 334 insertions(+), 308 deletions(-) diff --git a/cdeep/models.py b/cdeep/models.py index 011f3e7a2..ce742cc59 100644 --- a/cdeep/models.py +++ b/cdeep/models.py @@ -41,8 +41,8 @@ class Meta(object): class UsersRoles(models.Model): - uid = models.ForeignKey(Users, db_column='uid') - rid = models.ForeignKey(Role, db_column='rid') + uid = models.ForeignKey(Users, db_column='uid', on_delete=models.DO_NOTHING) + rid = models.ForeignKey(Role, db_column='rid', on_delete=models.DO_NOTHING) class Meta(object): db_table = 'users_roles' @@ -83,22 +83,22 @@ class Meta(object): class TutorialCommonContents(models.Model): id = models.IntegerField(primary_key=True) - tutorial_detail = models.ForeignKey(TutorialDetails) + tutorial_detail = models.ForeignKey(TutorialDetails, on_delete=models.DO_NOTHING) tutorial_slide = models.TextField() - tutorial_slide_uid = models.ForeignKey(Users, related_name='slides', db_column='tutorial_slide_uid') + tutorial_slide_uid = models.ForeignKey(Users, related_name='slides', db_column='tutorial_slide_uid', on_delete=models.DO_NOTHING) tutorial_slide_status = models.IntegerField() tutorial_code = models.TextField() - tutorial_code_uid = models.ForeignKey(Users, related_name='codes', db_column='tutorial_code_uid') + tutorial_code_uid = models.ForeignKey(Users, related_name='codes', db_column='tutorial_code_uid', on_delete=models.DO_NOTHING) tutorial_code_status = models.IntegerField() tutorial_assignment = models.TextField() - tutorial_assignment_uid = models.ForeignKey(Users, related_name='assignments', db_column='tutorial_assignment_uid') + tutorial_assignment_uid = models.ForeignKey(Users, related_name='assignments', db_column='tutorial_assignment_uid', on_delete=models.DO_NOTHING) tutorial_assignment_status = models.IntegerField() tutorial_prerequisit = models.IntegerField() tutorial_prerequisit_uid = models.ForeignKey( - Users, related_name='prerequisite', db_column='tutorial_prerequisit_uid') + Users, related_name='prerequisite', db_column='tutorial_prerequisit_uid', on_delete=models.DO_NOTHING) tutorial_prerequisit_status = models.IntegerField() tutorial_keywords = models.TextField() - tutorial_keywords_uid = models.ForeignKey(Users, related_name='keywords', db_column='tutorial_keywords_uid') + tutorial_keywords_uid = models.ForeignKey(Users, related_name='keywords', db_column='tutorial_keywords_uid', on_delete=models.DO_NOTHING) class Meta(object): db_table = 'tutorial_common_contents' @@ -107,21 +107,21 @@ class Meta(object): class TutorialResources(models.Model): id = models.IntegerField(primary_key=True) - tutorial_detail = models.ForeignKey(TutorialDetails) - uid = models.ForeignKey(Users, db_column='uid') + tutorial_detail = models.ForeignKey(TutorialDetails, on_delete=models.DO_NOTHING) + uid = models.ForeignKey(Users, db_column='uid', on_delete=models.DO_NOTHING) language = models.CharField(max_length=50) upload_time = models.DateTimeField() reviewer = models.CharField(max_length=400) - tutorial_content = models.ForeignKey(TutorialCommonContents) + tutorial_content = models.ForeignKey(TutorialCommonContents, on_delete=models.DO_NOTHING) tutorial_outline = models.TextField() - tutorial_outline_uid = models.ForeignKey(Users, related_name='outlines', db_column='tutorial_outline_uid') + tutorial_outline_uid = models.ForeignKey(Users, related_name='outlines', db_column='tutorial_outline_uid', on_delete=models.DO_NOTHING) tutorial_outline_status = models.IntegerField() tutorial_script = models.TextField() - tutorial_script_uid = models.ForeignKey(Users, related_name='scripts', db_column='tutorial_script_uid') + tutorial_script_uid = models.ForeignKey(Users, related_name='scripts', db_column='tutorial_script_uid', on_delete=models.DO_NOTHING) tutorial_script_status = models.IntegerField() tutorial_script_timed = models.TextField() tutorial_video = models.TextField() - tutorial_video_uid = models.ForeignKey(Users, related_name='videos', db_column='tutorial_video_uid') + tutorial_video_uid = models.ForeignKey(Users, related_name='videos', db_column='tutorial_video_uid', on_delete=models.DO_NOTHING) tutorial_video_status = models.IntegerField() tutorial_status = models.CharField(max_length=50) cvideo_version = models.IntegerField() @@ -135,8 +135,8 @@ class Meta(object): class TutorialDomainReviewerRoles(models.Model): id = models.IntegerField(primary_key=True) - uid = models.ForeignKey(Users, db_column='uid') - language = models.ForeignKey(TutorialLanguages) + uid = models.ForeignKey(Users, db_column='uid', on_delete=models.DO_NOTHING) + language = models.ForeignKey(TutorialLanguages, on_delete=models.DO_NOTHING) class Meta(object): db_table = 'tutorial_domain_reviewer_roles' @@ -145,8 +145,8 @@ class Meta(object): class TutorialQualityRoles(models.Model): id = models.IntegerField(primary_key=True) - uid = models.ForeignKey(Users, db_column='uid') - language = models.ForeignKey(TutorialLanguages) + uid = models.ForeignKey(Users, db_column='uid', on_delete=models.DO_NOTHING) + language = models.ForeignKey(TutorialLanguages, on_delete=models.DO_NOTHING) class Meta(object): db_table = 'tutorial_quality_roles' @@ -155,7 +155,7 @@ class Meta(object): class TutorialUpdateLog(models.Model): id = models.IntegerField(primary_key=True) - tutorial_resources = models.ForeignKey(TutorialResources) + tutorial_resources = models.ForeignKey(TutorialResources, on_delete=models.DO_NOTHING) update_time = models.DateTimeField() updated_by = models.CharField(max_length=255) updated_content = models.CharField(max_length=255) @@ -167,8 +167,8 @@ class Meta(object): class CTutorialMissingComponent(models.Model): id = models.IntegerField(primary_key=True) - uid = models.ForeignKey(Users, db_column='uid') - trid = models.ForeignKey(TutorialResources, db_column='trid') + uid = models.ForeignKey(Users, db_column='uid', on_delete=models.DO_NOTHING) + trid = models.ForeignKey(TutorialResources, db_column='trid', on_delete=models.DO_NOTHING) component = models.CharField(max_length=15) type = models.IntegerField() remarks = models.TextField() @@ -186,7 +186,7 @@ class Meta(object): class CTutorialMissingComponentReply(models.Model): id = models.IntegerField(primary_key=True) missing_component_id = models.IntegerField() - uid = models.ForeignKey(Users, db_column='uid') + uid = models.ForeignKey(Users, db_column='uid', on_delete=models.DO_NOTHING) reply_message = models.TextField() created = models.DateTimeField() @@ -197,8 +197,8 @@ class Meta(object): class TutorialPublicReview(models.Model): id = models.IntegerField(primary_key=True) - uid = models.ForeignKey(Users, db_column='uid') - trid = models.ForeignKey(TutorialResources, db_column='trid') + uid = models.ForeignKey(Users, db_column='uid', on_delete=models.DO_NOTHING) + trid = models.ForeignKey(TutorialResources, db_column='trid', on_delete=models.DO_NOTHING) date_time = models.DateTimeField() component = models.CharField(max_length=20) comment = models.TextField() @@ -210,7 +210,7 @@ class Meta(object): class TutorialPublicReviewVideo(models.Model): id = models.IntegerField(primary_key=True) - tutorial_public_review = models.ForeignKey(TutorialPublicReview) + tutorial_public_review = models.ForeignKey(TutorialPublicReview, on_delete=models.DO_NOTHING) item = models.IntegerField() everywhere = models.IntegerField() video_time = models.TimeField() @@ -222,7 +222,7 @@ class Meta(object): class UserRatings(models.Model): id = models.IntegerField(primary_key=True) - uid = models.ForeignKey(Users, db_column='uid') + uid = models.ForeignKey(Users, db_column='uid', on_delete=models.DO_NOTHING) page_id = models.IntegerField() rated_date = models.DateField() rating = models.BigIntegerField() @@ -234,8 +234,8 @@ class Meta(object): class VideoComments(models.Model): id = models.IntegerField(primary_key=True) - tutorial_resource = models.ForeignKey(TutorialResources) - uid = models.ForeignKey(Users, db_column='uid') + tutorial_resource = models.ForeignKey(TutorialResources, on_delete=models.DO_NOTHING) + uid = models.ForeignKey(Users, db_column='uid', on_delete=models.DO_NOTHING) comments = models.TextField() created_at = models.DateTimeField() diff --git a/certificate/migrations/0001_initial.py b/certificate/migrations/0001_initial.py index 0ab03a4b0..01b469c10 100644 --- a/certificate/migrations/0001_initial.py +++ b/certificate/migrations/0001_initial.py @@ -4,6 +4,7 @@ # Third Party Stuff from django.conf import settings from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -43,7 +44,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('uin', models.CharField(max_length=50)), ('attendance', models.NullBooleanField()), - ('user', models.OneToOneField(to=settings.AUTH_USER_MODEL)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ }, diff --git a/certificate/migrations/0003_auto_20160816_1148.py b/certificate/migrations/0003_auto_20160816_1148.py index 675691860..c74923164 100644 --- a/certificate/migrations/0003_auto_20160816_1148.py +++ b/certificate/migrations/0003_auto_20160816_1148.py @@ -3,6 +3,7 @@ # Third Party Stuff from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -306,7 +307,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='answer', name='question', - field=models.ForeignKey(to='certificate.Question'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='certificate.Question'), preserve_default=True, ), migrations.AddField( diff --git a/cms/migrations/0001_initial.py b/cms/migrations/0001_initial.py index e3b5098a1..94d5c1c97 100644 --- a/cms/migrations/0001_initial.py +++ b/cms/migrations/0001_initial.py @@ -7,6 +7,7 @@ # Third Party Stuff from django.conf import settings from django.db import migrations, models +import django.db.models.deletion # Spoken Tutorial Stuff import cms.models @@ -48,7 +49,7 @@ class Migration(migrations.Migration): ('source_link', models.URLField(max_length=255, null=True, blank=True)), ('event_date', models.DateTimeField()), ('created', models.DateTimeField(auto_now_add=True)), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -76,7 +77,7 @@ class Migration(migrations.Migration): ('weight', models.PositiveIntegerField(default=3)), ('created', models.DateTimeField()), ('updated', models.DateTimeField()), - ('created_by', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': 'New', @@ -100,7 +101,7 @@ class Migration(migrations.Migration): ('expiry_date', models.DateField()), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -132,11 +133,11 @@ class Migration(migrations.Migration): ('thumb', models.FileField(null=True, upload_to=cms.models.profile_picture_thumb, blank=True)), ('address', models.TextField(null=True)), ('created', models.DateTimeField(auto_now_add=True)), - ('city', models.ForeignKey(to='events.City', null=True)), - ('district', models.ForeignKey(to='events.District', null=True)), - ('location', models.ForeignKey(to='events.Location', null=True)), - ('state', models.ForeignKey(to='events.State', null=True)), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('city', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.City', null=True)), + ('district', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.District', null=True)), + ('location', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Location', null=True)), + ('state', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.State', null=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -159,22 +160,22 @@ class Migration(migrations.Migration): ('target_new', models.BooleanField()), ('visible', models.BooleanField()), ('created', models.DateTimeField(auto_now_add=True)), - ('nav', models.ForeignKey(to='cms.Nav')), + ('nav', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cms.Nav')), ], ), migrations.AddField( model_name='news', name='news_type', - field=models.ForeignKey(to='cms.NewsType'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cms.NewsType'), ), migrations.AddField( model_name='news', name='state', - field=models.ForeignKey(blank=True, to='events.State', null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, blank=True, to='events.State', null=True), ), migrations.AddField( model_name='block', name='block_location', - field=models.ForeignKey(to='cms.Block_Location'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cms.Block_Location'), ), ] diff --git a/cms/models.py b/cms/models.py index 517b6b254..6abf2d449 100644 --- a/cms/models.py +++ b/cms/models.py @@ -8,7 +8,6 @@ # Third Party Stuff from django.contrib.auth.models import User from django.db import models -from django.utils.encoding import python_2_unicode_compatible # Spoken Tutorial Stuff from events.models import City, District, Location, State @@ -53,7 +52,6 @@ class Page(models.Model): visible = models.BooleanField() created = models.DateTimeField(auto_now_add=True) -@python_2_unicode_compatible class Block_Location(models.Model): name = models.CharField(max_length=255) visible = models.BooleanField() @@ -109,7 +107,6 @@ class Notification(models.Model): created = models.DateTimeField(auto_now_add=True) updated = models.DateTimeField(auto_now = True) -@python_2_unicode_compatible class NewsType(models.Model): name = models.CharField(max_length = 50) slug = models.CharField(max_length = 50) diff --git a/cms/services.py b/cms/services.py index 2c2fb70e9..96339c6c8 100644 --- a/cms/services.py +++ b/cms/services.py @@ -27,7 +27,7 @@ def get_user_email(email): user = User.objects.filter(email__iexact=email) if len(user) == 1: return user[0] - return User.objects.get(email=email).first() + return User.objects.filter(email=email).first() except ObjectDoesNotExist: return None diff --git a/cms/templatetags/announcements.py b/cms/templatetags/announcements.py index 440d43735..a5e257387 100644 --- a/cms/templatetags/announcements.py +++ b/cms/templatetags/announcements.py @@ -8,7 +8,7 @@ register = template.Library() -@register.assignment_tag +@register.simple_tag def get_notifications(): return Notification.objects.filter(Q(start_date__lte=dt.datetime.today()) & Q( expiry_date__gte=dt.datetime.today())).order_by('expiry_date') diff --git a/creation/migrations/0001_initial.py b/creation/migrations/0001_initial.py index 3858c2025..06b8ea637 100644 --- a/creation/migrations/0001_initial.py +++ b/creation/migrations/0001_initial.py @@ -4,6 +4,7 @@ # Third Party Stuff from django.conf import settings from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -152,7 +153,7 @@ class Migration(migrations.Migration): ('status', models.BooleanField(max_length=2)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ('foss',), @@ -167,7 +168,7 @@ class Migration(migrations.Migration): ('code', models.CharField(default=b'en', max_length=10)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ('name',), @@ -208,8 +209,8 @@ class Migration(migrations.Migration): ('playlist_id', models.CharField(max_length=255)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('foss', models.ForeignKey(to='creation.FossCategory')), - ('language', models.ForeignKey(to='creation.Language')), + ('foss', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory')), + ('language', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language')), ], options={ 'verbose_name': 'Playlist Info', @@ -222,7 +223,7 @@ class Migration(migrations.Migration): ('item_id', models.CharField(max_length=255)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('playlist', models.ForeignKey(to='creation.PlaylistInfo')), + ('playlist', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.PlaylistInfo')), ], options={ 'verbose_name': 'Playlist Item', @@ -258,9 +259,9 @@ class Migration(migrations.Migration): ('status', models.BooleanField()), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('foss_category', models.ForeignKey(to='creation.FossCategory')), - ('language', models.ForeignKey(to='creation.Language')), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('foss_category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory')), + ('language', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': 'Quality Reviewer Role', @@ -283,8 +284,8 @@ class Migration(migrations.Migration): ('status', models.PositiveSmallIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('approved_user', models.ForeignKey(related_name='approved_user', blank=True, to=settings.AUTH_USER_MODEL, null=True)), - ('user', models.ForeignKey(related_name='user', to=settings.AUTH_USER_MODEL)), + ('approved_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='approved_user', blank=True, to=settings.AUTH_USER_MODEL, null=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user', to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -296,7 +297,7 @@ class Migration(migrations.Migration): ('script_writer', models.BooleanField()), ('is_reviewer', models.BooleanField()), ('created', models.DateTimeField(auto_now_add=True)), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -307,9 +308,9 @@ class Migration(migrations.Migration): ('brief_description', models.TextField()), ('example_suggestion', models.BooleanField()), ('created', models.DateTimeField(auto_now_add=True)), - ('difficulty_level', models.ForeignKey(to='creation.Level')), + ('difficulty_level', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Level')), ('operating_system', models.ManyToManyField(to='creation.OperatingSystem')), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -327,9 +328,9 @@ class Migration(migrations.Migration): ('keyword_status', models.PositiveSmallIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('assignment_user', models.ForeignKey(related_name='assignments', to=settings.AUTH_USER_MODEL)), - ('code_user', models.ForeignKey(related_name='codes', to=settings.AUTH_USER_MODEL)), - ('keyword_user', models.ForeignKey(related_name='keywords', to=settings.AUTH_USER_MODEL)), + ('assignment_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='assignments', to=settings.AUTH_USER_MODEL)), + ('code_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='codes', to=settings.AUTH_USER_MODEL)), + ('keyword_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='keywords', to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': 'Tutorial Common Content', @@ -343,9 +344,9 @@ class Migration(migrations.Migration): ('order', models.IntegerField()), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('foss', models.ForeignKey(to='creation.FossCategory')), - ('level', models.ForeignKey(to='creation.Level')), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('foss', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory')), + ('level', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Level')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': 'Tutorial Detail', @@ -371,8 +372,8 @@ class Migration(migrations.Migration): ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('reply_message', models.TextField()), ('created', models.DateTimeField(auto_now_add=True)), - ('missing_component', models.ForeignKey(to='creation.TutorialMissingComponent')), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('missing_component', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialMissingComponent')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -394,183 +395,183 @@ class Migration(migrations.Migration): ('hit_count', models.PositiveIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('common_content', models.ForeignKey(to='creation.TutorialCommonContent')), - ('language', models.ForeignKey(to='creation.Language')), - ('outline_user', models.ForeignKey(related_name='outlines', to=settings.AUTH_USER_MODEL)), - ('script_user', models.ForeignKey(related_name='scripts', to=settings.AUTH_USER_MODEL)), - ('tutorial_detail', models.ForeignKey(to='creation.TutorialDetail')), - ('video_user', models.ForeignKey(related_name='videos', to=settings.AUTH_USER_MODEL)), + ('common_content', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialCommonContent')), + ('language', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language')), + ('outline_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='outlines', to=settings.AUTH_USER_MODEL)), + ('script_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='scripts', to=settings.AUTH_USER_MODEL)), + ('tutorial_detail', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialDetail')), + ('video_user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='videos', to=settings.AUTH_USER_MODEL)), ], ), migrations.AddField( model_name='tutorialmissingcomponent', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='tutorialmissingcomponent', name='user', - field=models.ForeignKey(related_name='raised_user', blank=True, to=settings.AUTH_USER_MODEL, null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='raised_user', blank=True, to=settings.AUTH_USER_MODEL, null=True), ), migrations.AddField( model_name='tutorialcommoncontent', name='prerequisite', - field=models.ForeignKey(related_name='prerequisite', blank=True, to='creation.TutorialDetail', null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='prerequisite', blank=True, to='creation.TutorialDetail', null=True), ), migrations.AddField( model_name='tutorialcommoncontent', name='prerequisite_user', - field=models.ForeignKey(related_name='prerequisite', to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='prerequisite', to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='tutorialcommoncontent', name='slide_user', - field=models.ForeignKey(related_name='slides', to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='slides', to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='tutorialcommoncontent', name='tutorial_detail', - field=models.OneToOneField(related_name='tutorial_detail', to='creation.TutorialDetail'), + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='tutorial_detail', to='creation.TutorialDetail'), ), migrations.AddField( model_name='qualityreviewlog', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='qualityreviewlog', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='qualityreviewernotification', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='qualityreviewernotification', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='publishtutoriallog', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='publishtutoriallog', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='publicreviewlog', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='publicreviewlog', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='needimprovementlog', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='needimprovementlog', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='fossavailableforworkshop', name='foss', - field=models.ForeignKey(to='creation.FossCategory'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory'), ), migrations.AddField( model_name='fossavailableforworkshop', name='language', - field=models.ForeignKey(to='creation.Language'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language'), ), migrations.AddField( model_name='fossavailablefortest', name='foss', - field=models.ForeignKey(to='creation.FossCategory'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory'), ), migrations.AddField( model_name='fossavailablefortest', name='language', - field=models.ForeignKey(to='creation.Language'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language'), ), migrations.AddField( model_name='domainreviewlog', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='domainreviewlog', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='domainreviewerrole', name='foss_category', - field=models.ForeignKey(to='creation.FossCategory'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory'), ), migrations.AddField( model_name='domainreviewerrole', name='language', - field=models.ForeignKey(to='creation.Language'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language'), ), migrations.AddField( model_name='domainreviewerrole', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='domainreviewernotification', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='domainreviewernotification', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='contributorrole', name='foss_category', - field=models.ForeignKey(to='creation.FossCategory'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory'), ), migrations.AddField( model_name='contributorrole', name='language', - field=models.ForeignKey(to='creation.Language'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language'), ), migrations.AddField( model_name='contributorrole', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='contributornotification', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='contributornotification', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='contributorlog', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='contributorlog', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='collaborate', @@ -580,42 +581,42 @@ class Migration(migrations.Migration): migrations.AddField( model_name='collaborate', name='language', - field=models.ForeignKey(to='creation.Language'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language'), ), migrations.AddField( model_name='collaborate', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='archivedvideo', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='archivedvideo', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='adminreviewlog', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='adminreviewlog', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='adminreviewernotification', name='tutorial_resource', - field=models.ForeignKey(to='creation.TutorialResource'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.TutorialResource'), ), migrations.AddField( model_name='adminreviewernotification', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AlterUniqueTogether( name='tutorialresource', diff --git a/creation/migrations/0002_auto_20170107_1845.py b/creation/migrations/0002_auto_20170107_1845.py index 4cb2725c2..521867e34 100644 --- a/creation/migrations/0002_auto_20170107_1845.py +++ b/creation/migrations/0002_auto_20170107_1845.py @@ -4,6 +4,7 @@ # Third Party Stuff from django.conf import settings from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -27,6 +28,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='tutorialcommoncontent', name='additional_material_user', - field=models.ForeignKey(related_name='additional_material', default=None, to=settings.AUTH_USER_MODEL, null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='additional_material', default=None, to=settings.AUTH_USER_MODEL, null=True), ), ] diff --git a/creation/migrations/0006_auto_20170329_1132.py b/creation/migrations/0006_auto_20170329_1132.py index 1a93408b2..68d434bd6 100644 --- a/creation/migrations/0006_auto_20170329_1132.py +++ b/creation/migrations/0006_auto_20170329_1132.py @@ -3,6 +3,7 @@ # Third Party Stuff from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -36,11 +37,11 @@ class Migration(migrations.Migration): migrations.AddField( model_name='brochuredocument', name='foss_course', - field=models.ForeignKey(to='creation.FossCategory'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory'), ), migrations.AddField( model_name='brochuredocument', name='foss_language', - field=models.ForeignKey(to='creation.Language'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language'), ), ] diff --git a/creation/migrations/0009_auto_20170612_1543.py b/creation/migrations/0009_auto_20170612_1543.py index 005fde652..de7a5d64c 100644 --- a/creation/migrations/0009_auto_20170612_1543.py +++ b/creation/migrations/0009_auto_20170612_1543.py @@ -3,6 +3,7 @@ # Third Party Stuff from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -30,7 +31,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='brochurepage', name='brochure', - field=models.ForeignKey(related_name='pages', to='creation.BrochureDocument'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pages', to='creation.BrochureDocument'), ), migrations.AlterUniqueTogether( name='brochurepage', diff --git a/donate/models.py b/donate/models.py index 6a8ce027c..78fdb62fc 100644 --- a/donate/models.py +++ b/donate/models.py @@ -74,8 +74,8 @@ def is_past_due(self): class CdFossLanguages(models.Model): payment = models.ForeignKey(Payee, on_delete=models.PROTECT) foss = models.ForeignKey(FossCategory, on_delete=models.PROTECT,related_name="payment_foss") - lang = models.ForeignKey(Language) - level = models.ForeignKey(Level,null=True,blank=True) + lang = models.ForeignKey(Language, on_delete=models.PROTECT) + level = models.ForeignKey(Level, null=True, blank=True, on_delete=models.PROTECT) class PaymentTransaction(models.Model): paymentdetail = models.ForeignKey(Payee, on_delete=models.PROTECT, related_name="payment_transaction" ) diff --git a/donate/payment.py b/donate/payment.py index cf67c5f72..b3bdd13d1 100644 --- a/donate/payment.py +++ b/donate/payment.py @@ -1,4 +1,4 @@ -from django.core.urlresolvers import reverse +from django.urls import reverse from django.conf import settings from django.views.decorators.csrf import csrf_exempt diff --git a/donate/subscription.py b/donate/subscription.py index 346b2e80d..fda625894 100644 --- a/donate/subscription.py +++ b/donate/subscription.py @@ -1,5 +1,5 @@ from django.conf import settings -from django.core.urlresolvers import reverse +from django.urls import reverse from events.models import AcademicCenter, \ AcademicKey, AcademicPaymentStatus, Organiser, StudentMaster from .models import AcademicSubscription, HDFCTransactionDetails, AcademicSubscriptionDetail, CdFossLanguages, PaymentTransaction diff --git a/events/decorators.py b/events/decorators.py index eae6e3934..3a7d94f5c 100644 --- a/events/decorators.py +++ b/events/decorators.py @@ -1,10 +1,9 @@ from functools import wraps +from urllib.parse import urlparse from django.conf import settings from django.contrib import messages from django.shortcuts import resolve_url -from django.utils.decorators import available_attrs from django.contrib.auth import REDIRECT_FIELD_NAME -from django.utils.six.moves.urllib.parse import urlparse from events.views import is_organiser default_message = "You don't have enough permission to view this page." @@ -13,7 +12,7 @@ def user_passes_test(test_func, login_url=None, \ redirect_field_name=REDIRECT_FIELD_NAME): def decorator(view_func): - @wraps(view_func, assigned=available_attrs(view_func)) + @wraps(view_func) def _wrapped_view(request, *args, **kwargs): if test_func(request): return view_func(request, *args, **kwargs) diff --git a/events/migrations/0001_initial.py b/events/migrations/0001_initial.py index 37c598356..13cc2d852 100644 --- a/events/migrations/0001_initial.py +++ b/events/migrations/0001_initial.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion from django.conf import settings @@ -96,8 +97,8 @@ class Migration(migrations.Migration): ('status', models.PositiveSmallIntegerField(default=0)), ('message', models.CharField(max_length=255)), ('created', models.DateTimeField(auto_now_add=True)), - ('academic', models.ForeignKey(to='events.AcademicCenter')), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('academic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.AcademicCenter')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -106,7 +107,7 @@ class Migration(migrations.Migration): ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('mdlcourse_id', models.PositiveIntegerField()), ('mdlquiz_id', models.PositiveIntegerField()), - ('foss', models.ForeignKey(to='creation.FossCategory')), + ('foss', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory')), ], ), migrations.CreateModel( @@ -137,9 +138,9 @@ class Migration(migrations.Migration): ('status', models.PositiveSmallIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('academic', models.ForeignKey(to='events.AcademicCenter')), - ('appoved_by', models.ForeignKey(related_name='invigilator_approved_by', blank=True, to=settings.AUTH_USER_MODEL, null=True)), - ('user', models.OneToOneField(to=settings.AUTH_USER_MODEL)), + ('academic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.AcademicCenter')), + ('appoved_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='invigilator_approved_by', blank=True, to=settings.AUTH_USER_MODEL, null=True)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -159,7 +160,7 @@ class Migration(migrations.Migration): ('pincode', models.PositiveIntegerField()), ('created', models.DateTimeField(auto_now_add=True, null=True)), ('updated', models.DateTimeField(auto_now=True)), - ('district', models.ForeignKey(to='events.District')), + ('district', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.District')), ], ), migrations.CreateModel( @@ -169,16 +170,16 @@ class Migration(migrations.Migration): ('status', models.PositiveSmallIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('academic', models.ForeignKey(blank=True, to='events.AcademicCenter', null=True)), - ('appoved_by', models.ForeignKey(related_name='organiser_approved_by', blank=True, to=settings.AUTH_USER_MODEL, null=True)), - ('user', models.OneToOneField(related_name='organiser', to=settings.AUTH_USER_MODEL)), + ('academic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, blank=True, to='events.AcademicCenter', null=True)), + ('appoved_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='organiser_approved_by', blank=True, to=settings.AUTH_USER_MODEL, null=True)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='organiser', to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='OrganiserNotification', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -187,10 +188,10 @@ class Migration(migrations.Migration): ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('assigned_by', models.ForeignKey(related_name='permission_assigned_by', to=settings.AUTH_USER_MODEL)), - ('district', models.ForeignKey(related_name='permission_district', to='events.District', null=True)), - ('institute', models.ForeignKey(related_name='permission_district', to='events.AcademicCenter', null=True)), - ('institute_type', models.ForeignKey(related_name='permission_institution_type', to='events.InstituteType', null=True)), + ('assigned_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permission_assigned_by', to=settings.AUTH_USER_MODEL)), + ('district', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permission_district', to='events.District', null=True)), + ('institute', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permission_district', to='events.AcademicCenter', null=True)), + ('institute_type', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permission_institution_type', to='events.InstituteType', null=True)), ], ), migrations.CreateModel( @@ -234,10 +235,10 @@ class Migration(migrations.Migration): ('participant_count', models.PositiveIntegerField(default=0)), ('created', models.DateTimeField()), ('updated', models.DateTimeField()), - ('academic', models.ForeignKey(to='events.AcademicCenter')), - ('course', models.ForeignKey(to='events.CourseMap')), - ('language', models.ForeignKey(to='creation.Language')), - ('organiser', models.ForeignKey(to='events.Organiser')), + ('academic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.AcademicCenter')), + ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.CourseMap')), + ('language', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language')), + ('organiser', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Organiser')), ], ), migrations.CreateModel( @@ -253,7 +254,7 @@ class Migration(migrations.Migration): ('status', models.PositiveSmallIntegerField(default=0)), ('created', models.DateTimeField()), ('updated', models.DateTimeField()), - ('training', models.ForeignKey(to='events.SingleTraining')), + ('training', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.SingleTraining')), ], ), migrations.CreateModel( @@ -280,7 +281,7 @@ class Migration(migrations.Migration): ('error', models.BooleanField(default=False)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('user', models.OneToOneField(to=settings.AUTH_USER_MODEL)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -289,9 +290,9 @@ class Migration(migrations.Migration): ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('year', models.PositiveIntegerField()), ('stcount', models.PositiveIntegerField(default=0)), - ('academic', models.ForeignKey(to='events.AcademicCenter')), - ('department', models.ForeignKey(to='events.Department')), - ('organiser', models.ForeignKey(to='events.Organiser')), + ('academic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.AcademicCenter')), + ('department', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Department')), + ('organiser', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Organiser')), ], ), migrations.CreateModel( @@ -301,8 +302,8 @@ class Migration(migrations.Migration): ('moved', models.BooleanField(default=False)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('batch', models.ForeignKey(to='events.StudentBatch')), - ('student', models.ForeignKey(to='events.Student')), + ('batch', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.StudentBatch')), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Student')), ], ), migrations.CreateModel( @@ -316,12 +317,12 @@ class Migration(migrations.Migration): ('participant_count', models.PositiveIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('academic', models.ForeignKey(to='events.AcademicCenter')), - ('appoved_by', models.ForeignKey(related_name='test_approved_by', to=settings.AUTH_USER_MODEL, null=True)), + ('academic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.AcademicCenter')), + ('appoved_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='test_approved_by', to=settings.AUTH_USER_MODEL, null=True)), ('department', models.ManyToManyField(to='events.Department')), - ('foss', models.ForeignKey(to='creation.FossCategory')), - ('invigilator', models.ForeignKey(related_name='test_invigilator', to='events.Invigilator', null=True)), - ('organiser', models.ForeignKey(related_name='test_organiser', to='events.Organiser')), + ('foss', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory')), + ('invigilator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='test_invigilator', to='events.Invigilator', null=True)), + ('organiser', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='test_organiser', to='events.Organiser')), ], options={ 'verbose_name': 'Test Categorie', @@ -342,7 +343,7 @@ class Migration(migrations.Migration): ('status', models.PositiveSmallIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('test', models.ForeignKey(to='events.Test')), + ('test', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Test')), ], options={ 'verbose_name': 'Test Attendance', @@ -371,8 +372,8 @@ class Migration(migrations.Migration): ('status', models.PositiveSmallIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True, null=True)), ('updated', models.DateTimeField(auto_now=True, null=True)), - ('approved_by', models.ForeignKey(related_name='testimonial_approved_by', to=settings.AUTH_USER_MODEL, null=True)), - ('user', models.ForeignKey(related_name='testimonial_created_by', to=settings.AUTH_USER_MODEL)), + ('approved_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='testimonial_approved_by', to=settings.AUTH_USER_MODEL, null=True)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='testimonial_created_by', to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -382,9 +383,9 @@ class Migration(migrations.Migration): ('role', models.PositiveSmallIntegerField(default=0)), ('status', models.PositiveSmallIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), - ('academic', models.ForeignKey(to='events.AcademicCenter')), - ('test', models.ForeignKey(to='events.Test')), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('academic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.AcademicCenter')), + ('test', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Test')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -401,9 +402,9 @@ class Migration(migrations.Migration): ('trusted', models.BooleanField(default=1)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('academic', models.ForeignKey(to='events.AcademicCenter')), - ('appoved_by', models.ForeignKey(related_name='training_approved_by', to=settings.AUTH_USER_MODEL, null=True)), - ('course', models.ForeignKey(to='events.Course')), + ('academic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.AcademicCenter')), + ('appoved_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='training_approved_by', to=settings.AUTH_USER_MODEL, null=True)), + ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Course')), ('department', models.ManyToManyField(to='events.Department')), ], ), @@ -413,8 +414,8 @@ class Migration(migrations.Migration): ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('language', models.ForeignKey(default=None, to='creation.Language')), - ('student', models.ForeignKey(to='events.Student')), + ('language', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, default=None, to='creation.Language')), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Student')), ], ), migrations.CreateModel( @@ -431,7 +432,7 @@ class Migration(migrations.Migration): ('status', models.PositiveSmallIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('training', models.ForeignKey(to='events.Training')), + ('training', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Training')), ], options={ 'verbose_name': 'Training Attendance', @@ -444,7 +445,7 @@ class Migration(migrations.Migration): ('password', models.CharField(max_length=255, null=True)), ('count', models.PositiveSmallIntegerField(default=0)), ('updated', models.DateTimeField()), - ('student', models.ForeignKey(to='events.Student')), + ('student', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Student')), ], ), migrations.CreateModel( @@ -500,7 +501,7 @@ class Migration(migrations.Migration): ('reason_why', models.TextField()), ('other_comments', models.TextField()), ('created', models.DateTimeField(auto_now_add=True)), - ('training', models.ForeignKey(to='events.Training')), + ('training', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Training')), ], ), migrations.CreateModel( @@ -553,8 +554,8 @@ class Migration(migrations.Migration): ('side_by_side_method_is_effective', models.PositiveIntegerField(default=0)), ('side_by_side_method_is', models.PositiveIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), - ('language_prefered', models.ForeignKey(to='creation.Language', null=True)), - ('training', models.ForeignKey(to='events.Training')), + ('language_prefered', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language', null=True)), + ('training', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Training')), ], ), migrations.CreateModel( @@ -600,7 +601,7 @@ class Migration(migrations.Migration): ('reason_why', models.TextField()), ('other_comments', models.TextField()), ('created', models.DateTimeField(auto_now_add=True)), - ('training', models.ForeignKey(to='events.Training')), + ('training', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Training')), ], ), migrations.CreateModel( @@ -610,9 +611,9 @@ class Migration(migrations.Migration): ('role', models.PositiveSmallIntegerField()), ('status', models.PositiveSmallIntegerField()), ('created', models.DateTimeField(auto_now_add=True)), - ('academic', models.ForeignKey(to='events.AcademicCenter')), - ('training', models.ForeignKey(to='events.Training')), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('academic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.AcademicCenter')), + ('training', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Training')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -622,9 +623,9 @@ class Migration(migrations.Migration): ('year', models.CharField(max_length=50)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('academic', models.ForeignKey(to='events.AcademicCenter')), - ('organiser', models.ForeignKey(to='events.Organiser')), - ('semester', models.ForeignKey(to='events.Semester')), + ('academic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.AcademicCenter')), + ('organiser', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Organiser')), + ('semester', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Semester')), ], ), migrations.CreateModel( @@ -636,10 +637,10 @@ class Migration(migrations.Migration): ('status', models.BooleanField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('batch', models.ForeignKey(to='events.StudentBatch', null=True)), - ('course', models.ForeignKey(to='events.CourseMap')), - ('department', models.ForeignKey(to='events.Department')), - ('training_planner', models.ForeignKey(to='events.TrainingPlanner')), + ('batch', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.StudentBatch', null=True)), + ('course', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.CourseMap')), + ('department', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Department')), + ('training_planner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.TrainingPlanner')), ], ), migrations.CreateModel( @@ -649,79 +650,79 @@ class Migration(migrations.Migration): ('name', models.CharField(max_length=200)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('state', models.ForeignKey(to='events.State')), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('state', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.State')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.AddField( model_name='trainingcertificate', name='training', - field=models.ForeignKey(to='events.TrainingRequest'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.TrainingRequest'), ), migrations.AddField( model_name='trainingattend', name='training', - field=models.ForeignKey(to='events.TrainingRequest'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.TrainingRequest'), ), migrations.AddField( model_name='training', name='extra_fields', - field=models.OneToOneField(null=True, to='events.TrainingExtraFields'), + field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, null=True, to='events.TrainingExtraFields'), ), migrations.AddField( model_name='training', name='foss', - field=models.ForeignKey(to='creation.FossCategory'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory'), ), migrations.AddField( model_name='training', name='language', - field=models.ForeignKey(to='creation.Language'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.Language'), ), migrations.AddField( model_name='training', name='organiser', - field=models.ForeignKey(to='events.Organiser'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Organiser'), ), migrations.AddField( model_name='test', name='test_category', - field=models.ForeignKey(related_name='test_category', to='events.TestCategory'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='test_category', to='events.TestCategory'), ), migrations.AddField( model_name='test', name='training', - field=models.ForeignKey(to='events.Training', null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Training', null=True), ), migrations.AddField( model_name='resourceperson', name='state', - field=models.ForeignKey(to='events.State'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.State'), ), migrations.AddField( model_name='resourceperson', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='permission', name='permissiontype', - field=models.ForeignKey(to='events.PermissionType'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.PermissionType'), ), migrations.AddField( model_name='permission', name='state', - field=models.ForeignKey(related_name='permission_state', to='events.State'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permission_state', to='events.State'), ), migrations.AddField( model_name='permission', name='university', - field=models.ForeignKey(related_name='permission_iniversity', to='events.University', null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permission_iniversity', to='events.University', null=True), ), migrations.AddField( model_name='permission', name='user', - field=models.ForeignKey(related_name='permission_user', to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='permission_user', to=settings.AUTH_USER_MODEL), ), migrations.AlterUniqueTogether( name='institutetype', @@ -730,17 +731,17 @@ class Migration(migrations.Migration): migrations.AddField( model_name='district', name='state', - field=models.ForeignKey(to='events.State'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.State'), ), migrations.AddField( model_name='coursemap', name='course', - field=models.ForeignKey(blank=True, to='events.LabCourse', null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, blank=True, to='events.LabCourse', null=True), ), migrations.AddField( model_name='coursemap', name='foss', - field=models.ForeignKey(to='creation.FossCategory'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory'), ), migrations.AlterUniqueTogether( name='course', @@ -749,47 +750,47 @@ class Migration(migrations.Migration): migrations.AddField( model_name='city', name='state', - field=models.ForeignKey(to='events.State'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.State'), ), migrations.AddField( model_name='academiccenter', name='city', - field=models.ForeignKey(to='events.City'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.City'), ), migrations.AddField( model_name='academiccenter', name='district', - field=models.ForeignKey(to='events.District'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.District'), ), migrations.AddField( model_name='academiccenter', name='institute_category', - field=models.ForeignKey(to='events.InstituteCategory'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.InstituteCategory'), ), migrations.AddField( model_name='academiccenter', name='institution_type', - field=models.ForeignKey(to='events.InstituteType'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.InstituteType'), ), migrations.AddField( model_name='academiccenter', name='location', - field=models.ForeignKey(to='events.Location', null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Location', null=True), ), migrations.AddField( model_name='academiccenter', name='state', - field=models.ForeignKey(to='events.State'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.State'), ), migrations.AddField( model_name='academiccenter', name='university', - field=models.ForeignKey(to='events.University'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.University'), ), migrations.AddField( model_name='academiccenter', name='user', - field=models.ForeignKey(to=settings.AUTH_USER_MODEL), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), migrations.AlterUniqueTogether( name='university', diff --git a/events/migrations/0002_auto_20150623_1627.py b/events/migrations/0002_auto_20150623_1627.py index aa9fa9710..850815465 100644 --- a/events/migrations/0002_auto_20150623_1627.py +++ b/events/migrations/0002_auto_20150623_1627.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion class Migration(migrations.Migration): @@ -14,6 +15,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='test', name='training', - field=models.ForeignKey(to='events.TrainingRequest', null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.TrainingRequest', null=True), ), ] diff --git a/events/migrations/0003_testattendance_student.py b/events/migrations/0003_testattendance_student.py index 3cfc1a518..de225b5a2 100644 --- a/events/migrations/0003_testattendance_student.py +++ b/events/migrations/0003_testattendance_student.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion class Migration(migrations.Migration): @@ -14,6 +15,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='testattendance', name='student', - field=models.ForeignKey(to='events.Student', null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Student', null=True), ), ] diff --git a/events/migrations/0005_auto_20150731_1230.py b/events/migrations/0005_auto_20150731_1230.py index b9cb723cd..2eaaacd0d 100644 --- a/events/migrations/0005_auto_20150731_1230.py +++ b/events/migrations/0005_auto_20150731_1230.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion class Migration(migrations.Migration): @@ -14,6 +15,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='trainingfeedback', name='training', - field=models.ForeignKey(to='events.TrainingRequest'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.TrainingRequest'), ), ] diff --git a/events/migrations/0006_auto_20150731_1340.py b/events/migrations/0006_auto_20150731_1340.py index 9d478a278..084222f67 100644 --- a/events/migrations/0006_auto_20150731_1340.py +++ b/events/migrations/0006_auto_20150731_1340.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion class Migration(migrations.Migration): @@ -14,6 +15,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='traininglanguagefeedback', name='training', - field=models.ForeignKey(to='events.TrainingRequest'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.TrainingRequest'), ), ] diff --git a/events/migrations/0008_auto_20150731_1648.py b/events/migrations/0008_auto_20150731_1648.py index 54e1f9d38..dd9468888 100644 --- a/events/migrations/0008_auto_20150731_1648.py +++ b/events/migrations/0008_auto_20150731_1648.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion class Migration(migrations.Migration): @@ -14,6 +15,6 @@ class Migration(migrations.Migration): migrations.AlterField( model_name='traininglivefeedback', name='training', - field=models.ForeignKey(to='events.SingleTraining'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.SingleTraining'), ), ] diff --git a/events/migrations/0009_auto_20150806_1820.py b/events/migrations/0009_auto_20150806_1820.py index 580d618ac..38162e321 100644 --- a/events/migrations/0009_auto_20150806_1820.py +++ b/events/migrations/0009_auto_20150806_1820.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion class Migration(migrations.Migration): @@ -52,12 +53,12 @@ class Migration(migrations.Migration): ('testimonial', models.CharField(max_length=500)), ('any_other_suggestions', models.CharField(max_length=500)), ('can_contact', models.CharField(max_length=10, choices=[(b'', b'-----'), (b'0', b'Yes'), (b'1', b'No')])), - ('city', models.ForeignKey(to='events.City')), - ('district', models.ForeignKey(to='events.District')), + ('city', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.City')), + ('district', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.District')), ('helpful_for', models.ManyToManyField(related_name='events_HelpfulFor_related', to='events.HelpfulFor')), ('language', models.ManyToManyField(related_name='events_Language_related', to='creation.Language')), ('offered_training_foss', models.ManyToManyField(related_name='events_FossCategory_related', to='creation.FossCategory')), - ('state', models.ForeignKey(to='events.State')), + ('state', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.State')), ], ), migrations.CreateModel( @@ -80,6 +81,6 @@ class Migration(migrations.Migration): migrations.AddField( model_name='organiserfeedback', name='university', - field=models.ForeignKey(to='events.AcademicCenter'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.AcademicCenter'), ), ] diff --git a/events/migrations/0012_auto_20150908_1722.py b/events/migrations/0012_auto_20150908_1722.py index 2968b3e19..7455111e2 100644 --- a/events/migrations/0012_auto_20150908_1722.py +++ b/events/migrations/0012_auto_20150908_1722.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion class Migration(migrations.Migration): @@ -14,12 +15,12 @@ class Migration(migrations.Migration): migrations.AddField( model_name='singletraining', name='institution_type', - field=models.ForeignKey(to='events.InstituteType', null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.InstituteType', null=True), ), migrations.AddField( model_name='singletraining', name='state', - field=models.ForeignKey(to='events.State', null=True), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.State', null=True), ), migrations.AddField( model_name='singletraining', diff --git a/events/migrations/0015_stworkshopfeedback_stworkshopfeedbackpost_stworkshopfeedbackpre.py b/events/migrations/0015_stworkshopfeedback_stworkshopfeedbackpost_stworkshopfeedbackpre.py index 8d8ed02df..126bbb987 100644 --- a/events/migrations/0015_stworkshopfeedback_stworkshopfeedbackpost_stworkshopfeedbackpre.py +++ b/events/migrations/0015_stworkshopfeedback_stworkshopfeedbackpost_stworkshopfeedbackpre.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion from django.conf import settings @@ -168,7 +169,7 @@ class Migration(migrations.Migration): ('how_make_better', models.CharField(max_length=500)), ('experience', models.CharField(max_length=500)), ('suggestions', models.CharField(max_length=500)), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( @@ -199,7 +200,7 @@ class Migration(migrations.Migration): ('installig_ad_themes', models.CharField(max_length=50, choices=[(b'', b'-----'), (b'Notconfidentatall', b'Not confident at all'), (b'Unconfident', b'Unconfident'), (b'Neitherconfidentnorunconfident', b'Neither confident nor unconfident'), (b'Confident', b'Confident'), (b'Absolutelyconfident', b'Absolutely confident'), (b'NotApplicable', b'Not Applicable')])), ('people_management', models.CharField(max_length=50, choices=[(b'', b'-----'), (b'Notconfidentatall', b'Not confident at all'), (b'Unconfident', b'Unconfident'), (b'Neitherconfidentnorunconfident', b'Neither confident nor unconfident'), (b'Confident', b'Confident'), (b'Absolutelyconfident', b'Absolutely confident'), (b'NotApplicable', b'Not Applicable')])), ('site_management', models.CharField(max_length=50, choices=[(b'', b'-----'), (b'Notconfidentatall', b'Not confident at all'), (b'Unconfident', b'Unconfident'), (b'Neitherconfidentnorunconfident', b'Neither confident nor unconfident'), (b'Confident', b'Confident'), (b'Absolutelyconfident', b'Absolutely confident'), (b'NotApplicable', b'Not Applicable')])), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), ] diff --git a/events/migrations/0018_auto_20170615_1654.py b/events/migrations/0018_auto_20170615_1654.py index 03853e50d..ad3d41899 100644 --- a/events/migrations/0018_auto_20170615_1654.py +++ b/events/migrations/0018_auto_20170615_1654.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion import datetime from django.utils.timezone import utc @@ -62,7 +63,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='stworkshopfeedback', name='foss', - field=models.ForeignKey(default=22, to='creation.FossCategory'), + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, default=22, to='creation.FossCategory'), preserve_default=False, ), migrations.AddField( diff --git a/events/migrations/0020_inductioninterest.py b/events/migrations/0020_inductioninterest.py index f745673f1..429a6d9c6 100644 --- a/events/migrations/0020_inductioninterest.py +++ b/events/migrations/0020_inductioninterest.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion class Migration(migrations.Migration): @@ -38,8 +39,8 @@ class Migration(migrations.Migration): ('do_agree', models.CharField(max_length=50, choices=[(b'', b'-----'), (b'Yes', b'Yes'), (b'No', b'No')])), ('no_objection', models.CharField(max_length=50, choices=[(b'', b'-----'), (b'Yes', b'Yes'), (b'No', b'No')])), ('other_comments', models.CharField(max_length=500)), - ('city', models.ForeignKey(to='events.City')), - ('state', models.ForeignKey(to='events.State')), + ('city', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.City')), + ('state', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.State')), ], ), ] diff --git a/events/migrations/0027_inductionfinallist.py b/events/migrations/0027_inductionfinallist.py index 23f82c634..577b3847d 100644 --- a/events/migrations/0027_inductionfinallist.py +++ b/events/migrations/0027_inductionfinallist.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion class Migration(migrations.Migration): @@ -19,7 +20,7 @@ class Migration(migrations.Migration): ('code', models.CharField(default=None, max_length=255)), ('batch_code', models.PositiveIntegerField()), ('created', models.DateTimeField(auto_now_add=True)), - ('eoi_id', models.ForeignKey(default=None, to='events.InductionInterest')), + ('eoi_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, default=None, to='events.InductionInterest')), ], ), ] diff --git a/events/migrations/0029_mumbaistudents.py b/events/migrations/0029_mumbaistudents.py index c32acdee5..f5396fb60 100644 --- a/events/migrations/0029_mumbaistudents.py +++ b/events/migrations/0029_mumbaistudents.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion class Migration(migrations.Migration): @@ -15,8 +16,8 @@ class Migration(migrations.Migration): name='MumbaiStudents', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), - ('bid', models.ForeignKey(to='events.StudentBatch')), - ('stuid', models.ForeignKey(to='events.Student')), + ('bid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.StudentBatch')), + ('stuid', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.Student')), ], ), ] diff --git a/events/migrations/0030_accountexecutive.py b/events/migrations/0030_accountexecutive.py index 59437028f..589fadc93 100644 --- a/events/migrations/0030_accountexecutive.py +++ b/events/migrations/0030_accountexecutive.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion from django.conf import settings @@ -20,9 +21,9 @@ class Migration(migrations.Migration): ('status', models.PositiveSmallIntegerField(default=0)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), - ('academic', models.ForeignKey(blank=True, to='events.AcademicCenter', null=True)), - ('appoved_by', models.ForeignKey(related_name='accountexecutive_approved_by', blank=True, to=settings.AUTH_USER_MODEL, null=True)), - ('user', models.OneToOneField(related_name='accountexecutive', to=settings.AUTH_USER_MODEL)), + ('academic', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, blank=True, to='events.AcademicCenter', null=True)), + ('appoved_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='accountexecutive_approved_by', blank=True, to=settings.AUTH_USER_MODEL, null=True)), + ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='accountexecutive', to=settings.AUTH_USER_MODEL)), ], ), ] diff --git a/events/migrations/0031_auto_20180720_1500.py b/events/migrations/0031_auto_20180720_1500.py index f979d9978..ef50e8ccd 100644 --- a/events/migrations/0031_auto_20180720_1500.py +++ b/events/migrations/0031_auto_20180720_1500.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion from django.conf import settings @@ -24,8 +25,8 @@ class Migration(migrations.Migration): ('gstno', models.CharField(max_length=15, null=True)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now_add=True)), - ('academic_id', models.ForeignKey(to='events.AcademicCenter')), - ('user', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('academic_id', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.AcademicCenter')), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ('academic_year', models.PositiveIntegerField()), ], ), diff --git a/events/migrations/0032_paymenttransactiondetails.py b/events/migrations/0032_paymenttransactiondetails.py index cf927a1eb..6831be476 100644 --- a/events/migrations/0032_paymenttransactiondetails.py +++ b/events/migrations/0032_paymenttransactiondetails.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion from django.conf import settings @@ -27,8 +28,8 @@ class Migration(migrations.Migration): ('msg', models.CharField(max_length=100)), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now_add=True)), - ('paymentdetail', models.ForeignKey(to='events.PaymentDetails')), - ('userId', models.ForeignKey(to=settings.AUTH_USER_MODEL)), + ('paymentdetail', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='events.PaymentDetails')), + ('userId', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), ] diff --git a/events/migrations/0036_auto_20180824_1241.py b/events/migrations/0036_auto_20180824_1241.py index e8916c424..b12093e7a 100644 --- a/events/migrations/0036_auto_20180824_1241.py +++ b/events/migrations/0036_auto_20180824_1241.py @@ -2,6 +2,7 @@ from django.db import models, migrations +import django.db.models.deletion class Migration(migrations.Migration): @@ -20,7 +21,7 @@ class Migration(migrations.Migration): ('user', models.CharField(max_length=255)), ('content', models.CharField(max_length=255)), ('created', models.DateTimeField(auto_now_add=True)), - ('foss', models.ForeignKey(to='creation.FossCategory')), + ('foss', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory')), ], options={ 'verbose_name': 'Media Testimonials', diff --git a/events/models.py b/events/models.py index e7acc0073..7fc56347e 100755 --- a/events/models.py +++ b/events/models.py @@ -6,7 +6,7 @@ from django.db.models.signals import pre_delete, post_delete from django.dispatch import receiver from django.db.models import Q, Count, Sum, Min -from django.utils.encoding import python_2_unicode_compatible +from six import python_2_unicode_compatible from creation.models import FossCategory, Language, Level diff --git a/requirements-common.txt b/requirements-common.txt index d871e34db..58afbd143 100644 --- a/requirements-common.txt +++ b/requirements-common.txt @@ -10,16 +10,16 @@ certifi==2022.12.7 chardet==3.0.4 Django==3.2.25 django-appconf==1.0.2 -django-compressor==2.2 -django-extensions==2.1.3 -django-filter==2.0.0 +django-compressor==2.4.1 +django-extensions==3.1.5 +django-filter==2.4.0 django-future==0.2.3 django-htmlmin==0.10.0 django-masquerade==1.3 -django-picklefield==1.1.0 -django-report-builder==6.2.2 -django-widget-tweaks==1.4.3 -djangorestframework==3.8.2 +django-picklefield==3.0.1 +django-report-builder==6.5.2 +django-widget-tweaks==1.4.8 +djangorestframework==3.12.4 et-xmlfile==1.0.1 google-api-python-client==1.7.4 google-auth==1.5.1 @@ -31,7 +31,7 @@ idna==2.7 jdcal==1.4 lxml==4.2.5 MechanicalSoup==0.11.0 -mysqlclient==1.3.13 +mysqlclient==2.0.3 oauth2client==4.1.3 oauthlib==2.1.0 openpyxl==2.5.8 diff --git a/requirements-dev.txt b/requirements-dev.txt index 08ab59f51..5f4b8c1ed 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -13,7 +13,7 @@ ipdb==0.10.3 # ------------------------------------- pytest-django==2.9.1 pytest-pythonpath==0.7 -https://github.com/pytest-dev/pytest-cov/archive/master.zip +# https://github.com/pytest-dev/pytest-cov/archive/master.zip # pytest-cov==2.2.1 django-dynamic-fixture==1.9.0 mock==2.0.0 diff --git a/requirements-py3.txt b/requirements-py3.txt index 64a2e8010..b94e83d91 100644 --- a/requirements-py3.txt +++ b/requirements-py3.txt @@ -15,7 +15,7 @@ mccabe==0.4.0 MechanicalSoup==0.11.0 mock==2.0.0 more-itertools==5.0.0 -mysqlclient==1.3.13 +mysqlclient==2.0.3 packaging==18.0 pathlib2==2.3.3 pbr==5.1.1 @@ -33,8 +33,8 @@ pytest-pythonpath==0.7 requests==2.21.0 soupsieve==1.6 urllib3==1.23 -django-cors-headers==3.2.0 -django-ckeditor==5.8.0 +django-cors-headers==3.7.0 +django-ckeditor==6.0.0 python-memcached==1.59 rq==1.8.0 scipy==1.5.4 diff --git a/spoken/urls.py b/spoken/urls.py index 66a03fd31..b488bdf62 100644 --- a/spoken/urls.py +++ b/spoken/urls.py @@ -66,87 +66,88 @@ re_path(r'^admin/', admin.site.urls), #subscription urls - url(r'^payment/callback/$', payment_callback, name="payment_callback"), - url(r'^payment/status/(?P[\w-]+)/$', check_payment_status, name="check_payment_status"), - url(r'^payment/subscription/$', subscription, name="initiate_payment"), + re_path(r'^payment/callback/$', payment_callback, name="payment_callback"), + re_path(r'^payment/status/(?P[\w-]+)/$', check_payment_status, name="check_payment_status"), + re_path(r'^payment/subscription/$', subscription, name="initiate_payment"), #ilw payment urls - url(r'^payment/ilw/callback/$', ilw_payment_callback, name="ilw_payment_callback"), - url(r'^payment/status/ilw/(?P[\w-]+)/$', check_ilw_payment_status, name="check_ilw_payment_status"), + re_path(r'^payment/ilw/callback/$', ilw_payment_callback, name="ilw_payment_callback"), + re_path(r'^payment/status/ilw/(?P[\w-]+)/$', check_ilw_payment_status, name="check_ilw_payment_status"), # evens old url - url(r'^workshops/college/view_college/(\d+)/$', view_college, name='view_college'), - url(r'^workshops/resource_center_view_college/(\d+)/$', view_college, name='view_college'), - url(r'^resource_center_view_college_map_details/(\d+)/$', view_college, name='view_college'), - # url(r'^software-training/academic-center/(\d+)/([a-zA-Z-]+)/$', view_college', name='view_college'), - url(r'^completed_workshops_list/(?P[\w-]+)/$', training_list, name='training_list'), - url(r'^view_completed_workshop/(\d+)/$', view_training, name='view_training'), - url(r'^feedback_list/(?P.+)/$', training_feedback, name='training_feedback'), - url(r'^feedback_view/(?P.+)/(?P.+)/$', view_training_feedback, name='view_training_feedback'), - url(r'^workshops/academic_details/$', academic_details, name='academic_details'), - url(r'^workshops/academic_details/(?P.+)/$', academic_details_state, name='academic_details_state'), - url(r'^resource_center_map_details/(?P.+)/$', academic_details_state, name='academic_details_state'), - url(r'^workshops/resource_center_details/$', view_college, name='view_college'), - # url(r'^statistics/training/$', statistics_training', name='statistics_training'), + re_path(r'^workshops/college/view_college/(\d+)/$', view_college, name='view_college'), + re_path(r'^workshops/resource_center_view_college/(\d+)/$', view_college, name='view_college'), + re_path(r'^resource_center_view_college_map_details/(\d+)/$', view_college, name='view_college'), + # re_path(r'^software-training/academic-center/(\d+)/([a-zA-Z-]+)/$', view_college', name='view_college'), + re_path(r'^completed_workshops_list/(?P[\w-]+)/$', training_list, name='training_list'), + re_path(r'^view_completed_workshop/(\d+)/$', view_training, name='view_training'), + re_path(r'^feedback_list/(?P.+)/$', training_feedback, name='training_feedback'), + re_path(r'^feedback_view/(?P.+)/(?P.+)/$', view_training_feedback, name='view_training_feedback'), + re_path(r'^workshops/academic_details/$', academic_details, name='academic_details'), + re_path(r'^workshops/academic_details/(?P.+)/$', academic_details_state, name='academic_details_state'), + re_path(r'^resource_center_map_details/(?P.+)/$', academic_details_state, name='academic_details_state'), + re_path(r'^workshops/resource_center_details/$', view_college, name='view_college'), + # re_path(r'^statistics/training/$', statistics_training', name='statistics_training'), # events urls - url(r'^software-training/', include('events.urls', namespace='events')), - url(r'^software-training/', include('events.urlsv2', namespace='eventsv2')), - - url(r'^participant/', include('mdldjango.urls', namespace='mdldjango')), - url(r'^cdcontent/', include('cdcontent.urls', namespace='cdcontent')), - url(r'^create_cd_content/', include('cdcontent.urls', namespace='cdcontent')), - url(r'^statistics/', include('statistics.urls', namespace='statistics')), - url(r'^list_videos/$', list_videos, name='list_videos'), + re_path(r'^software-training/', include(('events.urls', 'events'), namespace='events')), + re_path(r'^software-training/', include(('events.urlsv2', 'eventsv2'), namespace='eventsv2')), + + re_path(r'^participant/', include(('mdldjango.urls', 'mdldjango'), namespace='mdldjango')), + re_path(r'^cdcontent/', include(('cdcontent.urls', 'cdcontent'), namespace='cdcontent')), + re_path(r'^create_cd_content/', include(('cdcontent.urls', 'cdcontent'), namespace='cdcontent')), + re_path(r'^statistics/', include(('statistics.urls', 'statistics'), namespace='statistics')), + re_path(r'^list_videos/$', list_videos, name='list_videos'), + # team - url(r'^team/', include('team.urls')), + re_path(r'^team/', include('team.urls')), #api - url(r'^api/', include('api.urls', namespace='api')), + re_path(r'^api/', include(('api.urls', 'api'), namespace='api')), #training - url(r'^training/', include('training.urls', namespace='training')), + re_path(r'^training/', include(('training.urls', 'training'), namespace='training')), # certificate - url(r'^certificate/', include('certificate.urls', namespace='certificate')), + re_path(r'^certificate/', include(('certificate.urls', 'certificate'), namespace='certificate')), - url(r'^creation/', include('creation.urls', namespace='creation')), - url(r'^nicedit/', include('nicedit.urls')), - # url(r'^migration/creation/', include('creationmigrate.urls', namespace='creationmigrate')), - # url(r'^migration/events/', include('eventsmigration.urls', namespace='eventsmigration')), - #url(r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': False}), + re_path(r'^creation/', include(('creation.urls', 'creation'), namespace='creation')), + re_path(r'^nicedit/', include('nicedit.urls')), + # re_path(r'^migration/creation/', include('creationmigrate.urls', namespace='creationmigrate')), + # re_path(r'^migration/events/', include('eventsmigration.urls', namespace='eventsmigration')), + #re_path(r'^media/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes': False}), # Old url adjustments - # url(r'^list_videos/$', list_videos', name='list_videos'), - url(r'^show_video/$', show_video, name='show_video'), - url(r'^search/node/([0-9a-zA-Z-+%\(\)]+)/$', search_node, name='search_node'), - url(r'^saveVideoData/$', saveVideoData, name='saveVideoData'), + # re_path(r'^list_videos/$', list_videos', name='list_videos'), + re_path(r'^show_video/$', show_video, name='show_video'), + re_path(r'^search/node/([0-9a-zA-Z-+%\(\)]+)/$', search_node, name='search_node'), + re_path(r'^saveVideoData/$', saveVideoData, name='saveVideoData'), # Masquerade user - # url(r'^masquerade/', include('masquerade.urls', namespace='masquerade')), - url(r'^masquerade/', include('impersonate.urls', namespace='impersonate')), + # re_path(r'^masquerade/', include('masquerade.urls', namespace='masquerade')), + re_path(r'^masquerade/', include(('impersonate.urls', 'impersonate'), namespace='impersonate')), # Cron links - url(r'^cron/subtitle-files/create/$', create_subtitle_files, name='create_subtitle_files'), + re_path(r'^cron/subtitle-files/create/$', create_subtitle_files, name='create_subtitle_files'), # reports - url(r'^report_builder/', include('report_builder.urls')), + re_path(r'^report_builder/', include('report_builder.urls')), # Youtube API V3 - url(r'^youtube/', include('youtube.urls', namespace='youtube')), + re_path(r'^youtube/', include(('youtube.urls', 'youtube'), namespace='youtube')), # reports - url(r'^reports/', include('reports.urls', namespace='reports')), + re_path(r'^reports/', include(('reports.urls', 'reports'), namespace='reports')), # events2 - # url(r'^events2/', include('events2.urls', namespace='events2')), - url(r'^cron/', include('cron.urls', namespace='cron')), + # re_path(r'^events2/', include('events2.urls', namespace='events2')), + re_path(r'^cron/', include(('cron.urls', 'cron'), namespace='cron')), #donation - url(r'^donate/', include('donate.urls', namespace='donate')), + re_path(r'^donate/', include(('donate.urls', 'donate'), namespace='donate')), # cms - url(r'^', include('cms.urls', namespace='cms')), + re_path(r'^', include(('cms.urls', 'cms'), namespace='cms')), #nep book fiar - url(r'wbf-book-fair-2023', bookfair,name="bookfair"), + re_path(r'wbf-book-fair-2023', bookfair,name="bookfair"), ] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT) diff --git a/spoken/views.py b/spoken/views.py index e99837086..56053f238 100644 --- a/spoken/views.py +++ b/spoken/views.py @@ -19,7 +19,7 @@ from django.shortcuts import render, get_object_or_404, redirect from django.views.decorators.csrf import csrf_exempt from django.template.context_processors import csrf -from django.core.urlresolvers import reverse +from django.urls import reverse # Spoken Tutorial Stuff from cms.forms import * diff --git a/statistics/migrations/0001_initial.py b/statistics/migrations/0001_initial.py index 4e6729581..e6ffe6f92 100644 --- a/statistics/migrations/0001_initial.py +++ b/statistics/migrations/0001_initial.py @@ -3,6 +3,7 @@ # Third Party Stuff from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -21,7 +22,7 @@ class Migration(migrations.Migration): ('roll_no', models.CharField(max_length=50)), ('created', models.DateTimeField(auto_now_add=True, null=True)), ('updated', models.DateTimeField(auto_now=True, null=True)), - ('foss', models.ForeignKey(to='creation.FossCategory', null=True)), + ('foss', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='creation.FossCategory', null=True)), ], ), migrations.AlterUniqueTogether( diff --git a/workshop/models.py b/workshop/models.py index f50bfb145..c4e72a69b 100644 --- a/workshop/models.py +++ b/workshop/models.py @@ -124,13 +124,16 @@ class Meta(object): db_table = 'organiser' +from django.core.validators import validate_comma_separated_integer_list + + class WResourcePerson(models.Model): id = models.IntegerField(primary_key=True) user_uid = models.IntegerField() rp_fname = models.CharField(max_length=50) phone = models.CharField(max_length=20) - states = models.CommaSeparatedIntegerField(max_length=200) - state_code = models.CommaSeparatedIntegerField(max_length=200) + states = models.CharField(validators=[validate_comma_separated_integer_list], max_length=200) + state_code = models.CharField(validators=[validate_comma_separated_integer_list], max_length=200) class Meta(object): db_table = 'resource_person' diff --git a/youtube/migrations/0001_initial.py b/youtube/migrations/0001_initial.py index 04e75aebf..1325a0a49 100644 --- a/youtube/migrations/0001_initial.py +++ b/youtube/migrations/0001_initial.py @@ -5,6 +5,7 @@ #import oauth2client.django_orm from django.conf import settings from django.db import migrations, models +import django.db.models.deletion class Migration(migrations.Migration): @@ -17,7 +18,7 @@ class Migration(migrations.Migration): migrations.CreateModel( name='CredentialsModel', fields=[ - ('id', models.OneToOneField(primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)), + ('id', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)), ('credential', models.TextField(null=True)), ], ), From 1eec711d90643722c9631942853c5c9dbb9469de Mon Sep 17 00:00:00 2001 From: Naman Sharma Date: Thu, 10 Sep 2026 13:53:03 +0000 Subject: [PATCH 03/12] updated is_authenticated and is_anonymous access calls according to django 3.2 --- cms/views.py | 6 +++--- creation/forms.py | 2 +- creation/views.py | 6 +++--- events/decorators.py | 2 +- spoken/views.py | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cms/views.py b/cms/views.py index 1b96c3731..4e95a5f0e 100644 --- a/cms/views.py +++ b/cms/views.py @@ -256,7 +256,7 @@ def confirm(request, confirmation_code, username): def account_login(request): user = request.user error_msg = '' - if request.user.is_anonymous(): + if not request.user.is_authenticated: form = LoginForm() context = { 'form' : form @@ -386,7 +386,7 @@ def account_view_profile(request, username): 'profile' : profile, 'media_url' : settings.MEDIA_URL, } - if request.user.is_authenticated(): + if request.user.is_authenticated: payee_list = Payee.objects.prefetch_related('cdfosslanguages_set__foss','cdfosslanguages_set__lang').filter(user=request.user) context['payee_list'] = payee_list @@ -506,7 +506,7 @@ def change_password(request): user.backend = 'django.contrib.auth.backends.ModelBackend' login(request, user) - if request.user.is_anonymous(): + if not request.user.is_authenticated: return HttpResponseRedirect('/accounts/login/?next=/accounts/change-password/') if not profile: diff --git a/creation/forms.py b/creation/forms.py index 361c151e6..886403082 100644 --- a/creation/forms.py +++ b/creation/forms.py @@ -709,7 +709,7 @@ def clean(self): print((self.cleaned_data)) if self.cleaned_data['inform_me'] == '1': print((self.cleaned_data['inform_me'])) - if not self.user.is_authenticated(): + if not self.user.is_authenticated: if 'email' in self.cleaned_data: if not self.cleaned_data['email']: self._errors['email'] = '
  • Please fill Email field
' diff --git a/creation/views.py b/creation/views.py index 14a8b9c7e..542d22183 100644 --- a/creation/views.py +++ b/creation/views.py @@ -2818,9 +2818,9 @@ def report_missing_component(request, trid): return render(request, 'creation/templates/report_missing_component.html', context) email = '' inform_me = request.POST.get('inform_me') - if inform_me and request.user.is_authenticated() == False: + if inform_me and not request.user.is_authenticated: email = request.POST.get('email', '') - if request.user.is_authenticated(): + if request.user.is_authenticated: TutorialMissingComponent.objects.create( user = request.user, tutorial_resource = tr_rec, @@ -3843,7 +3843,7 @@ def allocate_tutorial(request, sel_status, role): global global_req global_req = request user = User.objects.get(id = request.user.id) - if not (user.is_authenticated() and + if not (user.is_authenticated and (is_contributor(user) or is_language_manager(request.user) or is_administrator(request.user))): raise PermissionDenied() diff --git a/events/decorators.py b/events/decorators.py index 3a7d94f5c..344633033 100644 --- a/events/decorators.py +++ b/events/decorators.py @@ -33,7 +33,7 @@ def _wrapped_view(request, *args, **kwargs): def group_required(*group_names): def in_groups(request): - if request.user.is_authenticated(): + if request.user.is_authenticated: if 'Organiser' in group_names: if bool(request.user.groups.filter(name__in=group_names)) and is_organiser(request.user): return True diff --git a/spoken/views.py b/spoken/views.py index 56053f238..9c53a2a5b 100644 --- a/spoken/views.py +++ b/spoken/views.py @@ -923,7 +923,7 @@ def saveVideoData(request): "mongodb://"+MONGO_USER+':'+MONGO_PASS+'@'+MONGO_HOST+':'+MONGO_PORT+\ '/?authSource='+MONGO_DB) mydb = myclient[MONGO_DB] - if request.user.is_authenticated(): + if request.user.is_authenticated: d = request.POST name = request.user.username if not name: From e1b0aec3f1a9e0f00008317faa855f5db9b35c6b Mon Sep 17 00:00:00 2001 From: Naman Sharma Date: Fri, 11 Sep 2026 08:20:16 +0000 Subject: [PATCH 04/12] code changes till step 4 as per creation doc, and static template changes --- creation/forms.py | 4 ++++ creation/views.py | 8 ++++---- static/admin/auth/user/change_password.html | 2 +- static/admin/base.html | 2 +- static/admin/change_form.html | 2 +- static/admin/change_list.html | 2 +- static/admin/change_list_results.html | 2 +- static/admin/edit_inline/stacked.html | 2 +- static/admin/edit_inline/tabular.html | 2 +- static/admin/index.html | 2 +- static/admin/login.html | 2 +- static/admin/search_form.html | 2 +- 12 files changed, 18 insertions(+), 14 deletions(-) diff --git a/creation/forms.py b/creation/forms.py index 886403082..113e004ce 100644 --- a/creation/forms.py +++ b/creation/forms.py @@ -795,6 +795,10 @@ class AvailableFossForm(forms.ModelForm): error_messages = {'required': 'FOSS category field required.'} ) + class Meta(object): + model = TutorialDetail + fields = '__all__' + class UpdatePrerequisiteForm(forms.Form): source_foss = forms.ChoiceField( choices = [('', '-- Select Foss --'),] + list(FossCategory.objects.filter(status=1).values_list('id', 'foss').order_by('foss')), diff --git a/creation/views.py b/creation/views.py index 542d22183..eaa497e07 100644 --- a/creation/views.py +++ b/creation/views.py @@ -308,7 +308,7 @@ def creation_add_role(request, role_type,languages): @login_required def creation_accept_role_request(request, recid, user_type): - if is_administrator: + if is_administrator(request.user): roles = { 0: 'Contributor', 1: 'External-Contributor', @@ -349,7 +349,7 @@ def creation_accept_role_request(request, recid, user_type): @login_required def creation_reject_role_request(request, recid, user_type): - if is_administrator: + if is_administrator(request.user): roles = { 0: 'Contributor', 1: 'External-Contributor', @@ -436,7 +436,7 @@ def creation_revoke_role_request(request, role_type,languages): @login_required def creation_list_role_requests(request, tabid = 'contributor'): - if is_administrator: + if is_administrator(request.user): contrib_recs = RoleRequest.objects.filter(role_type = 0, status = 0).order_by('-updated') ext_contrib_recs = RoleRequest.objects.filter(role_type = 1, status = 0).order_by('-updated') admin_recs = RoleRequest.objects.filter(role_type = 2, status = 0).order_by('-updated') @@ -456,7 +456,7 @@ def creation_list_role_requests(request, tabid = 'contributor'): @login_required def creation_lang_list_role_requests(request, tabid = 'contributor'): - if is_language_manager: + if is_language_manager(request.user): language_manager_langs = LanguageManager.objects.filter( user_id= request.user.id).values_list('language_id') contrib_recs = RoleRequest.objects.filter(role_type = 0, diff --git a/static/admin/auth/user/change_password.html b/static/admin/auth/user/change_password.html index 2a1b4d3c9..58b136c5f 100644 --- a/static/admin/auth/user/change_password.html +++ b/static/admin/auth/user/change_password.html @@ -1,5 +1,5 @@ {% extends "admin/base_site.html" %} -{% load i18n admin_static %} +{% load i18n static %} {% load admin_urls %} {% block extrahead %}{{ block.super }} diff --git a/static/admin/base.html b/static/admin/base.html index 140d39668..ee07873cc 100644 --- a/static/admin/base.html +++ b/static/admin/base.html @@ -1,4 +1,4 @@ -{% load admin_static %} +{% load static %} {% block title %}{% endblock %} diff --git a/static/admin/change_form.html b/static/admin/change_form.html index d4935ed78..77b1d9a12 100644 --- a/static/admin/change_form.html +++ b/static/admin/change_form.html @@ -1,5 +1,5 @@ {% extends "admin/base_site.html" %} -{% load i18n admin_urls admin_static admin_modify %} +{% load i18n admin_urls static admin_modify %} {% block extrahead %}{{ block.super }} diff --git a/static/admin/change_list.html b/static/admin/change_list.html index 15583d1a8..d6f610028 100644 --- a/static/admin/change_list.html +++ b/static/admin/change_list.html @@ -1,5 +1,5 @@ {% extends "admin/base_site.html" %} -{% load i18n admin_urls admin_static admin_list %} +{% load i18n admin_urls static admin_list %} {% block extrastyle %} {{ block.super }} diff --git a/static/admin/change_list_results.html b/static/admin/change_list_results.html index 419cf1e46..b22ddb840 100644 --- a/static/admin/change_list_results.html +++ b/static/admin/change_list_results.html @@ -1,4 +1,4 @@ -{% load i18n admin_static %} +{% load i18n static %} {% if result_hidden_fields %}
{# DIV for HTML validation #} {% for item in result_hidden_fields %}{{ item }}{% endfor %} diff --git a/static/admin/edit_inline/stacked.html b/static/admin/edit_inline/stacked.html index 32917756b..f93ea0f97 100644 --- a/static/admin/edit_inline/stacked.html +++ b/static/admin/edit_inline/stacked.html @@ -1,4 +1,4 @@ -{% load i18n admin_static %} +{% load i18n static %}

{{ inline_admin_formset.opts.verbose_name_plural|title }}

{{ inline_admin_formset.formset.management_form }} diff --git a/static/admin/edit_inline/tabular.html b/static/admin/edit_inline/tabular.html index 131fdb320..43dfd409b 100644 --- a/static/admin/edit_inline/tabular.html +++ b/static/admin/edit_inline/tabular.html @@ -1,4 +1,4 @@ -{% load i18n admin_static admin_modify %} +{% load i18n static admin_modify %}