summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--PythonTBC/settings.py8
-rw-r--r--PythonTBC/urls.py18
-rw-r--r--commentingapp/commenting_new.py6
-rw-r--r--commentingapp/models.py5
-rw-r--r--commentingapp/views.py2
-rw-r--r--comments/admin.py2
-rw-r--r--scripts/crawler/tbc_web_crawler/spiders/tbc_spider.py2
-rw-r--r--scripts/database_updater.py4
-rw-r--r--scripts/split_json.py8
-rw-r--r--tbc/admin.py2
-rw-r--r--tbc/forms.py2
-rw-r--r--tbc/models.py20
-rw-r--r--tbc/urls.py107
-rw-r--r--tbc/views.py12
-rw-r--r--tbc_error_page/models.py4
-rw-r--r--tbc_error_page/views.py2
16 files changed, 103 insertions, 101 deletions
diff --git a/PythonTBC/settings.py b/PythonTBC/settings.py
index 28eda1d..46131a9 100644
--- a/PythonTBC/settings.py
+++ b/PythonTBC/settings.py
@@ -1,7 +1,7 @@
# Django settings for PythonTBC project.
from os.path import *
-from local import *
+from .local import *
DEBUG = True
TEMPLATE_DEBUG = DEBUG
@@ -97,7 +97,7 @@ SECRET_KEY = 'a8zm$)bj&k9p2$1*biby#mo5fga#8$sr4&cmz%h=vum-xkbkme'
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
-# 'django.template.loaders.eggs.Loader',
+ #'django.template.loaders.eggs.Loader',
)
MIDDLEWARE_CLASSES = (
@@ -138,15 +138,13 @@ INSTALLED_APPS = (
# 'django.contrib.admindocs',
'tbc',
'comments',
- 'south',
+ #'south',
'commentingapp',
'tbc_error_page',
'taggit',
'taggit_templatetags2',
)
-
-
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
# A sample logging configuration. The only tangible logging
diff --git a/PythonTBC/urls.py b/PythonTBC/urls.py
index 34bc0f6..77d166a 100644
--- a/PythonTBC/urls.py
+++ b/PythonTBC/urls.py
@@ -1,15 +1,17 @@
from django.conf.urls import patterns, include, url
-
+import tbc_error_page.views
+import commentingapp.views
+import django.contrib.sitemaps.views
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
-from sitemap import TbcBookSitemap
+from .sitemap import TbcBookSitemap
sitemaps = {
'book': TbcBookSitemap,
}
-urlpatterns = patterns('',
+urlpatterns = [
# Examples:
# url(r'^$', 'PythonTBC.views.home', name='home'),
# url(r'^PythonTBC/', include('PythonTBC.foo.urls')),
@@ -20,12 +22,12 @@ urlpatterns = patterns('',
# Uncomment the next line to enable the admin:
url(r'^admin', include(admin.site.urls)),
url(r'^', include('tbc.urls', namespace='tbc')),
- url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),
+ url(r'^sitemap\.xml$', django.contrib.sitemaps.views.sitemap, {'sitemaps': sitemaps}),
- url(r'^admin-tools/commenting', 'commentingapp.views.commenting', name = 'commenting'),
- url(r'^admin-tools/error_page', 'tbc_error_page.views.error', name = 'error_page'),
- url(r'^admin-tools/broken_page', 'tbc_error_page.views.broken', name = 'broken_page'),
+ url(r'^admin-tools/commenting', commentingapp.views.commenting, name = 'commenting'),
+ url(r'^admin-tools/error_page', tbc_error_page.views.error, name = 'error_page'),
+ url(r'^admin-tools/broken_page', tbc_error_page.views.broken, name = 'broken_page'),
-)
+]
diff --git a/commentingapp/commenting_new.py b/commentingapp/commenting_new.py
index 33f4923..77c0fc5 100644
--- a/commentingapp/commenting_new.py
+++ b/commentingapp/commenting_new.py
@@ -3,7 +3,7 @@
import requests
import collections
import os
-from urlparse import urljoin
+from urllib.parse import urljoin
@@ -75,7 +75,7 @@ class DisqusCommenting(object):
json_like_list = []
- for thread_id in self.counter.keys(): # Find a better way to do this
+ for thread_id in list(self.counter.keys()): # Find a better way to do this
comment_list = []
payload = {"api_key": self.public_key, "thread": thread_id}
thread_url = urljoin(self.base_disqus_url,self.api_version)+"/threads/list.json"
@@ -103,4 +103,4 @@ if __name__ == "__main__":
z = x.get_thread_ids()
z1 = x.get_comments()
- print z1 # this will print out a json like list of all the urls and the comments on each url
+ print(z1) # this will print out a json like list of all the urls and the comments on each url
diff --git a/commentingapp/models.py b/commentingapp/models.py
index 79e120e..66ae0a1 100644
--- a/commentingapp/models.py
+++ b/commentingapp/models.py
@@ -1,4 +1,3 @@
-from __future__ import unicode_literals
from django.db import models
from tbc.models import Chapters, Book
from django.contrib.auth.models import User
@@ -14,9 +13,9 @@ class Url (models.Model):
url = models.URLField()
def get_contributor_details(self, counter):
- notebooks = [os.path.join(chapter_name.split("/")[-2], chapter_name.split('/')[-1]) for chapter_name in counter.keys()]
+ notebooks = [os.path.join(chapter_name.split("/")[-2], chapter_name.split('/')[-1]) for chapter_name in list(counter.keys())]
contributor_list = []
- for notebook,url,number_of_comments in zip(notebooks, counter.keys(), counter.values()):
+ for notebook,url,number_of_comments in zip(notebooks, list(counter.keys()), list(counter.values())):
contributor_dict = {}
contributor_id = Book.objects.filter(Q(chapters__notebook = notebook)).values_list("contributor_id", flat = True)
contributor = User.objects.filter(id = contributor_id[0]).values("email", "first_name", "last_name")
diff --git a/commentingapp/views.py b/commentingapp/views.py
index 66606b7..80f37e8 100644
--- a/commentingapp/views.py
+++ b/commentingapp/views.py
@@ -1,6 +1,6 @@
from django.shortcuts import render, render_to_response
from django.contrib.auth.decorators import login_required
-from django.core.context_processors import csrf
+from django.template.context_processors import csrf
from .models import Url, Comments
from django.db.models import Q
from collections import Counter
diff --git a/comments/admin.py b/comments/admin.py
index 6ac89ae..17f2113 100644
--- a/comments/admin.py
+++ b/comments/admin.py
@@ -1,4 +1,4 @@
-from models import *
+from .models import *
from django.contrib import admin
admin.site.register(Comment)
diff --git a/scripts/crawler/tbc_web_crawler/spiders/tbc_spider.py b/scripts/crawler/tbc_web_crawler/spiders/tbc_spider.py
index 9688e70..befc63f 100644
--- a/scripts/crawler/tbc_web_crawler/spiders/tbc_spider.py
+++ b/scripts/crawler/tbc_web_crawler/spiders/tbc_spider.py
@@ -1,5 +1,5 @@
import scrapy
-from items import TbcErrorItems, TbcBrokenItems
+from .items import TbcErrorItems, TbcBrokenItems
from scrapy.utils.response import get_base_url
from scrapy.utils.url import urljoin_rfc
from scrapy.http import Request
diff --git a/scripts/database_updater.py b/scripts/database_updater.py
index 71813ea..6bbb1f6 100644
--- a/scripts/database_updater.py
+++ b/scripts/database_updater.py
@@ -74,5 +74,5 @@ if __name__ == '__main__':
b = a.fetch_comments_from_script()
c = a.add_comments_to_db() #This should always be before delete_redundant_comments
d = a.delete_redundant_comments() #This should always be after add_comments_to_db
- print c
- print d
+ print (c)
+ print (d)
diff --git a/scripts/split_json.py b/scripts/split_json.py
index baa0b90..a6905db 100644
--- a/scripts/split_json.py
+++ b/scripts/split_json.py
@@ -1,4 +1,4 @@
-import cPickle
+import pickle
import json
from os.path import dirname, abspath,join
try:
@@ -7,14 +7,14 @@ try:
json_dump.close()
a = [saved_data for saved_data in json_data if str(saved_data).startswith("{u'ch")]
with open(join(dirname(abspath(dirname(__file__))),'tbc_error_page/error.pickle'), "w+") as error_json:
- cPickle.dump(a, error_json)
+ pickle.dump(a, error_json)
error_json.close()
b = [saved_data for saved_data in json_data if str(saved_data).startswith("{u'br")]
with open(join(dirname(abspath(dirname(__file__))),'tbc_error_page/broken.pickle'), "w+") as broken_json:
- cPickle.dump(b, broken_json)
+ pickle.dump(b, broken_json)
broken_json.close()
except ValueError:
- print "Couldn't find file"
+ print("Couldn't find file")
diff --git a/tbc/admin.py b/tbc/admin.py
index 30b5b34..4707d33 100644
--- a/tbc/admin.py
+++ b/tbc/admin.py
@@ -1,4 +1,4 @@
-from models import *
+from .models import *
from django.contrib import admin
admin.site.register(Profile)
diff --git a/tbc/forms.py b/tbc/forms.py
index aa3b477..effe45b 100644
--- a/tbc/forms.py
+++ b/tbc/forms.py
@@ -16,7 +16,7 @@ class UserProfileForm(forms.ModelForm):
self.fields['about_proj'].label = "How did you come to know about the project"
class Meta:
model = Profile
- exclude = ('user')
+ exclude = ('user',)
widgets = {
'about':forms.TextInput(attrs={'placeholder':'Tell us about yourself'}),
'dob':forms.TextInput(attrs={'placeholder':'mm/dd/yyyy'}),
diff --git a/tbc/models.py b/tbc/models.py
index 7deb31c..9b2adbf 100644
--- a/tbc/models.py
+++ b/tbc/models.py
@@ -2,7 +2,7 @@ from django.db import models
from django.contrib.auth.models import User
from PythonTBC import settings
from django.contrib.admin.models import LogEntry
-from local import sitemap_path
+from .local import sitemap_path
from taggit.managers import TaggableManager
CATEGORY = (("fluid mechanics", "Fluid Mechanics"),
@@ -82,7 +82,7 @@ class Profile(models.Model):
about_proj = models.CharField(max_length=50, choices=ABOUT_PROJ)
city = models.CharField(max_length=50, default=None)
state = models.CharField(max_length=50, default=None)
- pin_code = models.IntegerField(max_length=6, default=None)
+ pin_code = models.IntegerField(default=None)
def __unicode__(self):
name = self.user.first_name or 'Profile'
return '%s'%(name)
@@ -103,7 +103,7 @@ class Book(models.Model):
isbn = models.CharField(max_length=50)
edition = models.CharField(max_length=15)
year_of_pub = models.CharField(max_length=4)
- no_chapters = models.IntegerField(max_length=2, default=0, blank=True)
+ no_chapters = models.IntegerField(default=0, blank=True)
contributor = models.ForeignKey(Profile)
reviewer = models.ForeignKey(Reviewer)
approved = models.BooleanField(default=False)
@@ -144,7 +144,7 @@ class TempBook(models.Model):
isbn = models.CharField(max_length=50)
edition = models.CharField(max_length=15)
year_of_pub = models.CharField(max_length=4)
- no_chapters = models.IntegerField(max_length=2)
+ no_chapters = models.IntegerField()
def __unicode__(self):
name = self.title or 'Book'
return '%s'%(name)
@@ -177,12 +177,12 @@ class ActivityLog(LogEntry):
class AicteBook(models.Model):
title = models.TextField()
- author = models.CharField(max_length=300L)
- category = models.CharField(max_length=32L)
- publisher_place = models.CharField(max_length=200L)
- isbn = models.CharField(max_length=50L)
- edition = models.CharField(max_length=15L)
- year_of_pub = models.CharField(max_length=4L)
+ author = models.CharField(max_length=300)
+ category = models.CharField(max_length=32)
+ publisher_place = models.CharField(max_length=200)
+ isbn = models.CharField(max_length=50)
+ edition = models.CharField(max_length=15)
+ year_of_pub = models.CharField(max_length=4)
proposed = models.BooleanField(default=False)
def __unicode__(self):
notebook = self.title or 'Book'
diff --git a/tbc/urls.py b/tbc/urls.py
index 3db075b..4177f2f 100644
--- a/tbc/urls.py
+++ b/tbc/urls.py
@@ -1,61 +1,64 @@
from django.conf.urls import patterns, include, url
+from django.conf import settings
+from django.conf.urls.static import static
+from django.contrib import admin
+import tbc.views
-
-urlpatterns = patterns('',
- url(r'^$', 'tbc.views.home', name='home'),
- url(r'^internship-forms/$', 'tbc.views.internship_forms', name='internship_forms'),
- url(r'^about-pythontbc/$', 'tbc.views.about_pytbc', name='about_pytbc'),
+urlpatterns = [
+ url(r'^$', tbc.views.home, name='home'),
+ url(r'^internship-forms/$', tbc.views.internship_forms, name='internship_forms'),
+ url(r'^about-pythontbc/$', tbc.views.about_pytbc, name='about_pytbc'),
- url(r'^sample-notebook/$', 'tbc.views.sample_ipynb', name='sample_ipynb'),
- url(r'^register/$', 'tbc.views.user_register', name='user_register'),
- url(r'^login/$', 'tbc.views.user_login', name='user_login'),
- url(r'^logout/$', 'tbc.views.user_logout', name='user_logout'),
- url(r'^profile/$', 'tbc.views.user_profile', name='user_profile'),
- url(r'^update-profile/$', 'tbc.views.update_profile', name='update_profile'),
- url(r'^forgot-password/$', 'tbc.views.forgot_password', name='forgot_password'),
- url(r'^update-password/$', 'tbc.views.update_password', name='update_password'),
- url(r'^admin-tools/$', 'tbc.views.admin_tools', name='admin_tools'),
+ url(r'^sample-notebook/$', tbc.views.sample_ipynb, name='sample_ipynb'),
+ url(r'^register/$', tbc.views.user_register, name='user_register'),
+ url(r'^login/$', tbc.views.user_login, name='user_login'),
+ url(r'^logout/$', tbc.views.user_logout, name='user_logout'),
+ url(r'^profile/$', tbc.views.user_profile, name='user_profile'),
+ url(r'^update-profile/$', tbc.views.update_profile, name='update_profile'),
+ url(r'^forgot-password/$', tbc.views.forgot_password, name='forgot_password'),
+ url(r'^update-password/$', tbc.views.update_password, name='update_password'),
+ url(r'^admin-tools/$', tbc.views.admin_tools, name='admin_tools'),
- url(r'^submit-proposal/$', 'tbc.views.submit_proposal', name='submit_proposal'),
- url(r'^submit-aicte-proposal/$', 'tbc.views.list_aicte', name='list_aicte'),
- url(r'^submit-aicte-proposal/(?P<aicte_book_id>\d+)/$', 'tbc.views.submit_aicte_proposal', name='submit_aicte_proposal'),
- url(r'^submit-book/$', 'tbc.views.submit_book', name='submit_book'),
- url(r'^submit-sample/$', 'tbc.views.submit_sample', name='submit_sample'),
- url(r'^submit-sample/(?P<proposal_id>\d+)$', 'tbc.views.submit_sample', name='submit_sample'),
- url(r'^submit-sample/(?P<proposal_id>\d+)/(?P<old_notebook_id>\d+)$', 'tbc.views.submit_sample', name='submit_sample'),
- url(r'^confirm-book-details/$', 'tbc.views.confirm_book_details', name='confirm_book_details'),
- url(r'^submit-book-old/$', 'tbc.views.submit_book', name='submit_book'),
- url(r'^submit-code/$', 'tbc.views.submit_code', name='submit_code'),
- url(r'^submit-code-old/(?P<book_id>\d+)$', 'tbc.views.submit_code_old', name='submit_code_old'),
- url(r'^update-content/(?P<book_id>\d+)$', 'tbc.views.update_content', name='update_content'),
- url(r'^get-zip/(?P<book_id>\d+)$', 'tbc.views.get_zip', name='get_zip'),
- url(r'^browse-books/$', 'tbc.views.browse_books', name='browse_books'),
- url(r'^browse-books/(?P<category>.+)$', 'tbc.views.browse_books', name='browse_books'),
- url(r'^convert-notebook/(?P<notebook_path>.+)$', 'tbc.views.convert_notebook', name='convert_notebook'),
- url(r'^book-details/(?P<book_id>\d+)/$', 'tbc.views.book_details', name='book_details'),
- url(r'^completed-books/$', 'tbc.views.completed_books', name='completed_books'),
- url(r'^completed-books/(?P<category>.+)$', 'tbc.views.completed_books', name='completed_books'),
- url(r'^books-under-progress/$', 'tbc.views.books_under_progress', name='books_under_progress'),
- url(r'^redirect-ipynb/(?P<notebook_path>.+)$', 'tbc.views.redirect_to_ipynb', name='redirect_to_ipynb'),
- url(r'^get-certificate/$', 'tbc.views.get_certificate', name='get_certificate'),
- url(r'^get-certificate/(?P<book_id>\d+)/$', 'tbc.views.get_certificate', name='get_certificate'),
+ url(r'^submit-proposal/$', tbc.views.submit_proposal, name='submit_proposal'),
+ url(r'^submit-aicte-proposal/$', tbc.views.list_aicte, name='list_aicte'),
+ url(r'^submit-aicte-proposal/(?P<aicte_book_id>\d+)/$', tbc.views.submit_aicte_proposal, name='submit_aicte_proposal'),
+ url(r'^submit-book/$', tbc.views.submit_book, name='submit_book'),
+ url(r'^submit-sample/$', tbc.views.submit_sample, name='submit_sample'),
+ url(r'^submit-sample/(?P<proposal_id>\d+)$', tbc.views.submit_sample, name='submit_sample'),
+ url(r'^submit-sample/(?P<proposal_id>\d+)/(?P<old_notebook_id>\d+)$', tbc.views.submit_sample, name='submit_sample'),
+ url(r'^confirm-book-details/$', tbc.views.confirm_book_details, name='confirm_book_details'),
+ url(r'^submit-book-old/$', tbc.views.submit_book, name='submit_book'),
+ url(r'^submit-code/$', tbc.views.submit_code, name='submit_code'),
+ url(r'^submit-code-old/(?P<book_id>\d+)$', tbc.views.submit_code_old, name='submit_code_old'),
+ url(r'^update-content/(?P<book_id>\d+)$', tbc.views.update_content, name='update_content'),
+ url(r'^get-zip/(?P<book_id>\d+)$', tbc.views.get_zip, name='get_zip'),
+ url(r'^browse-books/$', tbc.views.browse_books, name='browse_books'),
+ url(r'^browse-books/(?P<category>.+)$', tbc.views.browse_books, name='browse_books'),
+ url(r'^convert-notebook/(?P<notebook_path>.+)$', tbc.views.convert_notebook, name='convert_notebook'),
+ url(r'^book-details/(?P<book_id>\d+)/$', tbc.views.book_details, name='book_details'),
+ url(r'^completed-books/$', tbc.views.completed_books, name='completed_books'),
+ url(r'^completed-books/(?P<category>.+)$', tbc.views.completed_books, name='completed_books'),
+ url(r'^books-under-progress/$', tbc.views.books_under_progress, name='books_under_progress'),
+ url(r'^redirect-ipynb/(?P<notebook_path>.+)$', tbc.views.redirect_to_ipynb, name='redirect_to_ipynb'),
+ url(r'^get-certificate/$', tbc.views.get_certificate, name='get_certificate'),
+ url(r'^get-certificate/(?P<book_id>\d+)/$', tbc.views.get_certificate, name='get_certificate'),
- url(r'^book-review/$', 'tbc.views.book_review', name='book_review'),
- url(r'^proposal-review/$', 'tbc.views.review_proposals', name='review_proposals'),
- url(r'^proposal-review/(?P<proposal_id>\d+)/(?P<textbook_id>\d+)$', 'tbc.views.review_proposals', name='review_proposals'),
- url(r'^disapprove-sample-notebook/(?P<proposal_id>\d+)$', 'tbc.views.disapprove_proposal', name='disapprove_proposal'),
- url(r'^allot-book/(?P<proposal_id>\d+)$', 'tbc.views.allot_book', name='allot_book'),
- url(r'^reject-proposal/(?P<proposal_id>\d+)$', 'tbc.views.reject_proposal', name='reject_proposal'),
- url(r'^book-review/(?P<book_id>\d+)$', 'tbc.views.book_review', name='book_review'),
- url(r'^approve-book/(?P<book_id>\d+)$', 'tbc.views.approve_book', name='approve_book'),
- url(r'^notify-changes/(?P<book_id>\d+)$', 'tbc.views.notify_changes', name='notify_changes'),
- url(r'^brokenbooks/$', 'tbc.views.get_broken_books', name='broken_books'),
- url(r'^link-image/$', 'tbc.views.link_image', name='link_image'),
- url(r'^books/$', 'tbc.views.books', name='books'),
- url(r'^edit-book/(?P<book_id>\d+)/$', 'tbc.views.edit_book', name='edit_book'),
+ url(r'^book-review/$', tbc.views.book_review, name='book_review'),
+ url(r'^proposal-review/$', tbc.views.review_proposals, name='review_proposals'),
+ url(r'^proposal-review/(?P<proposal_id>\d+)/(?P<textbook_id>\d+)$', tbc.views.review_proposals, name='review_proposals'),
+ url(r'^disapprove-sample-notebook/(?P<proposal_id>\d+)$', tbc.views.disapprove_proposal, name='disapprove_proposal'),
+ url(r'^allot-book/(?P<proposal_id>\d+)$', tbc.views.allot_book, name='allot_book'),
+ url(r'^reject-proposal/(?P<proposal_id>\d+)$', tbc.views.reject_proposal, name='reject_proposal'),
+ url(r'^book-review/(?P<book_id>\d+)$', tbc.views.book_review, name='book_review'),
+ url(r'^approve-book/(?P<book_id>\d+)$', tbc.views.approve_book, name='approve_book'),
+ url(r'^notify-changes/(?P<book_id>\d+)$', tbc.views.notify_changes, name='notify_changes'),
+ url(r'^brokenbooks/$', tbc.views.get_broken_books, name='broken_books'),
+ url(r'^link-image/$', tbc.views.link_image, name='link_image'),
+ url(r'^books/$', tbc.views.books, name='books'),
+ url(r'^edit-book/(?P<book_id>\d+)/$', tbc.views.edit_book, name='edit_book'),
# ajax urls
- url(r'^ajax/matching-books/$', 'tbc.views.ajax_matching_books', name='AjaxMatchingBooks'),
+ url(r'^ajax/matching-books/$', tbc.views.ajax_matching_books, name='AjaxMatchingBooks'),
-)
+]
diff --git a/tbc/views.py b/tbc/views.py
index d14093e..3e9f0f5 100644
--- a/tbc/views.py
+++ b/tbc/views.py
@@ -3,17 +3,17 @@ from django.contrib.contenttypes.models import ContentType
from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.shortcuts import render_to_response, redirect
from django.views.decorators.csrf import csrf_exempt
-from django.core.context_processors import csrf
+from django.template.context_processors import csrf
from django.contrib.auth import authenticate, login, logout
from django.contrib.admin.models import CHANGE
from django.contrib.auth.decorators import login_required
from django.template import RequestContext
-from models import *
+from .models import *
from tbc.forms import *
-import local
+from . import local
import os
import zipfile
-import StringIO
+import io
import smtplib
import shutil
import string
@@ -1049,7 +1049,7 @@ def generate_zip(book_id):
def get_zip(request, book_id=None):
user = request.user
s, zipfile_name = generate_zip(book_id)
- resp = HttpResponse(s.getvalue(), mimetype = "application/x-zip-compressed")
+ resp = HttpResponse(s.getvalue(), content_type = "application/x-zip-compressed")
resp['Content-Disposition'] = 'attachment; filename=%s' % zipfile_name
return resp
@@ -1362,7 +1362,7 @@ def get_certificate(request, book_id=None):
else:
error = True
add_log(user, book, CHANGE, err, proposal_id)
- except Exception, e:
+ except Exception as e:
error = True
add_log(user, book, CHANGE, e, proposal_id)
diff --git a/tbc_error_page/models.py b/tbc_error_page/models.py
index 82c4da6..3f9b820 100644
--- a/tbc_error_page/models.py
+++ b/tbc_error_page/models.py
@@ -1,12 +1,12 @@
from django.db import models
import os
-import cPickle
+import pickle
def get_json_from_file(filename):
path = os.path.join(os.path.dirname(os.path.abspath(__file__)), filename)
if os.path.isfile(path):
with open(path) as json_dump:
- json_data =cPickle.load(json_dump)
+ json_data =pickle.load(json_dump)
return json_data
else:
return False
diff --git a/tbc_error_page/views.py b/tbc_error_page/views.py
index d788afa..b165f1c 100644
--- a/tbc_error_page/views.py
+++ b/tbc_error_page/views.py
@@ -1,7 +1,7 @@
from django.shortcuts import render_to_response
from .models import Error, Broken, get_json_from_file
from django.contrib.auth.decorators import login_required
-from django.core.context_processors import csrf
+from django.template.context_processors import csrf
from django.http import Http404
from tbc.views import is_reviewer