summaryrefslogtreecommitdiff
path: root/tbc/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'tbc/views.py')
-rw-r--r--tbc/views.py132
1 files changed, 92 insertions, 40 deletions
diff --git a/tbc/views.py b/tbc/views.py
index 7c3f43b..59de552 100644
--- a/tbc/views.py
+++ b/tbc/views.py
@@ -24,20 +24,24 @@ def email_send(to,subject,msg):
smtpObj.sendmail(mail_from, to, message.as_string())
except SMTPException:
return HttpResponse("Error:unable to send email")
+
+
+def is_reviewer(user):
+ if user.groups.filter(name='reviewer').count() == 1:
+ return True
+
def Home(request):
context = {}
images = []
if request.user.is_anonymous():
- context['user'] = None
+ context['anonymous'] = True
else:
- context['user'] = request.user
+ if is_reviewer(request.user):
+ context['reviewer'] = request.user
+ else:
+ context['user'] = request.user
books = Book.objects.filter(approved=True)[0:6]
- """if len(books)>=6:
- context['books'] = books
- else:
- books = Book.objects.all()
- context['books'] = books"""
for book in books:
images.append(ScreenShots.objects.filter(book=book)[0])
context['images'] = images
@@ -50,19 +54,24 @@ def Home(request):
def UserLogin(request):
+ context = {}
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
curr_user = authenticate(username=username, password=password)
login(request, curr_user)
- try:
- Profile.objects.get(user=curr_user)
- return HttpResponseRedirect("/")
- except:
- return HttpResponseRedirect("/profile")
+ if curr_user.groups.filter(name='reviewer').count() == 1:
+ context['reviewer'] = curr_user
+ return HttpResponseRedirect("/book-review")
+ else:
+ context['user'] = curr_user
+ try:
+ Profile.objects.get(user=curr_user)
+ return HttpResponseRedirect("/")
+ except:
+ return HttpResponseRedirect("/profile")
else:
form = UserLoginForm()
- context = {}
context.update(csrf(request))
context['form'] = form
return render_to_response('tbc/login.html', context)
@@ -122,6 +131,7 @@ def UserLogout(request):
def SubmitBook(request):
curr_user = request.user
+ context = {}
if request.method == 'POST':
form = BookForm(request.POST)
if form.is_valid():
@@ -129,15 +139,15 @@ def SubmitBook(request):
profile = Profile.objects.get(user=request.user.id)
data.contributor = profile
data.save()
+ context['user'] = curr_user
return HttpResponseRedirect('/upload-content')
else:
- context = {}
context.update(csrf(request))
context['form'] = form
+ context['user'] = curr_user
return render_to_response('tbc/submit-book.html', context)
else:
form = BookForm()
- context = {}
context.update(csrf(request))
context['form'] = form
context['user'] = curr_user
@@ -213,9 +223,12 @@ def GetZip(request, book_id=None):
def BookDetails(request, book_id=None):
context = {}
if request.user.is_anonymous():
- context['user'] = None
+ context['anonymous'] = True
else:
- context['user'] = request.user
+ if is_reviewer(request.user):
+ context['reviewer'] = request.user
+ else:
+ context['user'] = request.user
book = Book.objects.get(id=book_id)
chapters = Chapters.objects.filter(book=book)
images = ScreenShots.objects.filter(book=book)
@@ -227,21 +240,25 @@ def BookDetails(request, book_id=None):
def BookReview(request, book_id=None):
context = {}
- if book_id:
- book = Book.objects.get(id=book_id)
- chapters = Chapters.objects.filter(book=book)
- images = ScreenShots.objects.filter(book=book)
- context['chapters'] = chapters
- context['images'] = images
- #context['user'] = user
- context['book'] = book
- context.update(csrf(request))
- return render_to_response('tbc/book-review-details.html', context)
+ if is_reviewer(request.user):
+ if book_id:
+ book = Book.objects.get(id=book_id)
+ chapters = Chapters.objects.filter(book=book)
+ images = ScreenShots.objects.filter(book=book)
+ context['chapters'] = chapters
+ context['images'] = images
+ context['book'] = book
+ context['reviewer'] = request.user
+ context.update(csrf(request))
+ return render_to_response('tbc/book-review-details.html', context)
+ else:
+ books = Book.objects.filter(approved=False)
+ context['books'] = books
+ context['reviewer'] = request.user
+ context.update(csrf(request))
+ return render_to_response('tbc/book-review.html', context)
else:
- books = Book.objects.filter(approved=False)
- context['books'] = books
- context.update(csrf(request))
- return render_to_response('tbc/book-review.html', context)
+ return HttpResponse("You are not allowed to view this page.")
def ApproveBook(request, book_id=None):
@@ -271,26 +288,61 @@ def ApproveBook(request, book_id=None):
fp.write("Edition: "+book.edition)
fp.close()
x = shutil.copytree(book.title, zip_path+book.title)
+ subject = "Python-TBC: Book Completion"
+ message = "Hi "+book.contributor.user.first_name+",\n"+\
+ "Congratulations !\n"+\
+ "The book - "+book.title+" is now complete.\n"+\
+ "Please visit the below given link to download the forms to be filled to complete the formalities.\n"+\
+ "http://dev.fossee.in/internship-forms"+"\n"+\
+ "The forms should be duly filled(fill only sections which are applicable) & submit at the following address:\n"+\
+ "Dr. Prabhu Ramachandran, \n"+\
+ "Department of Aerospace Engineering,\n"+\
+ "IIT Bombay, Powai, Mumbai - 400076\n"+\
+ "Kindly, write Python Texbook Companion on top of the envelope.\n\n\n"+\
+ "Regards,\n"+"Python TBC,\n"+"FOSSEE, IIT - Bombay"
+ return HttpResponse(message)
+ email_send(book.reviewer.email, subject, message)
context['user'] = user
return HttpResponseRedirect("/book-review")
elif request.method == 'POST' and request.POST['approve_notify'] == "notify":
- context['user'] = user
- book = Book.objects.get(id=book_id)
- subject = "Python-TBC: Book Submission"
- message = "Hi "+Book.reviewer.name+",\n"\
- "A book has been submitted on the interface.\n"\
- ""
- return HttpResponse("Mail Sent")
+ return HttpResponseRedirect("/notify-changes/"+book_id)
else:
context['user'] = user
return HttpResponseRedirect("/book-review/"+book_id)
+
+
+def NotifyChanges(request, book_id=None):
+ context = {}
+ if is_reviewer(request.user):
+ book = Book.objects.get(id=book_id)
+ if request.method == 'POST':
+ changes_required = request.POST['changes_required']
+ subject = "Python-TBC: Corrections Required"
+ message = "Hi, "+book.contributor.user.first_name+",\n"+\
+ "Book titled, "+book.title+" requires following changes: \n"+\
+ changes_required
+ context.update(csrf(request))
+ email_send(book.contributor.user.email, subject, message)
+ else:
+ context['book'] = book
+ context['book_id'] = book_id
+ context['mailto'] = book.contributor.user.email
+ context['reviewer'] = request.user
+ context.update(csrf(request))
+ return render_to_response('tbc/notify-changes.html', context)
+ else:
+ return HttpResponse('invalid user')
+
def BrowseBooks(request):
context = {}
if request.user.is_anonymous():
- context['user'] = None
+ context['anonymous'] = True
else:
- context['user'] = request.user
+ if is_reviewer(request.user):
+ context['reviewer'] = request.user
+ else:
+ context['user'] = request.user
images = []
if request.method == 'POST':
category = request.POST['category']