summaryrefslogtreecommitdiff
path: root/fossee_manim
diff options
context:
space:
mode:
Diffstat (limited to 'fossee_manim')
-rw-r--r--fossee_manim/forms.py241
-rw-r--r--fossee_manim/models.py157
-rw-r--r--fossee_manim/send_mails.py1
-rw-r--r--fossee_manim/static/css/index.css37
-rw-r--r--fossee_manim/templates/fossee_manim/about.html23
-rw-r--r--fossee_manim/templates/fossee_manim/activation.html95
-rw-r--r--fossee_manim/templates/fossee_manim/base.html225
-rw-r--r--fossee_manim/templates/fossee_manim/categorical_list.html54
-rw-r--r--fossee_manim/templates/fossee_manim/delete_proposal.html50
-rw-r--r--fossee_manim/templates/fossee_manim/edit_profile.html32
-rw-r--r--fossee_manim/templates/fossee_manim/edit_proposal.html231
-rw-r--r--fossee_manim/templates/fossee_manim/explore.html46
-rw-r--r--fossee_manim/templates/fossee_manim/faqs.html198
-rw-r--r--fossee_manim/templates/fossee_manim/guidelines.html307
-rw-r--r--fossee_manim/templates/fossee_manim/honorarium.html132
-rw-r--r--fossee_manim/templates/fossee_manim/index.html98
-rw-r--r--fossee_manim/templates/fossee_manim/library.html110
-rw-r--r--fossee_manim/templates/fossee_manim/libraryCS.html20
-rw-r--r--fossee_manim/templates/fossee_manim/libraryMath.html20
-rw-r--r--fossee_manim/templates/fossee_manim/libraryPhys.html18
-rw-r--r--fossee_manim/templates/fossee_manim/login.html43
-rw-r--r--fossee_manim/templates/fossee_manim/logout.html22
-rw-r--r--fossee_manim/templates/fossee_manim/outreach.html10
-rw-r--r--fossee_manim/templates/fossee_manim/profile_updated.html23
-rw-r--r--fossee_manim/templates/fossee_manim/proposal_status.html193
-rw-r--r--fossee_manim/templates/fossee_manim/register.html52
-rw-r--r--fossee_manim/templates/fossee_manim/search_results.html52
-rw-r--r--fossee_manim/templates/fossee_manim/send_proposal.html82
-rw-r--r--fossee_manim/templates/fossee_manim/upload_success.html36
-rw-r--r--fossee_manim/templates/fossee_manim/video.html130
-rw-r--r--fossee_manim/templates/fossee_manim/view_profile.html124
-rw-r--r--fossee_manim/templates/registration/base.html165
-rw-r--r--fossee_manim/templates/registration/password_change_done.html15
-rw-r--r--fossee_manim/templates/registration/password_change_form.html21
-rw-r--r--fossee_manim/templates/registration/password_reset_confirm.html20
-rw-r--r--fossee_manim/templates/registration/password_reset_done.html10
-rw-r--r--fossee_manim/templates/registration/password_reset_form.html22
-rw-r--r--fossee_manim/urls.py30
-rw-r--r--fossee_manim/views.py653
39 files changed, 2392 insertions, 1406 deletions
diff --git a/fossee_manim/forms.py b/fossee_manim/forms.py
index 69f8458..8bb3453 100644
--- a/fossee_manim/forms.py
+++ b/fossee_manim/forms.py
@@ -1,9 +1,9 @@
from django import forms
from django.utils import timezone
from .models import (
- Profile, User, Animation,
- Comment, AnimationStats
- )
+ Profile, User, Animation,
+ Comment, AnimationStats
+)
from string import punctuation, digits
try:
from string import letters
@@ -21,7 +21,7 @@ PWD_CHARS = letters + punctuation + digits
position_choices = (
("contributor", "Contributor"),
("reviewer", "Reviewer")
- )
+)
department_choices = (
("computer", "Dept. of Computer Science/Engg."),
@@ -36,7 +36,7 @@ department_choices = (
("electronics", "Dept. of Electronics"),
("energy science and engineering", "Dept. of Energy Science and Engg"),
("others", "Others")
- )
+)
title = (
("Professor", "Prof."),
@@ -47,7 +47,7 @@ title = (
("Mr", "Mr."),
("Mrs", "Mrs."),
("Miss", "Ms."),
- )
+)
source = (
("FOSSEE Email", "FOSSEE Email"),
@@ -56,46 +56,46 @@ source = (
("Social Media", "Social Media"),
("From other College", "From other College"),
("others", "Others")
- )
+)
states = (
- ("IN-AP", "Andhra Pradesh"),
- ("IN-AR", "Arunachal Pradesh"),
- ("IN-AS", "Assam"),
- ("IN-BR", "Bihar"),
- ("IN-CT", "Chhattisgarh"),
- ("IN-GA", "Goa"),
- ("IN-GJ", "Gujarat"),
- ("IN-HR", "Haryana"),
- ("IN-HP", "Himachal Pradesh"),
- ("IN-JK", "Jammu and Kashmir"),
- ("IN-JH", "Jharkhand"),
- ("IN-KA", "Karnataka"),
- ("IN-KL", "Kerala"),
- ("IN-MP", "Madhya Pradesh"),
- ("IN-MH", "Maharashtra"),
- ("IN-MN", "Manipur"),
- ("IN-ML", "Meghalaya"),
- ("IN-MZ", "Mizoram"),
- ("IN-NL", "Nagaland"),
- ("IN-OR", "Odisha"),
- ("IN-PB", "Punjab"),
- ("IN-RJ", "Rajasthan"),
- ("IN-SK", "Sikkim"),
- ("IN-TN", "Tamil Nadu"),
- ("IN-TG", "Telangana"),
- ("IN-TR", "Tripura"),
- ("IN-UT", "Uttarakhand"),
- ("IN-UP", "Uttar Pradesh"),
- ("IN-WB", "West Bengal"),
- ("IN-AN", "Andaman and Nicobar Islands"),
- ("IN-CH", "Chandigarh"),
- ("IN-DN", "Dadra and Nagar Haveli"),
- ("IN-DD", "Daman and Diu"),
- ("IN-DL", "Delhi"),
- ("IN-LD", "Lakshadweep"),
- ("IN-PY", "Puducherry")
- )
+ ("IN-AP", "Andhra Pradesh"),
+ ("IN-AR", "Arunachal Pradesh"),
+ ("IN-AS", "Assam"),
+ ("IN-BR", "Bihar"),
+ ("IN-CT", "Chhattisgarh"),
+ ("IN-GA", "Goa"),
+ ("IN-GJ", "Gujarat"),
+ ("IN-HR", "Haryana"),
+ ("IN-HP", "Himachal Pradesh"),
+ ("IN-JK", "Jammu and Kashmir"),
+ ("IN-JH", "Jharkhand"),
+ ("IN-KA", "Karnataka"),
+ ("IN-KL", "Kerala"),
+ ("IN-MP", "Madhya Pradesh"),
+ ("IN-MH", "Maharashtra"),
+ ("IN-MN", "Manipur"),
+ ("IN-ML", "Meghalaya"),
+ ("IN-MZ", "Mizoram"),
+ ("IN-NL", "Nagaland"),
+ ("IN-OR", "Odisha"),
+ ("IN-PB", "Punjab"),
+ ("IN-RJ", "Rajasthan"),
+ ("IN-SK", "Sikkim"),
+ ("IN-TN", "Tamil Nadu"),
+ ("IN-TG", "Telangana"),
+ ("IN-TR", "Tripura"),
+ ("IN-UT", "Uttarakhand"),
+ ("IN-UP", "Uttar Pradesh"),
+ ("IN-WB", "West Bengal"),
+ ("IN-AN", "Andaman and Nicobar Islands"),
+ ("IN-CH", "Chandigarh"),
+ ("IN-DN", "Dadra and Nagar Haveli"),
+ ("IN-DD", "Daman and Diu"),
+ ("IN-DL", "Delhi"),
+ ("IN-LD", "Lakshadweep"),
+ ("IN-PY", "Puducherry")
+)
def check_upper(uname):
@@ -111,7 +111,8 @@ class UserRegistrationForm(forms.Form):
a new user to the system"""
required_css_class = 'required'
errorlist_css_class = 'errorlist'
- username = forms.CharField(max_length=32, help_text='''lowercase, letters, digits,
+ username = forms.CharField(
+ max_length=32, help_text='''lowercase, letters, digits,
period and underscore only.''')
email = forms.EmailField()
password = forms.CharField(max_length=32, widget=forms.PasswordInput())
@@ -132,7 +133,9 @@ class UserRegistrationForm(forms.Form):
department = forms.ChoiceField(help_text='Department you work/study',
choices=department_choices)
location = forms.CharField(max_length=255, help_text="Place/City")
- pincode = forms.RegexField(regex=r'^.{6}$', error_messages={'invalid': "Please enter valid PINCODE"})
+ pincode = forms.RegexField(
+ regex=r'^.{6}$', error_messages={
+ 'invalid': "Please enter valid PINCODE"})
state = forms.ChoiceField(choices=states)
how_did_you_hear_about_us = forms.ChoiceField(choices=source)
@@ -213,11 +216,11 @@ class UserLoginForm(forms.Form):
super(UserLoginForm, self).clean()
try:
u_name, pwd = self.cleaned_data["username"],\
- self.cleaned_data["password"]
+ self.cleaned_data["password"]
user = authenticate(username=u_name, password=pwd)
except Exception:
- raise forms.ValidationError\
- ("Username and/or Password is not entered")
+ raise forms.ValidationError(
+ "Username and/or Password is not entered")
if not user:
raise forms.ValidationError("Invalid username/password")
return user
@@ -229,7 +232,7 @@ class ProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ['first_name', 'last_name', 'institute', 'department',
- ]
+ ]
first_name = forms.CharField(max_length=32)
last_name = forms.CharField(max_length=32)
@@ -253,17 +256,142 @@ class AnimationProposal(forms.ModelForm):
# self.fields['outline'].widget.attrs['placeholder'] = 'NOTE: Do\
# add info about prerequisites (if any), possible textbooks and \
# any other related information'
- self.fields['outline'].widget.attrs={
+ self.fields['outline'].widget.attrs = {
+ 'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'NOTE: Do add info about prerequisites (if any), possible textbooks and '
+ 'any other related information')}
+
+ class Meta:
+ model = Animation
+ widgets = {
+ 'sketch': forms.FileInput(),
+ }
+ fields = ['category', 'subcategory', 'title', 'outline', 'tags']
+
+
+class AnimationProposal_edit(forms.ModelForm):
+ """Animation form """
+ required_css_class = 'required'
+ errorlist_css_class = 'errorlist'
+
+ def __init__(self, *args, **kwargs):
+ super(AnimationProposal_edit, self).__init__(*args, **kwargs)
+ self.fields['subcategory'].widget.attrs['placeholder'] = 'Eg: Quantum Mechanics, Topology'
+ # self.fields['outline'].widget.attrs['placeholder'] = 'NOTE: Do\
+ # add info about prerequisites (if any), possible textbooks and \
+ # any other related information'
+ self.fields['outline'].widget.attrs = {
+ 'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'NOTE: Do add info about prerequisites (if any), possible textbooks and '
+ 'any other related information')}
+ self.fields['concepts'].widget.attrs = {
+ 'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'Which concept(s) do you want to animate?'
+ 'Example: Animation of how data flows in Ring Topology')}
+ self.fields['audience'].widget.attrs = {
+ 'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'Who would be the target audience for your video?\n'
+ 'Example: High School Students, Mechanical Engineers, etc.')}
+
+ self.fields['reference'].widget.attrs = {
+ 'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'Please try to be as specific as possible. For example,\n'
+ 'Book used: Linear Algebra.\n'
+ 'Author: Kenneth Hoffman, Ray Kunze\n'
+ 'Edition: Second\n'
+ 'Chapter: 2 ; Page: 40')}
+ self.fields['tools'].widget.attrs = {
+ 'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'What all tools would you be using for animation?\n'
+ 'Example: manim, blender, mayavi, mathbox, etc')}
+ self.fields['detaled_description'].widget.attrs = {
'id': 'custom_editor',
'rows': 10,
'cols': 50,
- 'placeholder': ('NOTE: Do add info about prerequisites (if any), possible textbooks and '
- 'any other related information')
+ 'placeholder': ('Give a detailed description of your animation')
}
+ self.fields['link'].widget.attrs = {'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'Along with the video you will have to submit the source code github link below.\n')}
+ self.fields['sketch'].label = "Sketch(.jpeg/.jpg only)"
class Meta:
model = Animation
- fields = ['category', 'subcategory', 'title', 'outline', 'tags']
+ widgets = {'sketch': forms.FileInput(), }
+ fields = [
+ 'category',
+ 'subcategory',
+ 'title',
+ 'outline',
+ 'tags',
+ 'concepts',
+ 'audience',
+ 'reference',
+ 'tools',
+ 'detaled_description',
+ 'link',
+ 'sketch']
+
+
+class AnimationProposal_edit(forms.ModelForm):
+ """Animation form """
+ required_css_class = 'required'
+ errorlist_css_class = 'errorlist'
+
+ def __init__(self, *args, **kwargs):
+ super(AnimationProposal_edit, self).__init__(*args, **kwargs)
+ self.fields['subcategory'].widget.attrs['placeholder'] = 'Eg: Quantum Mechanics, Topology'
+ self.fields['outline'].widget.attrs = {
+ 'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'NOTE: Do add info about prerequisites (if any), possible textbooks and '
+ 'any other related information')}
+ self.fields['concepts'].widget.attrs = {
+ 'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'Which concept(s) do you want to animate?'
+ 'Example: Animation of how data flows in Ring Topology')}
+ self.fields['audience'].widget.attrs = {
+ 'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'Who would be the target audience for your video?\n'
+ 'Example: High School Students, Mechanical Engineers, etc.')}
+
+ self.fields['reference'].widget.attrs = {
+ 'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'Please try to be as specific as possible. For example,\n'
+ 'Book used: Linear Algebra.\n'
+ 'Author: Kenneth Hoffman, Ray Kunze\n'
+ 'Edition: Second\n'
+ 'Chapter: 2 ; Page : 40')}
+ self.fields['tools'].widget.attrs = {
+ 'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'What all tools would you be using for animation?\n'
+ 'Example: manim, blender, mayavi, mathbox, etc')}
+ self.fields['detaled_description'].widget.attrs = {
+ 'id': 'custom_editor',
+ 'rows': 10,
+ 'cols': 50,
+ 'placeholder': ('Give a detailed description of your animation')
+ }
+ self.fields['link'].widget.attrs = {'id': 'custom_editor', 'rows': 10, 'cols': 50, 'placeholder': (
+ 'Along with the video you will have to submit the source code github link below.\n')}
+ self.fields['sketch'].label = "Sketch(.jpeg/.jpg only)"
+
+ class Meta:
+ model = Animation
+ widgets = {
+ 'sketch': forms.FileInput(),
+ }
+ fields = [
+ 'category',
+ 'subcategory',
+ 'title',
+ 'outline',
+ 'tags',
+ 'concepts',
+ 'audience',
+ 'reference',
+ 'tools',
+ 'detaled_description',
+ 'link',
+ 'sketch']
class CommentForm(forms.ModelForm):
@@ -292,6 +420,5 @@ class UploadAnimationForm(forms.ModelForm):
class Meta:
model = AnimationStats
exclude = ['animation', 'views', 'like', 'dislike', 'thumbnail']
- widgets = {
- 'video_path': forms.FileInput(),
- }
+ widgets = {'video_path': forms.FileInput(),}
+
diff --git a/fossee_manim/models.py b/fossee_manim/models.py
index 273ebe6..25a7652 100644
--- a/fossee_manim/models.py
+++ b/fossee_manim/models.py
@@ -13,7 +13,7 @@ import subprocess
position_choices = (
("contributor", "Contributor"),
("reviewer", "Reviewer")
- )
+)
department_choices = (
("computer", "Computers"),
@@ -29,7 +29,7 @@ department_choices = (
("electronics", "Electronics"),
("energy science and engineering", "Energy Science and Engineering"),
("others", "Others")
- )
+)
title = (
("Professor", "Prof."),
@@ -40,7 +40,7 @@ title = (
("Mr", "Mr."),
("Mrs", "Mrs."),
("Miss", "Ms."),
- )
+)
source = (
("FOSSEE website", "FOSSEE website"),
@@ -48,46 +48,46 @@ source = (
("Social Media", "Social Media"),
("From other College", "From other College"),
("others", "Others")
- )
+)
states = (
- ("IN-AP", "Andhra Pradesh"),
- ("IN-AR", "Arunachal Pradesh"),
- ("IN-AS", "Assam"),
- ("IN-BR", "Bihar"),
- ("IN-CT", "Chhattisgarh"),
- ("IN-GA", "Goa"),
- ("IN-GJ", "Gujarat"),
- ("IN-HR", "Haryana"),
- ("IN-HP", "Himachal Pradesh"),
- ("IN-JK", "Jammu and Kashmir"),
- ("IN-JH", "Jharkhand"),
- ("IN-KA", "Karnataka"),
- ("IN-KL", "Kerala"),
- ("IN-MP", "Madhya Pradesh"),
- ("IN-MH", "Maharashtra"),
- ("IN-MN", "Manipur"),
- ("IN-ML", "Meghalaya"),
- ("IN-MZ", "Mizoram"),
- ("IN-NL", "Nagaland"),
- ("IN-OR", "Odisha"),
- ("IN-PB", "Punjab"),
- ("IN-RJ", "Rajasthan"),
- ("IN-SK", "Sikkim"),
- ("IN-TN", "Tamil Nadu"),
- ("IN-TG", "Telangana"),
- ("IN-TR", "Tripura"),
- ("IN-UT", "Uttarakhand"),
- ("IN-UP", "Uttar Pradesh"),
- ("IN-WB", "West Bengal"),
- ("IN-AN", "Andaman and Nicobar Islands"),
- ("IN-CH", "Chandigarh"),
- ("IN-DN", "Dadra and Nagar Haveli"),
- ("IN-DD", "Daman and Diu"),
- ("IN-DL", "Delhi"),
- ("IN-LD", "Lakshadweep"),
- ("IN-PY", "Puducherry")
- )
+ ("IN-AP", "Andhra Pradesh"),
+ ("IN-AR", "Arunachal Pradesh"),
+ ("IN-AS", "Assam"),
+ ("IN-BR", "Bihar"),
+ ("IN-CT", "Chhattisgarh"),
+ ("IN-GA", "Goa"),
+ ("IN-GJ", "Gujarat"),
+ ("IN-HR", "Haryana"),
+ ("IN-HP", "Himachal Pradesh"),
+ ("IN-JK", "Jammu and Kashmir"),
+ ("IN-JH", "Jharkhand"),
+ ("IN-KA", "Karnataka"),
+ ("IN-KL", "Kerala"),
+ ("IN-MP", "Madhya Pradesh"),
+ ("IN-MH", "Maharashtra"),
+ ("IN-MN", "Manipur"),
+ ("IN-ML", "Meghalaya"),
+ ("IN-MZ", "Mizoram"),
+ ("IN-NL", "Nagaland"),
+ ("IN-OR", "Odisha"),
+ ("IN-PB", "Punjab"),
+ ("IN-RJ", "Rajasthan"),
+ ("IN-SK", "Sikkim"),
+ ("IN-TN", "Tamil Nadu"),
+ ("IN-TG", "Telangana"),
+ ("IN-TR", "Tripura"),
+ ("IN-UT", "Uttarakhand"),
+ ("IN-UP", "Uttar Pradesh"),
+ ("IN-WB", "West Bengal"),
+ ("IN-AN", "Andaman and Nicobar Islands"),
+ ("IN-CH", "Chandigarh"),
+ ("IN-DN", "Dadra and Nagar Haveli"),
+ ("IN-DD", "Daman and Diu"),
+ ("IN-DL", "Delhi"),
+ ("IN-LD", "Lakshadweep"),
+ ("IN-PY", "Puducherry")
+)
status = (
("pending", "Pending Acceptance"),
@@ -107,6 +107,7 @@ def attachments(instance, filename):
instance.animation.title,
str(instance.animation.id), filename)
+
def validate_file_extension(value):
import os
from django.core.exceptions import ValidationError
@@ -115,6 +116,13 @@ def validate_file_extension(value):
if not ext.lower() in valid_extensions:
raise ValidationError(u'Unsupported file extension.')
+def validate_img_extension(value):
+ import os
+ from django.core.exceptions import ValidationError
+ ext = os.path.splitext(value.name)[1] # [0] returns path+filename
+ valid_extensions = ['.jpg','.jpeg','.png']
+ if not ext.lower() in valid_extensions:
+ raise ValidationError(u'Unsupported file extension.')
class Profile(models.Model):
"""Profile for users(instructors and coordinators)"""
@@ -124,13 +132,13 @@ class Profile(models.Model):
institute = models.CharField(max_length=150, blank=True)
department = models.CharField(max_length=150, choices=department_choices)
phone_number = models.CharField(
- max_length=10,
- validators=[RegexValidator(
- regex=r'^.{10}$', message=(
- "Phone number must be entered \
+ max_length=10,
+ validators=[RegexValidator(
+ regex=r'^.{10}$', message=(
+ "Phone number must be entered \
in the format: '9999999999'.\
Up to 10 digits allowed.")
- )], null=False)
+ )], null=False)
position = models.CharField(max_length=32, choices=position_choices,
default='contributor')
how_did_you_hear_about_us = models.CharField(max_length=255, blank=True,
@@ -140,21 +148,21 @@ class Profile(models.Model):
state = models.CharField(max_length=255, choices=states, default="IN-MH")
pincode = models.CharField(max_length=6, blank=True,
validators=[RegexValidator(
- regex=r'^.{6}$', message=(
- "Please enter valid PINCODE"
- )
- )])
+ regex=r'^.{6}$', message=(
+ "Please enter valid PINCODE"
+ )
+ )])
is_email_verified = models.BooleanField(default=False)
activation_key = models.CharField(max_length=255, blank=True, null=True)
key_expiry_time = models.DateTimeField(blank=True, null=True)
def __str__(self):
return u"id: {0}| {1} {2} | {3} ".format(
- self.user.id,
- self.user.first_name,
- self.user.last_name,
- self.user.email
- )
+ self.user.id,
+ self.user.first_name,
+ self.user.last_name,
+ self.user.email
+ )
class Category(models.Model):
@@ -166,11 +174,20 @@ class Category(models.Model):
return u"{0}".format(self.name)
+# test
+class Example(models.Model):
+ name = models.CharField(max_length=20)
+ tags = TaggableManager()
+
+
class Animation(models.Model):
title = models.CharField(max_length=255)
contributor = models.ForeignKey(User, on_delete=models.CASCADE)
- reviewer = models.ForeignKey(User, null=True, on_delete=models.CASCADE,
- related_name="%(app_label)s_%(class)s_related")
+ reviewer = models.ForeignKey(
+ User,
+ null=True,
+ on_delete=models.CASCADE,
+ related_name="%(app_label)s_%(class)s_related")
outline = models.TextField()
status = models.CharField(max_length=255, choices=status)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
@@ -178,11 +195,21 @@ class Animation(models.Model):
created = models.DateTimeField(default=timezone.now)
tags = TaggableManager()
history = HistoricalRecords()
+ # modifications
+ concepts=models.TextField(null=True,blank=True)
+ audience=models.TextField(null=True,blank=True)
+ reference=models.TextField(null=True,blank=True)
+ tools=models.TextField(null=True,blank=True)
+ detaled_description=models.TextField(null=True,blank=True)
+ link=models.CharField(max_length=255, blank=True)
+ sketch=models.ImageField(null=True, blank=True, upload_to=attachments, validators=[validate_img_extension])
def __str__(self):
return u"{0} | {1}".format(self.title, self.status)
+
+
class Comment(models.Model):
comment = models.TextField()
commentor = models.ForeignKey(User, on_delete=models.CASCADE)
@@ -203,16 +230,20 @@ class AnimationStats(models.Model):
like = models.PositiveIntegerField(default=0)
dislike = models.PositiveIntegerField(default=0)
thumbnail = models.ImageField(null=True, blank=True, upload_to=attachments)
- video_path = models.FileField(null=True, blank=True, upload_to=attachments, validators=[validate_file_extension])
+ video_path = models.FileField(
+ null=True,
+ blank=True,
+ upload_to=attachments,
+ validators=[validate_file_extension])
def _create_thumbnail(self):
video_path = self.video_path.path
img_output = path.join(
- tempfile.mkdtemp(), "{0}.jpg".format(self.animation.title)
- )
+ tempfile.mkdtemp(), "{0}.jpg".format(self.animation.title)
+ )
file_name = "{0}.jpg".format(self.animation.title)
subprocess.call(['ffmpeg', '-i', video_path, '-ss', '00:00:02.000',
- '-vframes', '1', img_output])
+ '-vframes', '1', img_output])
if path.exists(img_output):
que_file = open(img_output, 'rb')
# Converting to Python file object with
@@ -223,8 +254,8 @@ class AnimationStats(models.Model):
def _create_ogv(self):
video_input = self.video_path.path
vid_output = path.join(
- tempfile.mkdtemp(), "{0}.ogv".format(self.animation.title)
- )
+ tempfile.mkdtemp(), "{0}.ogv".format(self.animation.title)
+ )
file_name = "{0}.ogv".format(self.animation.title)
subprocess.call(['ffmpeg', '-i', video_input, '-r', '24', vid_output])
if path.exists(vid_output):
diff --git a/fossee_manim/send_mails.py b/fossee_manim/send_mails.py
index 363a0ec..86f4bc4 100644
--- a/fossee_manim/send_mails.py
+++ b/fossee_manim/send_mails.py
@@ -103,6 +103,7 @@ def send_email(request, call_on, contributor=None, key=None, proposal=None):
"Congratulations! Your Animation has been Accepted!", message, SENDER_EMAIL,
[contributor.profile.user.email], fail_silently=True
)
+ """create a table and add the status as mail send"""
elif call_on == 'rejected':
message = dedent("""\
Dear {0},
diff --git a/fossee_manim/static/css/index.css b/fossee_manim/static/css/index.css
index 0a7895e..9840f69 100644
--- a/fossee_manim/static/css/index.css
+++ b/fossee_manim/static/css/index.css
@@ -62,7 +62,7 @@ form.example::after {
}
#btns {
- padding: 25 25 25 25;
+ padding:25 25 25 25;
font-size: 155%;
font-family: 'Lato', sans-serif;
}
@@ -124,3 +124,38 @@ hr {
background-color: #ffe0b2;
border-radius: 50%;
}
+
+.footer{
+ right: 0;
+ left: 0;
+<<<<<<< HEAD
+ bottom: 0;
+ padding: 1rem;
+=======
+ position: relative;
+ bottom: 0;
+
+ owerflow: hidden;
+ padding: 95px;
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
+ text-align: center;
+}
+a{
+ color:white;
+}
+
+a:hover{
+ color:white;
+ background-color: gray;
+}
+
+.navbar-toggler-icon {
+ display: inline-block;
+ width: 1.5em;
+ height: 1.5em;
+ vertical-align: middle;
+ content: "";
+ background: no-repeat center center;
+ background-size: 100% 100%;
+ background-color: white;
+} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/about.html b/fossee_manim/templates/fossee_manim/about.html
index 13b5a01..3ce076d 100644
--- a/fossee_manim/templates/fossee_manim/about.html
+++ b/fossee_manim/templates/fossee_manim/about.html
@@ -1,19 +1,20 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- About
- {% endblock %}
+{% block title %}
+About
+{% endblock %}
{% block content %}
- <div class="container-fluid jumbotron" align = "justify" style="margin-top:20px; padding:50px; background-color: transparent;">
- <!-- style="padding-top:120px"> -->
- <center>
+<div class="container-fluid jumbotron" align="justify"
+ style="margin-top:20px; padding:50px; background-color: transparent;">
+ <!-- style="padding-top:120px"> -->
+ <center>
<h1>About FOSSEE Animations</h1>
- <h4 style= "color: #555555;"><i>What</i> do we do and <i>why</i>?</h4>
- </center>
+ <h4 style="color: #555555;"><i>What</i> do we do and <i>why</i>?</h4>
+ </center>
- <div class="container" style= "font-family: 'Lato', sans-serif; background-color: #e7edee;">
+ <div class="container" style="font-family: 'Lato', sans-serif; background-color: #e7edee;">
<hr>
-</div>
</div>
- {% endblock content %}
+</div>
+{% endblock content %}
diff --git a/fossee_manim/templates/fossee_manim/activation.html b/fossee_manim/templates/fossee_manim/activation.html
index 10a3d60..20a4c62 100644
--- a/fossee_manim/templates/fossee_manim/activation.html
+++ b/fossee_manim/templates/fossee_manim/activation.html
@@ -1,24 +1,24 @@
{% extends 'fossee_manim/base.html' %}
{% block title %}
- Awating activation
+Awating activation
{% endblock %}
{% block header %}
- <nav class="navbar navbar-default navbar-custom">
- <div class="container-fluid">
+<nav class="navbar navbar-default navbar-custom">
+ <div class="container-fluid">
<div class="navbar-header">
- <a class="navbar-brand" href="#">FOSSEE Animations</a>
+ <a class="navbar-brand" href="#">FOSSEE Animations</a>
</div>
<ul class="nav navbar-nav navbar-right">
- {% if request.user.profile.is_email_verified %}
- <li><a href="{{ URL_ROOT }}/view_profile/"><span class="glyphicon glyphicon-user"></span> Profile</a></li>
-
- <li><a href="{{ URL_ROOT }}/logout/"><span class="glyphicon glyphicon-log-out"></span> Logout</a></li>
- {% endif %}
+ {% if request.user.profile.is_email_verified %}
+ <li><a href="{{ URL_ROOT }}/view_profile/"><span class="glyphicon glyphicon-user"></span> Profile</a></li>
+
+ <li><a href="{{ URL_ROOT }}/logout/"><span class="glyphicon glyphicon-log-out"></span> Logout</a></li>
+ {% endif %}
</ul>
- </div>
- </nav>
+ </div>
+</nav>
{% endblock %}
{% block extra %}
@@ -27,45 +27,46 @@
{% block content %}
<br>
- {% if status == '2' %}
- <div class="container">
- <div class="jumbotron">
- <p> Your email is already verified, Please view your profile <a href="{{ URL_ROOT }}/view_profile/">here</a> </p>
-
- </div>
+{% if status == '2' %}
+<div class="container">
+ <div class="jumbotron">
+ <p> Your email is already verified, Please view your profile <a href="{{ URL_ROOT }}/view_profile/">here</a>
+ </p>
+
</div>
- {% elif status == '1' %}
- <script type="text/javascript">
- window.setTimeout(function()
- {
- location.href="{{ URL_ROOT }}/register/"
- }, 5000);
- </script>
- <div class="container">
- <div class="jumbotron">
- <p> Your activation has expired please register again</p>
- </div>
+</div>
+{% elif status == '1' %}
+<script type="text/javascript">
+ window.setTimeout(function () {
+ location.href = "{{ URL_ROOT }}/register/"
+ }, 5000);
+</script>
+<div class="container">
+ <div class="jumbotron">
+ <p> Your activation has expired please register again</p>
</div>
- {% elif status == '0' %}
- <div class="container">
- <div class="jumbotron">
- <p> Your account has been activated. Please view your profile <a href="{{ URL_ROOT }}/view_profile/">here</a> </p>
-
- </div>
+</div>
+{% elif status == '0' %}
+<div class="container">
+ <div class="jumbotron">
+ <p> Your account has been activated. Please view your profile <a href="{{ URL_ROOT }}/view_profile/">here</a>
+ </p>
+
</div>
- {% else %}
- <script type="text/javascript">
- window.setTimeout(function()
- {
- location.href="{{ URL_ROOT }}/logout/"
- }, 5000);
- </script>
+</div>
+{% else %}
+<script type="text/javascript">
+ window.setTimeout(function () {
+ location.href = "{{ URL_ROOT }}/logout/"
+ }, 5000);
+</script>
- <div class="container">
- <div class="jumbotron">
- <h1>Activation Awaiting</h1>
- <p>The Activation Link has been sent to your email. The link expires in <strong>24hours</strong> from the date of registration. You will be logged out automatically.</p>
- </div>
+<div class="container">
+ <div class="jumbotron">
+ <h1>Activation Awaiting</h1>
+ <p>The Activation Link has been sent to your email. The link expires in <strong>24hours</strong> from the date
+ of registration. You will be logged out automatically.</p>
</div>
- {% endif %}
+</div>
+{% endif %}
{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/base.html b/fossee_manim/templates/fossee_manim/base.html
index 06d7071..5e6326e 100644
--- a/fossee_manim/templates/fossee_manim/base.html
+++ b/fossee_manim/templates/fossee_manim/base.html
@@ -1,15 +1,16 @@
<!DOCTYPE html>
<html style="height: 100%;">
+
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>
{% block title %}
- HomePage
+ HomePage
{% endblock %}
</title>
<meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
@@ -19,116 +20,110 @@
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Wruczek/Bootstrap-Cookie-Alert@gh-pages/cookiealert.css">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
- <!-- favicon -->
- <link rel="shortcut icon" href="{{ URL_ROOT }}/static/img/favicon.ico" />
+ <!-- favicon -->
+ <link rel="shortcut icon" href="{{ URL_ROOT }}/static/img/favicon.ico" />
<link href="https://fonts.googleapis.com/css?family=Montserrat|Lato&display=swap" rel="stylesheet">
<link rel="stylesheet" href="{{ URL_ROOT }}/static/css/custom_base.css" type="text/css" />
+ <link rel="stylesheet" href="{{ URL_ROOT }}/static/css/index.css" type="text/css" />
</head>
- <!-- For js/ajax and other related scripts -->
- {% block extra %}
+<!-- For js/ajax and other related scripts -->
+{% block extra %}
- {% endblock %}
+{% endblock %}
<body>
- {% block header %}
- <nav class="navbar navbar-expand-md row fixed-top" style="background-color:#222222; padding-top: 20px; padding-bottom: 20px;">
+ {% block header %}
+ <nav class="navbar navbar-expand-lg " style="background-color:#222222; color: white;">
<a class="navbar-brand" href="{% url 'index' %}">
- <img src="{{ URL_ROOT }}/static/img/logo_main.png" width="150" height="33.75" alt="" style="margin-right: 50px; margin-left: 20px">
+ <img src="{{ URL_ROOT }}/static/img/logo_main.png" width="200" height="50" alt=""
+ style="margin-right: 50px; margin-left: 20px">
</a>
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
- <span class="navbar-toggler-icon"></span>
+
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
+ aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+ <span class="fa fa-bars" style="color:white;"></span>
</button>
- <ul class="navbar-nav">
- <li class="nav-item dropdown">
- <div class="collapse navbar-collapse" id="navbarSupportedContent">
- <i class="material-icons md-24" style="color: #1facb3;">
- explore
- </i>
- <a class="nav-link dropdown-toggle" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="color:#1fabc3"> Explore</a>
-
- <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">
- {% for c in categories %}
- <a class="dropdown-item" href="{% url 'explore' c.name %}">{{c.name}}</a>
- <div class="dropdown-divider">
- </div>
- {% endfor %}
- </div>
- </li>
- </ul>
+ <div class="collapse navbar-collapse" id="navbarSupportedContent">
+ <ul class="navbar-nav mr-auto">
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'about' %}">About</a>
+ </li>
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'guidelines' %}">Guidelines</a>
+ </li>
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'faqs' %}">FAQ</a>
+ </li>
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'honorarium' %}">Honorarium</a>
+ </li>
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'send_proposal' %}"><b>Submit Proposal</b></a>
+ </li>
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'outreach' %}">Outreach</a>
+ </li>
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'library' %}">Library</a>
+ </li>
+ {% if user.is_authenticated %}
+ {% if request.user.profile.position == 'contributor' %}
+
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'proposal_status' %}">Proposal Status</a>
+ </li>
+
+ {% else %}
+
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'proposal_status' %}">Submitted Proposals</a>
+ </li>
+ {% endif %}
+
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'view_profile' %}">View Profile</a>
+ </li>
+
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'logout' %}">Logout</a>
+ </li>
+ {% else %}
+
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'login' %}">Login</a>
+ </li>
+
+ <li class="nav-item active">
+ <a class="btn" href="{% url 'register' %}">Register</a>
+ </li>
+ {% endif %}
+ </ul>
<form class="form-inline" method="POST" action="/search/" style="margin-left: 10px; margin-top: 10px; ">
{% csrf_token %}
- <input class="form-control mr-sm-2" type="search" id="sbox" name="sbox" placeholder="Search for animations">
- <button class="btn btn-primary my-2 my-sm-0" id= "btnblue" type="submit">
+ <input class="form-control mr-sm-2" type="search" id="sbox" name="sbox"
+ placeholder="Search for animations">
+ <button class="btn btn-primary my-2 my-sm-0" id="btnblue" type="submit">
Search
- </button>
+ </button>
</form>
- <ul class="navbar-nav ml-md-auto">
- <li class="nav-item dropdown">
- {% if user.is_authenticated %}
- <a class="nav-link dropdown-toggle" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" style="color:white"> {{user.first_name}}</a>
- <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">
- {% if request.user.profile.position == 'contributor' %}
- <a class="dropdown-item" href="{% url 'proposal_status' %}">Proposal Status</a>
- {% else %}
- <a class="dropdown-item" href="{% url 'proposal_status' %}">Submitted Proposals</a>
- {% endif %}
- <div class="dropdown-divider">
- </div>
- <a class="dropdown-item" href="{% url 'view_profile' %}">View Profile</a>
- <div class="dropdown-divider">
- </div>
- <a class="dropdown-item" href="{% url 'logout' %}">Logout</a>
- </div>
- {% else %}
- <a class="nav-link dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" style="color:white">Login / Register</a>
- <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink">
- <a class="dropdown-item" href="{% url 'login' %}">Login</a>
- <div class="dropdown-divider">
- </div>
- <a class="dropdown-item" href="{% url 'register' %}">Register</a>
- </div>
- {% endif %}
- </li>
- </ul>
- </div>
- </nav>
- <!-- <nav class="navbar navbar-expand-md navbar-dark bg-dark"> -->
-
- <div class="jumbotron sticky-top" style="padding-top: 90px; padding-bottom: 0.2%; margin-bottom: 0px; background-color: #dddddd;width:auto">
- <div class="btn-group btn-group-lg" role="group">
- <button class="btn btn-link perma_link" type="button"><a href="{% url 'about' %}" style="color:#157b80">About</a></button>
- <button class="btn btn-link perma_link" type="button"><a href="{% url 'guidelines' %}" style="color:#222222">Guidelines</a></button>
- <button class="btn btn-link perma_link" type="button"><a href="{% url 'faqs' %}" style="color:#222222">FAQ</a></button>
- <button class="btn btn-link perma_link" type="button"><a href="{% url 'honorarium' %}" style="color:#222222">Honorarium</a></button>
- <button class="btn btn-link perma_link" type="button"><a href="{% url 'send_proposal' %}" style="color:#dd1100"><b>Submit Proposal</b></a></button>
- <button class="btn btn-link perma_link" type="button"><a href="{% url 'outreach' %}" style="color:#222222">Outreach</a></button>
- <button class="btn btn-link perma_link" type="button"><a href="{% url 'library' %}" style="color:#222222">Library</a></button>
</div>
- </div>
+ </nav>
- <link rel="stylesheet" type="text/css" href="https://fossee.in/data/banner/css/nice-bar.css" />
- <script type="text/javascript" src="https://fossee.in/data/banner/js/nice-bar.js"></script>
- <div style= "margin:30px;">
- <center>
- <a href="https://scipy.in/2019" target="_blank"> <img class="img-responsive" src="https://static.fossee.in/scipy2019/email-templates/SciPyIndia2019.gif"></a>
- </center>
- </div>
- {% endblock %}
-
- {% block content %}
- <br><br>
- <h1>Base Template Content. Please override me</h1>
- </div>
{% endblock %}
-
+ {% block content %}
+ <br><br>
+ <h1>Base Template Content. Please override me</h1>
+ </div>
+ {% endblock %}
<!-- </main> -->
{% block footer %}
-<footer class= "footer" style="background-color: #222222; font-family: 'Lato', sans-serif; padding:30px;">
+ <footer class="page-footer">
+ <div class="footer" style="background-color: #222222; font-family: 'Lato', sans-serif; padding:95px;">
<div class="container">
<div class="row">
<div class="col-md-4 text-center">
@@ -136,44 +131,48 @@
</div>
<div class="col-md-4 text" style="color:#dddddd;">
FOSSEE | IIT-Bombay <br>
- Mumbai, India - 400-076 <br>
+ Mumbai, India - 400-076 <br>
Phone: (+91) 22-2576-4133<br>
Email: animations@fossee.in
</div>
<div class="col-md-4 text-center" style="color:#dddddd; margin-top: 15px">
- Follow us on:<br/>
- <a href="https://twitter.com/fosseenmeict" class="fa fa-twitter"></a>
- &nbsp; &nbsp; &nbsp;
- <a href="https://www.instagram.com/fossee_nmeict/" class="fa fa-instagram"></a>
- &nbsp; &nbsp; &nbsp;
- <a href="https://www.facebook.com/FOSSEENMEICT/" class="fa fa-facebook"></a>
- &nbsp; &nbsp; &nbsp;
- <a href="https://github.com/FOSSEE/" class="fa fa-github"></a>
+ Follow us on:<br />
+ <a href="https://twitter.com/fosseenmeict" class="fa fa-twitter"></a>
+ &nbsp; &nbsp; &nbsp;
+ <a href="https://www.instagram.com/fossee_nmeict/" class="fa fa-instagram"></a>
+ &nbsp; &nbsp; &nbsp;
+ <a href="https://www.facebook.com/FOSSEENMEICT/" class="fa fa-facebook"></a>
+ &nbsp; &nbsp; &nbsp;
+ <a href="https://github.com/FOSSEE/" class="fa fa-github"></a>
</div>
</div>
<hr>
- <div class="text-center row" style="color: #dddddd; color:white; padding:10px;margin-left: 10px; text-align:center; margin-bottom:0px;">
- The FOSSEE project is funded by the National Mission on Education through ICT, MHRD, Government of India.
- This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License
+ <div class="text-center row"
+ style="color: #dddddd; color:white; padding:10px;margin-left: 10px; text-align:center; margin-bottom:0px;">
+ The FOSSEE project is funded by the National Mission on Education through ICT, MHRD, Government of
+ India.
+ This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License
</div>
</div>
-</footer>
+ </div>
+ </footer>
{% endblock footer %}
-
-<!-- START Bootstrap-Alert -->
- <div class="alert text-center cookiealert" role="alert" style="background: #dddddd; color: black;">
- The website is currently undergoing some developmental changes. If you encounter any glitches, write to us at animations@fossee.in ; we value your feedback and suggestions !
- <button type="button" class="close" data-dismiss="alert" aria-label="Close" >
- <span aria-hidden="true">&times;</span>
- </button>
+ <!--
+ START Bootstrap-Alert
+ <div class="alert text-center cookiealert" role="alert" style="background: #d1ff3c; color: black;">
+ The website is currently undergoing some developmental changes. If you encounter any glitches, write to us at
+ animations@fossee.in ; we value your feedback and suggestions !
+ <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+ <span aria-hidden="true">&times;</span>
+ </button>
</div>
- <!-- END Bootstrap-Alert -->
+ END Bootstrap-Alert -->
-<!-- JS for alert -->
-<script src="https://cdn.jsdelivr.net/gh/Wruczek/Bootstrap-Cookie-Alert@gh-pages/cookiealert.js"></script>
+ <!-- JS for alert -->
+ <script src="https://cdn.jsdelivr.net/gh/Wruczek/Bootstrap-Cookie-Alert@gh-pages/cookiealert.js"></script>
</body>
-</html>
+</html> \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/categorical_list.html b/fossee_manim/templates/fossee_manim/categorical_list.html
index 62a5f00..f3b6dae 100644
--- a/fossee_manim/templates/fossee_manim/categorical_list.html
+++ b/fossee_manim/templates/fossee_manim/categorical_list.html
@@ -1,38 +1,40 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- FOSSEE Animation
- {% endblock %}
+{% block title %}
+FOSSEE Animation
+{% endblock %}
{% block content %}
+<br>
+<div class="container-fluid">
<br>
- <div class="container-fluid" >
- <br>
- <div class="row" align="center">
- <div class="col-md-12">
- <h1 style="float: left;">{{ categorial_list.0.animation.category }}</h1>
- </div>
+ <div class="row" align="center">
+ <div class="col-md-12">
+ <h1 style="float: left;">{{ categorial_list.0.animation.category }}</h1>
</div>
- <hr>
- <br>
+ </div>
+ <hr>
+ <br>
{% for video in categorial_list %}
- <div class="row">
- <div class="col-md-4">
- <a href="{% url 'video' video.id %}" >
- <span class="fa fa-play fa-4x" id="play-btn"></span>
- <img height="90%" width="100%" src="{{ video.thumbnail.url }}">
- </a>
- </div>
- <div class="col-md-4">
- <p style="color:#26A669; font-size: 300%;"> {{ video.animation.title }} </p>
- <p style="color:#26A669; font-size: 100%;"> {{ video.animation.description | truncatewords:5}} </p>
- <a target="_blank" href="{{ video.animation.github }}"><p style="font-size: 70%;"> {{ video.animation.github }} </p></a>
- </div>
+ <div class="row">
+ <div class="col-md-4">
+ <a href="{% url 'video' video.id %}">
+ <span class="fa fa-play fa-4x" id="play-btn"></span>
+ <img height="90%" width="100%" src="{{ video.thumbnail.url }}">
+ </a>
</div>
+ <div class="col-md-4">
+ <p style="color:#26A669; font-size: 300%;"> {{ video.animation.title }} </p>
+ <p style="color:#26A669; font-size: 100%;"> {{ video.animation.description | truncatewords:5}} </p>
+ <a target="_blank" href="{{ video.animation.github }}">
+ <p style="font-size: 70%;"> {{ video.animation.github }} </p>
+ </a>
+ </div>
+ </div>
<hr>
{% endfor %}
- <br>
- </div>
<br>
-{% endblock %}
+</div>
+<br>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/delete_proposal.html b/fossee_manim/templates/fossee_manim/delete_proposal.html
new file mode 100644
index 0000000..9cae06e
--- /dev/null
+++ b/fossee_manim/templates/fossee_manim/delete_proposal.html
@@ -0,0 +1,50 @@
+{% extends 'fossee_manim/base.html' %}
+
+{% block title %}
+Delete Proposal
+{% endblock %}
+
+{% block content %}
+<br>
+<div class="container">
+ <!--
+ This page shows the basic details of the proposal that the user choose to delete
+ -->
+ <center>
+ <h2>Delete Proposal : {{ proposal.title }}</h2>
+ </center>
+ <table class="table table-hover" style="font-family: 'Lato', sans-serif;">
+ <tbody>
+ <tr>
+ <td>Proposal Name :</td>
+ <td>{{ proposal.title }}</td>
+ </tr>
+ <tr>
+ <td>Proposal category :</td>
+ <td>{{ proposal.category }}</td>
+ </tr>
+ <tr>
+ <td>Sub Category :</td>
+ <td>{{ proposal.subcategory }}</td>
+ </tr>
+ <tr>
+ <td>Contributor :</td>
+ <td>{{ proposal.contributor }}</td>
+ </tr>
+ <tr>
+ <td>Created on :</td>
+ <td>{{ proposal.created }}</td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <center>
+ <a href="{% url 'delete_proposal' proposal.id %}"><button type="button"
+ class="btn btn-info" id="btnred">Delete {{ proposal.title }}</button></a>
+ </center>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/edit_profile.html b/fossee_manim/templates/fossee_manim/edit_profile.html
index e5c3bc5..238fb2d 100644
--- a/fossee_manim/templates/fossee_manim/edit_profile.html
+++ b/fossee_manim/templates/fossee_manim/edit_profile.html
@@ -1,7 +1,7 @@
{% extends "fossee_manim/base.html" %}
{% block title %}
- Edit Profile
+Edit Profile
{% endblock %}
{% block extra %}
@@ -11,18 +11,20 @@
{% block content %}
<br>
- <div class="container">
- <center> <h1> Edit Profile </h1> </center>
- <form action="{{URL_ROOT}}/edit_profile/" method="post" >
+<div class="container">
+ <center>
+ <h1> Edit Profile </h1>
+ </center>
+ <form action="{{URL_ROOT}}/edit_profile/" method="post">
{% csrf_token %}
- <center>
- <table class="table table-bordered">
- {{ form.as_table }}
- </table>
- </center>
- <br>
- <button class="btn btn-primary pull-right" type="submit" id="btnblue">Save Profile</button>
- </form>
- <br> <br> <br>
- </div>
-{% endblock %}
+ <center>
+ <table class="table table-bordered">
+ {{ form.as_table }}
+ </table>
+ </center>
+ <br>
+ <button class="btn btn-primary pull-right" type="submit" id="btnblue">Save Profile</button>
+ </form>
+ <br> <br> <br>
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/edit_proposal.html b/fossee_manim/templates/fossee_manim/edit_proposal.html
index cfc2beb..49bbfd0 100644
--- a/fossee_manim/templates/fossee_manim/edit_proposal.html
+++ b/fossee_manim/templates/fossee_manim/edit_proposal.html
@@ -1,130 +1,137 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- Edit Proposal
- {% endblock %}
+{% block title %}
+ Edit Proposal
+{% endblock %}
{% block content %}
-<script type="text/javascript">
- var url = window.location.href.split('/').pop();
-</script>
-<br>
-<div class="container">
- {% if messages %}
- <ul class="messages">
- {% for message in messages %}
- <div class="alert alert-{{ message.tags }}">
- <li {% if message.tags %} class="{{ message.tags }}"{% endif %}> {{ message }}
- </li>
- </div>
- {% endfor %}
- </ul>
- {% endif %}
+ <script type="text/javascript">
+ var url = window.location.href.split('/').pop();
+ </script>
+ <br>
+ <div class="container">
+ {% if messages %}
+ <ul class="messages">
+ {% for message in messages %}
+ <div class="alert alert-{{ message.tags }}">
+ <li {% if message.tags %} class="{{ message.tags }}" {% endif %}> {{ message }}
+ </li>
+ </div>
+ {% endfor %}
+ </ul>
+ {% endif %}
- <form method="POST" >
- {% csrf_token %}
+ <form method="POST">
+ {% csrf_token %}
- <table class="table table-bordered">
- {{ proposal_form.as_table }}
- </table>
+ <table class="table table-bordered">
+ <tr><td colspan="2"><center>PROPOSAL DETAILS</center></td></tr>
+ {{ proposal_form.as_table }}
+ </table>
- <br>
- <button class="btn btn-primary pull-right" type="submit" id="btnblue">Save</button>
- <br>
- </form>
- <br>
+ <br>
+ <button class="btn btn-primary pull-right" type="submit" id="btnblue">Save</button>
+ <br>
+ </form>
+ <br>
- {% if proposal_form.instance.status == 'changes' and request.user.profile.position == 'contributor' %}
- <form method="POST" action="{% url 'upload_animation' proposal_form.instance.id %}" enctype="multipart/form-data">
- {% csrf_token %}
- <label class="btn btn-info">
- {{ upload_form }}
- <button class="btn btn-success" type="submit">Upload</button>
- {{ msg }}
- </label>
- </form>
- {% elif proposal_form.instance.status == 'pending' and request.user.profile.position == 'contributor' %}
- <h3>Awaiting Reviewer's Moderation </h3>
- <h6>Further details regarding the second stage of Proposal will be shared with you over the email shortly</h6>
+ {% if proposal_form.instance.status == 'changes' and request.user.profile.position == 'contributor' %}
+ <form method="POST" action="{% url 'upload_animation' proposal_form.instance.id %}"
+ enctype="multipart/form-data">
+ {% csrf_token %}
+ <label class="btn btn-info">
+ {{ upload_form }}
+ <button class="btn btn-success" type="submit">Upload</button>
+ {{ msg }}
+ </label>
+ </form>
+ {% elif proposal_form.instance.status == 'pending' and request.user.profile.position == 'contributor' %}
+ <h3>Awaiting Reviewer's Moderation </h3>
+ <h6>Further details regarding the second stage of Proposal will be shared with you over the email
+ shortly</h6>
- {% else %}
- <video width="100%" height="100%" controls>
- <source src="{{video.0.video_path.url}}" type="video/mp4">
- </video>
- {% endif %}
+ {% else %}
+ <video width="100%" height="100%" controls>
+ <source src="{{ video.0.video_path.url }}" type="video/mp4">
+ </video>
+ {% endif %}
- <br><br>
- {% if request.user.profile.position == 'reviewer' %}
- <form method="POST" >
- {% csrf_token %}
- <div class="form-group">
- <div class="row">
- <button class="btn btn-success pull-left" type="submit" name="release" value="1">Approve</button>
- <button class="btn btn-danger pull-left" type="submit" name="rejected" value="2" style="margin-left: 1%">Reject</button>
- <button class="btn btn-info pull-left" type="submit" name="proposal_form" value="3" style="margin-left: 1%" >Send Proposal 2 Form</button>
- </div>
- </div>
- </form>
- {% endif %}
- <br><br>
+ <br><br>
+ {% if request.user.profile.position == 'reviewer' %}
+ <form method="POST">
+ {% csrf_token %}
+ <div class="form-group">
+ <div class="row">
+ <button class="btn btn-success pull-left" type="submit" name="release" value="1">Approve
+ </button>
+ <button class="btn btn-danger pull-left" type="submit" name="rejected" value="2"
+ style="margin-left: 1%">Reject
+ </button>
+ {# <button class="btn btn-info pull-left" type="submit" name="proposal_form" value="3" style="margin-left: 1%">Send#}
+ {# Proposal 2 Form</button>#}
+ </div>
+ </div>
+ </form>
+ {% endif %}
+ <br><br>
- <h2>Comments</h2>
- <div>
- <form method="POST">
- <br>
- {% csrf_token %}
- {{ comment_form.as_p }}
- <button type="submit" class="btn btn-default">Post</button>
- </form>
+ <h2>Comments</h2>
+ <div>
+ <form method="POST">
+ <br>
+ {% csrf_token %}
+ {{ comment_form.as_p }}
+ <button type="submit" class="btn btn-default">Post</button>
+ </form>
- </div>
- <hr style="background-color: #fff;
+ </div>
+ <hr style="background-color: #fff;
border-top: 5px double #8c8b8b;">
- <table>
- {% for comment in comments %}
- <tbody>
- <tr>
- <td>
- <h5>{{ comment.commentor.profile.user.get_full_name }} | {{ comment.created_date | date }}</h5>
- <h6 style="background-color: #ecf0f1; padding:10px;">{{ comment.comment }}</h6>
- <hr style="border-top: 0.5px solid #8c8b8b;">
- </td>
- </tr>
- </tbody>
- {% endfor %}
- </table>
+ <table>
+ {% for comment in comments %}
+ <tbody>
+ <tr>
+ <td>
+ <h5>{{ comment.commentor.profile.user.get_full_name }} | {{ comment.created_date | date }}</h5>
+ <h6 style="background-color: #ecf0f1; padding:10px;">{{ comment.comment }}</h6>
+ <hr style="border-top: 0.5px solid #8c8b8b;">
+ </td>
+ </tr>
+ </tbody>
+ {% endfor %}
+ </table>
-<br><br>
- </div>
+ <br><br>
+ </div>
- <!-- Page Navigation -->
- <div class="container">
- <div class="Page-Nav" align="center">
- <nav aria-label="Page navigation">
- <ul class="pagination pagination-sm">
- <li class="page-item">
- {% if comments.has_previous %}
- <a class="page-link" tabindex="-1"
- href="?page={{ comments.previous_page_number }}">Previous</a>
- {% endif %}
- </li>
- <li class="page-item">
- <span class="current">
- Page {{ comments.number }} of {{ comments.paginator.num_pages }}
- </span>
- </li>
- <li class="page-item">
- {% if comments.has_next %}
- <a class="page-link" href="?page={{ comments.next_page_number }}">Next
- </a>
- {% endif %}
- </li>
- </ul>
- </nav>
- </div>
- <br>
+ <!-- Page Navigation -->
+ <div class="container">
+ <div class="Page-Nav" align="center">
+ <nav aria-label="Page navigation">
+ <ul class="pagination pagination-sm">
+ <li class="page-item">
+ {% if comments.has_previous %}
+ <a class="page-link" tabindex="-1"
+ href="?page={{ comments.previous_page_number }}">Previous</a>
+ {% endif %}
+ </li>
+ <li class="page-item">
+ <span class="current">
+ Page {{ comments.number }} of {{ comments.paginator.num_pages }}
+ </span>
+ </li>
+ <li class="page-item">
+ {% if comments.has_next %}
+ <a class="page-link" href="?page={{ comments.next_page_number }}">Next
+ </a>
+ {% endif %}
+ </li>
+ </ul>
+ </nav>
+ </div>
+ <br>
</div>
-</div>
+ </div>
-{% endblock %}
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/explore.html b/fossee_manim/templates/fossee_manim/explore.html
index 5cae180..1ab618d 100644
--- a/fossee_manim/templates/fossee_manim/explore.html
+++ b/fossee_manim/templates/fossee_manim/explore.html
@@ -1,40 +1,40 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- Explore
- {% endblock %}
+{% block title %}
+Explore
+{% endblock %}
{% block content %}
<div class="album py-5 bg-light">
<div class="container">
<div class="row">
-{% for video in videos %}
- <div class="col-md-4">
- <div class="card mb-4 box-shadow">
- <a href="{% url 'video' video.id %}" >
- <img class="card-img-top" alt="Video Thumbnail" src="{{ video.thumbnail.url }}">
- </a>
- <div class="card-body">
- <a href="{% url 'video' video.id %}">
- <h4 class="card-text" style="color: #157b80;"> {{video.animation.title}} </h4>
- </a>
- <p class="card-text"> {{video.animation.outline|truncatechars:200}}</p>
+ {% for video in videos %}
+ <div class="col-md-4">
+ <div class="card mb-4 box-shadow">
+ <a href="{% url 'video' video.id %}">
+ <img class="card-img-top" alt="Video Thumbnail" src="{{ video.thumbnail.url }}">
+ </a>
+ <div class="card-body">
+ <a href="{% url 'video' video.id %}">
+ <h4 class="card-text" style="color: #157b80;"> {{video.animation.title}} </h4>
+ </a>
+ <p class="card-text"> {{video.animation.outline|truncatechars:200}}</p>
- <p class="card-text" style="color: #666666"> Contributor: {{video.animation.contributor}}</p>
- <!-- <div class="d-flex justify-content-between align-items-center"> -->
- <!-- <div class="btn-group">
+ <p class="card-text" style="color: #666666"> Contributor: {{video.animation.contributor}}</p>
+ <!-- <div class="d-flex justify-content-between align-items-center"> -->
+ <!-- <div class="btn-group">
<button type="button" class="btn btn-sm btn-outline-secondary">View</button>
<button type="button" class="btn btn-sm btn-outline-secondary">Edit</button>
</div>
<small class="text-muted">9 mins</small> -->
- <!-- </div> -->
- </div>
- </div>
- </div>
-{% endfor %}
+ <!-- </div> -->
+ </div>
+ </div>
+ </div>
+ {% endfor %}
</div>
</div>
</div>
-{% endblock %}
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/faqs.html b/fossee_manim/templates/fossee_manim/faqs.html
index c7b6be5..f22f79b 100644
--- a/fossee_manim/templates/fossee_manim/faqs.html
+++ b/fossee_manim/templates/fossee_manim/faqs.html
@@ -1,8 +1,8 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- FAQs
- {% endblock %}
+{% block title %}
+FAQs
+{% endblock %}
{% block content %}
<style>
@@ -10,78 +10,142 @@
background-color: #f2e680;
}
</style>
-<div class="container-fluid jumbotron" align = "justify" style="margin-top:20px; background-color: transparent">
- <!-- style="padding-top:120px"> -->
-<h1><center>Frequently Asked Questions</center></h1>
- <div class="container" style= "font-family: 'Lato', sans-serif;">
+<div class="container-fluid jumbotron" align="justify" style="margin-top:20px; background-color: transparent">
+ <!-- style="padding-top:120px"> -->
+ <h1>
+ <center>Frequently Asked Questions</center>
+ </h1>
+ <div class="container" style="font-family: 'Lato', sans-serif;">
- <hr>
- <ul>
- <li><h5>Who can submit proposals?</h5></li>
- Anyone can submit proposals.
- <br><br>
- <li><h5>Will the contributors receive certificates?</h5></li>
- Yes, contributors will receive certificates from FOSSEE, IIT Bombay, if their proposal is approved and consequently uploaded on the Animations website.
- <br><br>
- <li><h5>Will I get a certificate for each successful proposal? </h5></li>
- For every unique animation released, you would get a certificate. If you submit a series of animations on closely related topics, you will get one certificate for the entire set of videos, and the same will be accordingly reflected in the certificate.
- <br><br>
- <li><h5>When will I get my certificate? </h5></li>
- Within 15 working days after the animation has been published on the website.
- <br><br>
- <li><h5>Do I have to register to contribute?</h5></li>
- Yes, you have to register and login to your account to follow the procedure for contributing. The detailed instructions are given on the <a href="{% url 'guidelines' %}">Guidelines page. </a>
- <br><br>
- <li><h5>Do we have to pay for contributing?</h5></li>
- No, you don’t have to pay any amount for contributing. In turn, you will receive an honorarium if your proposal gets accepted and you submit your animation on the (animations) website.
- <br><br>
- <li><h5>How much honorarium will I receive for a single animation?</h5></li>
+ <hr>
+ <ul>
+ <li>
+ <h5>Who can submit proposals?</h5>
+ </li>
+ Anyone can submit proposals.
+ <br><br>
+ <li>
+ <h5>Will the contributors receive certificates?</h5>
+ </li>
+ Yes, contributors will receive certificates from FOSSEE, IIT Bombay, if their proposal is approved and
+ consequently uploaded on the Animations website.
+ <br><br>
+ <li>
+ <h5>Will I get a certificate for each successful proposal? </h5>
+ </li>
+ For every unique animation released, you would get a certificate. If you submit a series of animations on
+ closely related topics, you will get one certificate for the entire set of videos, and the same will be
+ accordingly reflected in the certificate.
+ <br><br>
+ <li>
+ <h5>When will I get my certificate? </h5>
+ </li>
+ Within 15 working days after the animation has been published on the website.
+ <br><br>
+ <li>
+ <h5>Do I have to register to contribute?</h5>
+ </li>
+ Yes, you have to register and login to your account to follow the procedure for contributing. The detailed
+ instructions are given on the <a href="{% url 'guidelines' %}">Guidelines page. </a>
+ <br><br>
+ <li>
+ <h5>Do we have to pay for contributing?</h5>
+ </li>
+ No, you don’t have to pay any amount for contributing. In turn, you will receive an honorarium if your
+ proposal gets accepted and you submit your animation on the (animations) website.
+ <br><br>
+ <li>
+ <h5>How much honorarium will I receive for a single animation?</h5>
+ </li>
The details on the honorarium amount you receive is given <a href="{% url 'honorarium' %}">here</a>
- <br><br>
- <li><h5>How much time can I take for making a single animation?</h5></li>
- We expect you to give a fully working video within 15 days of submitting your Proposal Form 2, after which your proposal would be discarded.
- <br><br>
- <li><h5>How many videos can be uploaded per proposal?</h5></li>
- One video per proposal can be submitted. If you want to submit more than one animation, you will have to submit separate proposals for each of them.
- <br><br>
- <li><h5>I am from a non-technical background, but wish to animate the concepts I know. Can I contribute?</h5></li>
- Yes. We suggest you get started with the Python language. There are various good resources for beginners in Python. You could also refer to the free Python Self Learning online course offered by the FOSSEE team at IIT Bombay.
- Based on what you want to animate, you could use open source tools or libraries such as manim, mayavi, Blender, PySph and so on.
- <br><br>
- <li><h5>What all topics can I submit animations on?</h5></li>
- Any category of science / engineering topics can be animated (biology, mathematics, aerospace, etc.).
- <br><br>
- <li><h5>I want to submit a proposal for a Category other than Mathematics, Physics and Engineering, What should I do?</h5></li>
- There is an option “Others” in the “Category” field of Proposal Stage 1. Please select that Category. An email will be sent to you regarding your choice of category. Depending on the number of entries for your suggestion, your category might be added to the list of categories in Proposal Stage 1.
- <br><br>
- <li><h5>Do the topics I have chosen be college-level?</h5></li>
+ <br><br>
+ <li>
+ <h5>How much time can I take for making a single animation?</h5>
+ </li>
+ We expect you to give a fully working video within 15 days of submitting your Proposal Form 2, after which
+ your proposal would be discarded.
+ <br><br>
+ <li>
+ <h5>How many videos can be uploaded per proposal?</h5>
+ </li>
+ One video per proposal can be submitted. If you want to submit more than one animation, you will have to
+ submit separate proposals for each of them.
+ <br><br>
+ <li>
+ <h5>I am from a non-technical background, but wish to animate the concepts I know. Can I contribute?
+ </h5>
+ </li>
+ Yes. We suggest you get started with the Python language. There are various good resources for beginners in
+ Python. You could also refer to the free Python Self Learning online course offered by the FOSSEE team at
+ IIT Bombay.
+ Based on what you want to animate, you could use open source tools or libraries such as manim, mayavi,
+ Blender, PySph and so on.
+ <br><br>
+ <li>
+ <h5>What all topics can I submit animations on?</h5>
+ </li>
+ Any category of science / engineering topics can be animated (biology, mathematics, aerospace, etc.).
+ <br><br>
+ <li>
+ <h5>I want to submit a proposal for a Category other than Mathematics, Physics and Engineering, What
+ should I do?</h5>
+ </li>
+ There is an option “Others” in the “Category” field of Proposal Stage 1. Please select that Category. An
+ email will be sent to you regarding your choice of category. Depending on the number of entries for your
+ suggestion, your category might be added to the list of categories in Proposal Stage 1.
+ <br><br>
+ <li>
+ <h5>Do the topics I have chosen be college-level?</h5>
+ </li>
You may animate concepts of any difficulty level, from school level and up.
- <br><br>
- <li><h5>Can I use the videos published on the FOSSEE animations website in my class?</h5></li>
- Yes. One of the major focus of the FOSSEE Animations project is to promote a visual-approach to learning of science concepts.
- The videos are published under a Creative Commons Attribution-ShareAlike 4.0 International License licence.
+ <br><br>
+ <li>
+ <h5>Can I use the videos published on the FOSSEE animations website in my class?</h5>
+ </li>
+ Yes. One of the major focus of the FOSSEE Animations project is to promote a visual-approach to learning of
+ science concepts.
+ The videos are published under a Creative Commons Attribution-ShareAlike 4.0 International License licence.
The code used to generate the videos is to be published under the MIT license.
<span>Please place the terms and conditions of the MIT license on the GitHub page of your code.</span>
- <br><br>
- <li><h5>When will I receive my Honorarium?</h5></li>
+ <br><br>
+ <li>
+ <h5>When will I receive my Honorarium?</h5>
+ </li>
Honorarium would generally be processed within 45 days from the day we receive your forms.
- However, if you do not receive your money within 45 days of acknowledgement of forms received, please feel free to contact us; we’ll be happy to assist you.
- <br><br>
- <li><h5>How many books can I use for reference?</h5></li>
+ However, if you do not receive your money within 45 days of acknowledgement of forms received, please feel
+ free to contact us; we’ll be happy to assist you.
+ <br><br>
+ <li>
+ <h5>How many books can I use for reference?</h5>
+ </li>
As many books as you have chosen for helping you animate that particular concept
- <br><br>
- <li><h5>Is this program only for students with a programming background?</h5></li>
+ <br><br>
+ <li>
+ <h5>Is this program only for students with a programming background?</h5>
+ </li>
No! Anyone with the required interest and knowledge sign up for contributing.
- <br><br>
- <li><h5>Should I email you the code once I’m done creating the videos?</h5></li>
- No, it is best practice to upload your code on GitHub and mention the link to the code in the video outline once you are done creating the video.
- <br><br>
- <li><h5>I do not know GitHub. What should I do?</h5></li>
- Please visit here to learn about <a href="https://git-scm.com/docs/gittutorial" target="_blank">Git</a> and <a href="https://guides.github.com/activities/hello-world/" target="_blank">Github</a>
- </ul>
- <br>
+ <br><br>
+ <li>
+ <h5>Should I email you the code once I’m done creating the videos?</h5>
+ </li>
+ No, it is best practice to upload your code on GitHub and mention the link to the code in the video outline
+ once you are done creating the video.
+ <br><br>
+ <li>
+ <h5>I do not know GitHub. What should I do?</h5>
+ </li>
+ Please visit here to learn about <a href="https://git-scm.com/docs/gittutorial" target="_blank">Git</a> and
+ <a href="https://guides.github.com/activities/hello-world/" target="_blank">Github</a>
+ </ul>
+ <br>
- <h5>If you have any other queries, email us at <a href="mailto: animations@fossee.in">animations@fossee.in</a> </h2>
+<<<<<<< HEAD
+ <h5>If you have any other queries, email us at <a href="mailto: animations@fossee.in">animations@fossee.in</a>
+ </h2>
+ </div>
+=======
+ <h5>If you have any other queries, email us at <a href="mailto: animations@fossee.in">animations@fossee.in</a> </h5>
</div>
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
</div>
-{% endblock %}
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/guidelines.html b/fossee_manim/templates/fossee_manim/guidelines.html
index 93c9dba..fdcb93f 100644
--- a/fossee_manim/templates/fossee_manim/guidelines.html
+++ b/fossee_manim/templates/fossee_manim/guidelines.html
@@ -1,156 +1,215 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- Animation Guidelines
- {% endblock %}
+{% block title %}
+Animation Guidelines
+{% endblock %}
{% block content %}
- <style>
- span {
- background-color: #c2d2df;
- }
- </style>
- <div class="container-fluid jumbotron" align = "justify" style="margin-top:20px; background-color: #e7edee;">
- <h1><center>Guidelines for Submitting Proposals</center></h1>
- <div class="container">
- <hr>
- <div id="accordion">
- <div class="card">
- <div class="card-header" id="headingOne">
- <h5 class="mb-0">
- <button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
- 1. Creating an account
+<style>
+ span {
+ background-color: #c2d2df;
+ }
+</style>
+<div class="container-fluid jumbotron" align="justify" style="margin-top:20px; background-color: #e7edee;">
+ <h1>
+ <center>Guidelines for Submitting Proposals</center>
+ </h1>
+ <div class="container">
+ <hr>
+ <div id="accordion">
+ <div class="card">
+ <div class="card-header" id="headingOne">
+ <h5 class="mb-0">
+ <button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne"
+ aria-expanded="true" aria-controls="collapseOne">
+ 1. Creating an account
</button>
- </h5>
- </div>
+ </h5>
+ </div>
- <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion">
- <div class="card-body">
+ <div id="collapseOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion">
+ <div class="card-body">
<ul>
- <li> Create your account on the FOSSEE Animations website.</li>
- <li> Upon successful registration, an email is sent to your registered email ID. Activate your account by clicking on the activation link provided.</li>
+ <li> Create your account on the FOSSEE Animations website.</li>
+ <li> Upon successful registration, an email is sent to your registered email ID. Activate
+ your account by clicking on the activation link provided.</li>
</ul>
- </div>
</div>
</div>
- <div class="card">
- <div class="card-header" id="headingTwo">
- <h5 class="mb-0">
- <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
+ </div>
+ <div class="card">
+ <div class="card-header" id="headingTwo">
+ <h5 class="mb-0">
+ <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseTwo"
+ aria-expanded="false" aria-controls="collapseTwo">
2. Submitting a proposal
</button>
- </h5>
- </div>
- <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordion">
- <div class="card-body">
- Before you start creating the animation videos, you need to send a proposal. The proposal submission is divided into two stages, Stage 1 and Stage 2. The details for both the stages are given below.
+ </h5>
+ </div>
+ <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordion">
+ <div class="card-body">
+ Before you start creating the animation videos, you need to send a proposal. The proposal
+ submission is divided into two stages, Stage 1 and Stage 2. The details for both the stages are
+ given below.
<ul class="list-group">
- <li class="list-group-item"> <b class="text-center">Stage 1</b><hr/>
- <ol>
- <li>Once the account is activated and you are logged in, proposals for video ideas can be submitted. Click on “Send Proposal” in the drop-down list next to your username (in the top-right corner).
- </li>
- <li>Enter your <b>Category and Subcategory</b>. The Subcategory field refers to the specific subdomain in which the topic to be animated lies. </br>
- For example, if any topic related to Newtonian motion is to be animated, the Category would be Physics and the Subcategory would be Classical Mechanics.<br>
- <b>Note: </b>If there is any ambiguity regarding the Subcategory (or sub-categories) that the chosen topic comes under, enter your best guess after performing a Google Search.
- </li>
- <li>The Title field refers to the specific topic that you have chosen to animate.
- Concerning the the previous example, your title would be something like “Angular Momentum” or “Newton’s Laws of Motion”.</li>
- <li>The Outline field should ideally include:
- <ul><li>a general description of the chosen topic,</li>
- <li>the key points you intend to cover in your animation/ video,</li>
- <li>the tools you might use</li></ul>
- <b>Note: </b> If you haven’t zeroed-down on all the above specifics, try to mention a fair estimate. 150-300 words would be sufficient.
- </li>
- <li>The Tags field should be filled with keywords relating to your topic of animation (i.e., your Title).
- Some of the possible tags for “Angular Momentum” are “Newtonian Physics”, “Classical Mechanics” and “Rotational Motion”.</li>
- <li>Click on Save to Submit your proposal. You will now be able to view and edit your proposals on the proposals page. You can access this page by selecting “View Proposals” in the drop-down list next to your username in the top-right corner of the website.</li>
- </ol>
- </li>
- <li class="list-group-item"> <b class="text-center">Stage 2</b><hr/>
- <ol>
- <li>Once you have submitted Stage 1 of the proposal, you will receive an email on your registered email within 3 working days. It will contain an attached Writer document (.odt), where specific details of the animation(s) proposed have to be filled in. </li>
- <li>Further correspondence between the contributor and the moderator usually happens in the same email thread.</li>
- <li>After the document has been submitted and has passed the moderator’s review, the proposal is cleared for submission on the FOSSEE Animations website. The contributor is notified of the same via email.</li>
- </ol>
- <hr>
- Please note that the second form is completed and sent after the contributor has worked out the more precise details of their proposed animation. The moderators should get a fair idea of what the video you animate will consist of such as the approach to visualising a concept, the tools used and the books used for reference, among other things.
- </li>
+ <li class="list-group-item"> <b class="text-center">Stage 1</b>
+ <hr />
+ <ol>
+ <li>Once the account is activated and you are logged in, proposals for video ideas
+ can be submitted. Click on “Send Proposal” in the drop-down list next to your
+ username (in the top-right corner).
+ </li>
+ <li>Enter your <b>Category and Subcategory</b>. The Subcategory field refers to the
+ specific subdomain in which the topic to be animated lies. </br>
+ For example, if any topic related to Newtonian motion is to be animated, the
+ Category would be Physics and the Subcategory would be Classical Mechanics.<br>
+ <b>Note: </b>If there is any ambiguity regarding the Subcategory (or
+ sub-categories) that the chosen topic comes under, enter your best guess after
+ performing a Google Search.
+ </li>
+ <li>The Title field refers to the specific topic that you have chosen to animate.
+ Concerning the the previous example, your title would be something like “Angular
+ Momentum” or “Newton’s Laws of Motion”.</li>
+ <li>The Outline field should ideally include:
+ <ul>
+ <li>a general description of the chosen topic,</li>
+ <li>the key points you intend to cover in your animation/ video,</li>
+ <li>the tools you might use</li>
+ </ul>
+ <b>Note: </b> If you haven’t zeroed-down on all the above specifics, try to
+ mention a fair estimate. 150-300 words would be sufficient.
+ </li>
+ <li>The Tags field should be filled with keywords relating to your topic of
+ animation (i.e., your Title).
+ Some of the possible tags for “Angular Momentum” are “Newtonian Physics”,
+ “Classical Mechanics” and “Rotational Motion”.</li>
+ <li>Click on Save to Submit your proposal. You will now be able to view and edit
+ your proposals on the proposals page. You can access this page by selecting
+ “View Proposals” in the drop-down list next to your username in the top-right
+ corner of the website.</li>
+ </ol>
+ </li>
+ <li class="list-group-item"> <b class="text-center">Stage 2</b>
+ <hr />
+ <ol>
+ <li>Once you have submitted Stage 1 of the proposal, you will receive an email on
+ your registered email within 3 working days. It will contain an attached Writer
+ document (.odt), where specific details of the animation(s) proposed have to be
+ filled in. </li>
+ <li>Further correspondence between the contributor and the moderator usually happens
+ in the same email thread.</li>
+ <li>After the document has been submitted and has passed the moderator’s review, the
+ proposal is cleared for submission on the FOSSEE Animations website. The
+ contributor is notified of the same via email.</li>
+ </ol>
+ <hr>
+ Please note that the second form is completed and sent after the contributor has worked
+ out the more precise details of their proposed animation. The moderators should get a
+ fair idea of what the video you animate will consist of such as the approach to
+ visualising a concept, the tools used and the books used for reference, among other
+ things.
+ </li>
</ul>
- </div>
</div>
</div>
+ </div>
<div class="card">
- <div class="card-header" id="headingThree">
- <h5 class="mb-0">
- <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">3.
- Creating your animation / visualisation: </button>
- </h5>
- </div>
- <div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordion">
- <div class="card-body">
- <ul>
- <li>You may use any tool for creating your animation. More than one tool may also be used, as per the discretion of the contributor. However, you are expected to use only open source tools such as manim, mayavi and blender. You may also use an open-source game engine. For more details contact: <a href="mailto:animations@fossee.in">animations@fossee.in</a></li>
- <li>Submit the final video in a .mp4 format.</li>
- <li>Any queries can be clarified by email or through the comments on the proposal submission page.</li>
- <li>In case you feel that the animation video requires narration, you may provide a complementary script in a .txt file over email. A voiceover would be provided for the animations from FOSSEE. You may refer to the videos already published on the website for instances of animations with and without an additional script. Email <a href="mailto:animations@fossee.in">animations@fossee.in</a> if you want to add a script. </li>
- <hr/>
- <b>References for animations</b>
- <li>You may refer to <a href="https://purusharthsaxena.wordpress.com/">this blog</a> and <a href="https://talkingphysics.wordpress.com/2019/01/08/getting-started-animating-with-manim-and-python-3-7/">this blog</a> for getting started with <b>manim</b>. <a href="https://www.youtube.com/watch?v=r6OD07Qq2mw">Here's the link</a> for getting started with mayavi.</li>
- </ul>
- </div>
- </div>
+ <div class="card-header" id="headingThree">
+ <h5 class="mb-0">
+ <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseThree"
+ aria-expanded="false" aria-controls="collapseThree">3.
+ Creating your animation / visualisation: </button>
+ </h5>
+ </div>
+ <div id="collapseThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordion">
+ <div class="card-body">
+ <ul>
+ <li>You may use any tool for creating your animation. More than one tool may also be used,
+ as per the discretion of the contributor. However, you are expected to use only open
+ source tools such as manim, mayavi and blender. You may also use an open-source game
+ engine. For more details contact: <a
+ href="mailto:animations@fossee.in">animations@fossee.in</a></li>
+ <li>Submit the final video in a .mp4 format.</li>
+ <li>Any queries can be clarified by email or through the comments on the proposal submission
+ page.</li>
+ <li>In case you feel that the animation video requires narration, you may provide a
+ complementary script in a .txt file over email. A voiceover would be provided for the
+ animations from FOSSEE. You may refer to the videos already published on the website for
+ instances of animations with and without an additional script. Email <a
+ href="mailto:animations@fossee.in">animations@fossee.in</a> if you want to add a
+ script. </li>
+ <hr />
+ <b>References for animations</b>
+ <li>You may refer to <a href="https://purusharthsaxena.wordpress.com/">this blog</a> and <a
+ href="https://talkingphysics.wordpress.com/2019/01/08/getting-started-animating-with-manim-and-python-3-7/">this
+ blog</a> for getting started with <b>manim</b>. <a
+ href="https://www.youtube.com/watch?v=r6OD07Qq2mw">Here's the link</a> for getting
+ started with mayavi.</li>
+ </ul>
+ </div>
+ </div>
</div>
<div class="card">
- <div class="card-header" id="headingFour">
- <h5 class="mb-0">
- <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseFour" aria-expanded="false" aria-controls="collapseFour">
- 4. Uploading the final video
- </button>
- </h5>
- </div>
- <div id="collapseFour" class="collapse" aria-labelledby="headingFour" data-parent="#accordion">
- <div class="card-body">
- After submitting the Proposal - Form 2, and after the moderator has approved, you will receive a link on your proposals page for uploading the required video. FOSSEE notifies you of the same via email.
- </div>
- </div>
+ <div class="card-header" id="headingFour">
+ <h5 class="mb-0">
+ <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseFour"
+ aria-expanded="false" aria-controls="collapseFour">
+ 4. Uploading the final video
+ </button>
+ </h5>
+ </div>
+ <div id="collapseFour" class="collapse" aria-labelledby="headingFour" data-parent="#accordion">
+ <div class="card-body">
+ After submitting the Proposal - Form 2, and after the moderator has approved, you will receive a
+ link on your proposals page for uploading the required video. FOSSEE notifies you of the same
+ via email.
+ </div>
+ </div>
</div>
<div class="card">
- <div class="card-header" id="headingFive">
- <h5 class="mb-0">
- <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseFive" aria-expanded="false" aria-controls="collapseFive">
- 5. Obtaining certificates
- </button>
- </h5>
- </div>
- <div id="collapseFive" class="collapse" aria-labelledby="headingFive" data-parent="#accordion">
- <div class="card-body">
- The criterion for obtaining a certificate from FOSSEE, IITB is that you should have successfully submitted and uploaded your animation on the FOSSEE animations website.
- FOSSEE sends the certificate to your registered email within 15 working days. If you submit a bunch of closely related videos in a series, you receive a certificate for that set. Otherwise, for every standalone contribution, you receive a certificate. The certificate is issued by FOSSEE, IIT Bombay.
- </div>
- </div>
+ <div class="card-header" id="headingFive">
+ <h5 class="mb-0">
+ <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseFive"
+ aria-expanded="false" aria-controls="collapseFive">
+ 5. Obtaining certificates
+ </button>
+ </h5>
+ </div>
+ <div id="collapseFive" class="collapse" aria-labelledby="headingFive" data-parent="#accordion">
+ <div class="card-body">
+ The criterion for obtaining a certificate from FOSSEE, IITB is that you should have successfully
+ submitted and uploaded your animation on the FOSSEE animations website.
+ FOSSEE sends the certificate to your registered email within 15 working days. If you submit a
+ bunch of closely related videos in a series, you receive a certificate for that set. Otherwise,
+ for every standalone contribution, you receive a certificate. The certificate is issued by
+ FOSSEE, IIT Bombay.
+ </div>
+ </div>
</div>
<div class="card">
- <div class="card-header" id="headingSix">
- <h5 class="mb-0">
- <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseSix" aria-expanded="false" aria-controls="collapseSix">
- 6. Acquiring the honorarium
- </button>
- </h5>
- </div>
- <div id="collapseSix" class="collapse" aria-labelledby="headingSix" data-parent="#accordion">
- <div class="card-body">
- <a href="https://animations.fossee.in/honorarium/">Click here</a> to learn about the procedure for receiving the honorarium.
- </div>
- </div>
+ <div class="card-header" id="headingSix">
+ <h5 class="mb-0">
+ <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseSix"
+ aria-expanded="false" aria-controls="collapseSix">
+ 6. Acquiring the honorarium
+ </button>
+ </h5>
+ </div>
+ <div id="collapseSix" class="collapse" aria-labelledby="headingSix" data-parent="#accordion">
+ <div class="card-body">
+ <a href="https://animations.fossee.in/honorarium/">Click here</a> to learn about the procedure
+ for receiving the honorarium.
+ </div>
+ </div>
</div>
</div>
- </div>
- </div>
-{% endblock %}
+ </div>
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/honorarium.html b/fossee_manim/templates/fossee_manim/honorarium.html
index 3896717..968ff87 100644
--- a/fossee_manim/templates/fossee_manim/honorarium.html
+++ b/fossee_manim/templates/fossee_manim/honorarium.html
@@ -1,67 +1,87 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- Honorarium
- {% endblock %}
+{% block title %}
+Honorarium
+{% endblock %}
{% block content %}
- <script>
- $(document).ready(function(){
- $('[data-toggle="tooltip"]').tooltip();
- });
- </script>
- <style>
- span {
- background-color: #f2e680;
- }
- </style>
+<script>
+ $(document).ready(function () {
+ $('[data-toggle="tooltip"]').tooltip();
+ });
+</script>
+<style>
+ span {
+ background-color: #f2e680;
+ }
+</style>
- <div class="container-fluid jumbotron" align = "justify" style="margin-top:20px; background-color: #e7edee;">
- <h1><center>Honorarium</center></h1>
- <div class="container" style= "font-family: 'Lato', sans-serif;">
- <hr>
+<div class="container-fluid jumbotron" align="justify" style="margin-top:20px; background-color: #e7edee;">
+ <h1>
+ <center>Honorarium</center>
+ </h1>
+ <div class="container" style="font-family: 'Lato', sans-serif;">
+ <hr>
- <h2><center>Amount</center></h2>
- <br>
+ <h2>
+ <center>Amount</center>
+ </h2>
+ <br>
- <ol>
- <li> The honorarium amount is assigned based on:
- <ul>
- <li> the complexity of the topic chosen for animation, </li>
- <li> curation of the video </li>
- <li> the contributor’s performance, curation of the video and the final output.</li>
- </ul>
- </li>
- <li> The quality of the final video you submit, the complexity of the topic chosen,
- the correctness/succinctness of the outline and timely submission are factors that
- determine the honorarium amount you receive. If the contributor submits the video on time
- and with a concise outline, he/she may receive an amount of Rs 1000 - Rs 1500 per video.
- </li>
- <li> A quality bonus of Rs 500-1000 per video can be granted if deemed fit by the reviewer. </li>
- <li> <strong>The final amount is up to the discretion of the moderators.</strong></li>
- </ol>
- <br> <br>
- <h2><center>Procedure</center></h2>
- <br>
- <p> A contributor can begin with the honorarium process only after submission of the final video and its release on the website.
- <br>The procedure for acquiring the honorarium is as follows:
+ <ol>
+ <li> The honorarium amount is assigned based on:
+ <ul>
+ <li> the complexity of the topic chosen for animation, </li>
+ <li> curation of the video </li>
+ <li> the contributor’s performance, curation of the video and the final output.</li>
+ </ul>
+ </li>
+ <li> The quality of the final video you submit, the complexity of the topic chosen,
+ the correctness/succinctness of the outline and timely submission are factors that
+ determine the honorarium amount you receive. If the contributor submits the video on time
+ and with a concise outline, he/she may receive an amount of Rs 1000 - Rs 1500 per video.
+ </li>
+ <li> A quality bonus of Rs 500-1000 per video can be granted if deemed fit by the reviewer. </li>
+ <li> <strong>The final amount is up to the discretion of the moderators.</strong></li>
+ </ol>
+ <br> <br>
+ <h2>
+ <center>Procedure</center>
+ </h2>
+ <br>
+ <p> A contributor can begin with the honorarium process only after submission of the final video and its release
+ on the website.
+ <br>The procedure for acquiring the honorarium is as follows:
<ol>
<li>Download the forms given at the end of this page and print them out.</li>
- <li>These forms are to be filled and sent to the address given at the bottom of this page. Please send ALL the forms in a SINGLE envelope. Forms that are not sent together are not considered under any circumstances.</li>
- <li>After FOSSEE receives the filled-in honorarium forms, the honorarium amount is transferred to your bank account through NEFT. Fill in Bankdetails_Form.pdf with details of the bank account to which you want the honorarium to be transferred.</li>
- <li>We generally process your honorarium within 45 days from the day we receive your forms. However, if you do not receive your money within 45 days of acknowledgement of forms received, please feel free to contact us; we are happy to assist you.</li>
+ <li>These forms are to be filled and sent to the address given at the bottom of this page. Please send
+ ALL the forms in a SINGLE envelope. Forms that are not sent together are not considered under any
+ circumstances.</li>
+ <li>After FOSSEE receives the filled-in honorarium forms, the honorarium amount is transferred to your
+ bank account through NEFT. Fill in Bankdetails_Form.pdf with details of the bank account to which
+ you want the honorarium to be transferred.</li>
+ <li>We generally process your honorarium within 45 days from the day we receive your forms. However, if
+ you do not receive your money within 45 days of acknowledgement of forms received, please feel free
+ to contact us; we are happy to assist you.</li>
</ol>
- <p><span>Please note that the honorarium processing only starts after we receive your completed honorarium forms. Ensure that you have made a PAN card and submit the forms in time to avoid delays.</span><p>
- <br> <br>
- <h2><center>Forms</center></h2>
- <br>
- <p>Kindly print out the forms below, fill the required fields and mail them to the address:<p>
- <ul>
- <li> <a href = "https://static.fossee.in/animations/forms/Copyright_Transfer.pdf"> Copyright Transfer Form </a> </li>
- <li> <a href = "https://static.fossee.in/animations/forms/Contributor_Details.pdf"> Contributor Details Form </a> </li>
- <li> <a href = "https://static.fossee.in/animations/forms/Bank_Details.pdf"> Bank Details Form </a> </li>
- <li> <a href = "https://static.fossee.in/animations/forms/Receipt.pdf"> Receipt </a> </li>
- </ul>
- </div>
+ <p><span>Please note that the honorarium processing only starts after we receive your completed honorarium
+ forms. Ensure that you have made a PAN card and submit the forms in time to avoid delays.</span>
+ <p>
+ <br> <br>
+ <h2>
+ <center>Forms</center>
+ </h2>
+ <br>
+ <p>Kindly print out the forms below, fill the required fields and mail them to the address:<p>
+ <ul>
+ <li> <a href="https://static.fossee.in/animations/forms/Copyright_Transfer.pdf">
+ Copyright Transfer Form </a> </li>
+ <li> <a href="https://static.fossee.in/animations/forms/Contributor_Details.pdf">
+ Contributor Details Form </a> </li>
+ <li> <a href="https://static.fossee.in/animations/forms/Bank_Details.pdf"> Bank Details
+ Form </a> </li>
+ <li> <a href="https://static.fossee.in/animations/forms/Receipt.pdf"> Receipt </a> </li>
+ </ul>
</div>
-{% endblock %}
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/index.html b/fossee_manim/templates/fossee_manim/index.html
index a598513..1e902e9 100644
--- a/fossee_manim/templates/fossee_manim/index.html
+++ b/fossee_manim/templates/fossee_manim/index.html
@@ -1,66 +1,74 @@
{% extends 'fossee_manim/base.html' %}
{% block title %}
- FOSSEE Animations Homepage
+FOSSEE Animations Homepage
{% endblock %}
- {% block content %}
- <div class="container-fluid jumbotron" align = "justify" style= "padding:0px; height: 550px;">
+{% block content %}
+<div class="container-fluid jumbotron" align="justify" style="padding:0px; height: 550px;">
- <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel" style="margin-top: 0px">
- <ol class="carousel-indicators">
- <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
- <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
- <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
- </ol>
- <div class="carousel-inner">
+ <div id="carouselExampleIndicators" class="carousel slide" data-ride="carousel" style="margin-top: 0px">
+ <ol class="carousel-indicators">
+ <li data-target="#carouselExampleIndicators" data-slide-to="0" class="active"></li>
+ <li data-target="#carouselExampleIndicators" data-slide-to="1"></li>
+ <li data-target="#carouselExampleIndicators" data-slide-to="2"></li>
+ </ol>
+ <div class="carousel-inner">
- <div class="carousel-item active">
- <img class="d-block w-100" src="{{ URL_ROOT }}/static/img/carousel1.png" alt="First slide" style= "height:550px;">
- <div class="carousel-caption col-md-4" style="float:left; font-family: 'Lato', sans-serif; text-align: left; margin-left: -20px; margin-bottom:15px">
- <h3><a style="font-family: 'Montserrat', sans-serif; font-weight: 500;">FOSSEE Animations</a></h3>
- <h5>endeavors to be an extensive library
- of community-curated videos on STEM topics
- </h5>
- </div>
- </div>
- <div class="carousel-item">
- <img class="d-block w-100" src="{{ URL_ROOT }}/static/img/carousel3.png" alt="Second slide" style= "height:550px;">
- <div class="carousel-caption col-md-3" style="float:right; font-family: 'Lato', sans-serif;">
- <h3><a style="font-family: 'Montserrat', sans-serif; font-weight: 500;">Anyone can contribute to the project</a></h3>
- <h5> The only requirement is that the video should be made using <i>OpenSource</i> tools</h5>like Blender, Manim, Mayavi, etc.
- </div>
- </div>
+ <div class="carousel-item active">
+ <img class="d-block w-100" src="{{ URL_ROOT }}/static/img/carousel1.png" alt="First slide"
+ style="height:550px;">
+ <div class="carousel-caption col-md-4"
+ style="float:left; font-family: 'Lato', sans-serif; text-align: left; margin-left: -20px; margin-bottom:15px">
+ <h3><a style="font-family: 'Montserrat', sans-serif; font-weight: 500;">FOSSEE Animations</a></h3>
+ <h5>endeavors to be an extensive library
+ of community-curated videos on STEM topics
+ </h5>
+ </div>
+ </div>
+ <div class="carousel-item">
+ <img class="d-block w-100" src="{{ URL_ROOT }}/static/img/carousel3.png" alt="Second slide"
+ style="height:550px;">
+ <div class="carousel-caption col-md-3" style="float:right; font-family: 'Lato', sans-serif;">
+ <h3><a style="font-family: 'Montserrat', sans-serif; font-weight: 500;">Anyone can contribute to the
+ project</a></h3>
+ <h5> The only requirement is that the video should be made using <i>OpenSource</i> tools</h5>like
+ Blender, Manim, Mayavi, etc.
+ </div>
+ </div>
- <div class="carousel-item">
- <img class="d-block w-100" src="{{ URL_ROOT }}/static/img/carousel2.png" alt="Third slide" style= "height:550px; ">
- <div class="carousel-caption col-md-4" style="margin-left:560px; margin-bottom:250px;float:right; font-family: 'Lato', sans-serif; text-align:right">
- <h3><a style="font-family: 'Montserrat', sans-serif; font-weight: 500;">On successful submission</a></h3>
- <h5>you receive a certificate and an<br>
- honorarium from FOSSEE,<br>IIT-Bombay</h5>
- </div>
- </div>
- </div>
- <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
- <span class="carousel-control-prev-icon" aria-hidden="true"></span>
- <span class="sr-only">Previous</span>
- </a>
- <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
- <span class="carousel-control-next-icon" aria-hidden="true"></span>
- <span class="sr-only">Next</span>
- </a>
+ <div class="carousel-item">
+ <img class="d-block w-100" src="{{ URL_ROOT }}/static/img/carousel2.png" alt="Third slide"
+ style="height:550px; ">
+ <div class="carousel-caption col-md-4"
+ style="margin-left:560px; margin-bottom:250px;float:right; font-family: 'Lato', sans-serif; text-align:right">
+ <h3><a style="font-family: 'Montserrat', sans-serif; font-weight: 500;">On successful submission</a>
+ </h3>
+ <h5>you receive a certificate and an<br>
+ honorarium from FOSSEE,<br>IIT-Bombay</h5>
</div>
</div>
+ </div>
+ <a class="carousel-control-prev" href="#carouselExampleIndicators" role="button" data-slide="prev">
+ <span class="carousel-control-prev-icon" aria-hidden="true"></span>
+ <span class="sr-only">Previous</span>
+ </a>
+ <a class="carousel-control-next" href="#carouselExampleIndicators" role="button" data-slide="next">
+ <span class="carousel-control-next-icon" aria-hidden="true"></span>
+ <span class="sr-only">Next</span>
+ </a>
+ </div>
+</div>
- <!--Infographics-->
+<!--Infographics-->
<div class="jumbotron row text-center" id= "infg" style="background-color: white; margin: 10px; font-family:'Lato', sans-serif; font-weight:400">
<div class="container text-center">
<h1 style="color: #e45700; font-family:'Montserrat', sans-serif;">HOW IT WORKS</h1>
<img class="img-fluid d-block text-center" width="100%" src="{{ URL_ROOT }}/static/img/info.svg" alt="Infographic">
<br>
- Want to know more? Visit our <a href="{{URL_ROOT}}/guidelines/" style="background-color:#157b80; color:white;">Guidelines</a> page!
+ Want to know more? Visit our <button onclick="location.href='{{URL_ROOT}}/guidelines/'" style="background-color:#157b80; color:white;">Guidelines</button> page!
</div>
</div>
{% endblock %}
diff --git a/fossee_manim/templates/fossee_manim/library.html b/fossee_manim/templates/fossee_manim/library.html
index 259eec4..7593b07 100644
--- a/fossee_manim/templates/fossee_manim/library.html
+++ b/fossee_manim/templates/fossee_manim/library.html
@@ -1,62 +1,64 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- FOSSEE Animations | Topic Library
- {% endblock %}
+{% block title %}
+FOSSEE Animations | Topic Library
+{% endblock %}
- {% block content %}
- <div class="container-fluid jumbotron" align = "justify" style="padding: 50px; background-color: transparent;">
- <center><h2>Library of Topics</h2></center>
- <div class="container" style= "font-family: 'Lato', sans-serif; background-color: transparent;">
- <center style= "color: #555555;">
- Muddled about what you could possibly animate? <br>
- You can pick up topics from the lists below! <br>
- <!-- We like to call it "<i>low-hanging fruit</i>". -->
- </center>
- <hr>
- <br>
- <div class="row">
- <!-- Math Category -->
- <div class="col-md-4">
- <div class="card mb-4 box-shadow">
- <a>
- <img class="card-img-top" alt="Category Thumbnail">
- </a>
- <div class="card-body" align= "center">
- <a href="{% url 'libraryMath' %}">
- <h4 class="card-text" style="color: #157b80;">Mathematics</h4>
- </a>
- </div>
+{% block content %}
+<div class="container-fluid jumbotron" align="justify" style="padding: 50px; background-color: transparent;">
+ <center>
+ <h2>Library of Topics</h2>
+ </center>
+ <div class="container" style="font-family: 'Lato', sans-serif; background-color: transparent;">
+ <center style="color: #555555;">
+ Muddled about what you could possibly animate? <br>
+ You can pick up topics from the lists below! <br>
+ <!-- We like to call it "<i>low-hanging fruit</i>". -->
+ </center>
+ <hr>
+ <br>
+ <div class="row">
+ <!-- Math Category -->
+ <div class="col-md-4">
+ <div class="card mb-4 box-shadow">
+ <a>
+ <img class="card-img-top" alt="Category Thumbnail">
+ </a>
+ <div class="card-body" align="center">
+ <a href="{% url 'libraryMath' %}">
+ <h4 class="card-text" style="color: #157b80;">Mathematics</h4>
+ </a>
</div>
- </div>
- <!-- Physics Category -->
- <div class="col-md-4">
- <div class="card mb-4 box-shadow">
- <a>
- <img class="card-img-top" alt="Category Thumbnail">
- </a>
- <div class="card-body" align= "center">
- <a href="{% url 'libraryPhys' %}">
- <h4 class="card-text" style="color: #157b80;">Physics</h4>
- </a>
- </div>
+ </div>
+ </div>
+ <!-- Physics Category -->
+ <div class="col-md-4">
+ <div class="card mb-4 box-shadow">
+ <a>
+ <img class="card-img-top" alt="Category Thumbnail">
+ </a>
+ <div class="card-body" align="center">
+ <a href="{% url 'libraryPhys' %}">
+ <h4 class="card-text" style="color: #157b80;">Physics</h4>
+ </a>
</div>
- </div>
- <!-- CS Category -->
- <div class="col-md-4">
- <div class="card mb-4 box-shadow">
- <a>
- <img class="card-img-top" alt="Category Thumbnail">
- </a>
- <div class="card-body" align= "center">
- <a href="{% url 'libraryCS' %}">
- <h4 class="card-text" style="color: #157b80;">Computer Science</h4>
- </a>
- </div>
+ </div>
+ </div>
+ <!-- CS Category -->
+ <div class="col-md-4">
+ <div class="card mb-4 box-shadow">
+ <a>
+ <img class="card-img-top" alt="Category Thumbnail">
+ </a>
+ <div class="card-body" align="center">
+ <a href="{% url 'libraryCS' %}">
+ <h4 class="card-text" style="color: #157b80;">Computer Science</h4>
+ </a>
</div>
- </div>
- <!-- end of library -->
+ </div>
</div>
- </div>
+ <!-- end of library -->
+ </div>
</div>
- {% endblock %}
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/libraryCS.html b/fossee_manim/templates/fossee_manim/libraryCS.html
index a40408d..30c09a2 100644
--- a/fossee_manim/templates/fossee_manim/libraryCS.html
+++ b/fossee_manim/templates/fossee_manim/libraryCS.html
@@ -1,16 +1,18 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- FOSSEE Animations | Library of Computer Science Topics
- {% endblock %}
+{% block title %}
+FOSSEE Animations | Library of Computer Science Topics
+{% endblock %}
- {% block content %}
- <div class="container-fluid jumbotron" align = "justify" style="background-color: transparent">
- <center><h2>CS Topics</h2></center>
- <div class="container" style= "font-family: 'Lato', sans-serif; background-color: transparent;">
+{% block content %}
+<div class="container-fluid jumbotron" align="justify" style="background-color: transparent">
+ <center>
+ <h2>CS Topics</h2>
+ </center>
+ <div class="container" style="font-family: 'Lato', sans-serif; background-color: transparent;">
<hr>
<script src="https://gist.github.com/Sh-Ac/59779adf6cd8ff74e451567a1868a36d.js"></script>
- </div>
</div>
+</div>
- {% endblock %}
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/libraryMath.html b/fossee_manim/templates/fossee_manim/libraryMath.html
index cbdd765..0735a60 100644
--- a/fossee_manim/templates/fossee_manim/libraryMath.html
+++ b/fossee_manim/templates/fossee_manim/libraryMath.html
@@ -1,16 +1,18 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- FOSSEE Animations | Library of Mathematics Topics
- {% endblock %}
+{% block title %}
+FOSSEE Animations | Library of Mathematics Topics
+{% endblock %}
{% block content %}
- <div class="container-fluid jumbotron" align = "justify" style="background-color: transparent">
- <center><h2>Mathematics Topics</h2></center>
- <div class="container" style= "font-family: 'Lato', sans-serif; background-color: transparent;">
+<div class="container-fluid jumbotron" align="justify" style="background-color: transparent">
+ <center>
+ <h2>Mathematics Topics</h2>
+ </center>
+ <div class="container" style="font-family: 'Lato', sans-serif; background-color: transparent;">
<hr>
- <script src="https://gist.github.com/Jar-win/b8207bb59110a459ab7a9089144d1621.js"></script>
- </div>
+ <script src="https://gist.github.com/Jar-win/b8207bb59110a459ab7a9089144d1621.js"></script>
</div>
+</div>
- {% endblock %}
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/libraryPhys.html b/fossee_manim/templates/fossee_manim/libraryPhys.html
index 883a59b..c780c1d 100644
--- a/fossee_manim/templates/fossee_manim/libraryPhys.html
+++ b/fossee_manim/templates/fossee_manim/libraryPhys.html
@@ -1,16 +1,18 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- FOSSEE Animations | Library of Physics Topics
- {% endblock %}
+{% block title %}
+FOSSEE Animations | Library of Physics Topics
+{% endblock %}
{% block content %}
- <div class="container-fluid jumbotron" align = "justify" style="background-color: transparent">
- <center><h2>Physics Topics</h2></center>
- <div class="container" style= "font-family: 'Lato', sans-serif; background-color: transparent;">
+<div class="container-fluid jumbotron" align="justify" style="background-color: transparent">
+ <center>
+ <h2>Physics Topics</h2>
+ </center>
+ <div class="container" style="font-family: 'Lato', sans-serif; background-color: transparent;">
<hr>
<script src="https://gist.github.com/Jar-win/e7601528c911fe35250d19b86b652a02.js"></script>
- </div>
</div>
+</div>
- {% endblock %}
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/login.html b/fossee_manim/templates/fossee_manim/login.html
index fd8580d..c27103e 100644
--- a/fossee_manim/templates/fossee_manim/login.html
+++ b/fossee_manim/templates/fossee_manim/login.html
@@ -1,29 +1,32 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- Login
- {% endblock %}
+{% block title %}
+Login
+{% endblock %}
{% block content %}
- <div class="container-fluid jumbotron" align="justify" style="margin-top:20px; background-color: #e7edee;">
- <center>
+<div class="container-fluid jumbotron" align="justify" style="margin-top:20px; background-color: #e7edee;">
+ <center>
<h1>Login</h1>
<hr>
- <div class="container" style= "font-family: 'Lato', sans-serif;">
+ <div class="container" style="font-family: 'Lato', sans-serif;">
<form method="post">
- {% csrf_token %}
- <table class="table table-bordered">
- {{ form.as_table }}
- <br>
- <br>
- </table>
- <button class="btn btn-success btn-sm" type="submit" style="background-color:#e45700;color:white; border:0px">Login</button>
- <a href="{{URL_ROOT}}/forgotpassword/" class="btn btn-default btn-sm" style="color:#157b80; ">Forgot Password?</a>
+ {% csrf_token %}
+ <table class="table table-bordered">
+ {{ form.as_table }}
+ <br>
+ <br>
+ </table>
+ <button class="btn btn-success btn-sm" type="submit"
+ style="background-color:#e45700;color:white; border:0px">Login</button>
+ <a href="{{URL_ROOT}}/forgotpassword/" class="btn btn-default btn-sm" style="color:#157b80; ">Forgot
+ Password?</a>
</form>
<br>
- <p>Don't have an account yet? <a href="{{URL_ROOT}}/register/" style="background-color:#157b80; color:white;">Register here!</a></p>
- </center>
- <br>
- </div>
- </div>
- {% endblock %}
+ <p>Don't have an account yet? <a href="{{URL_ROOT}}/register/"
+ style="background-color:#157b80; color:white;">Register here!</a></p>
+ </center>
+ <br>
+</div>
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/logout.html b/fossee_manim/templates/fossee_manim/logout.html
index b326547..fe816a4 100644
--- a/fossee_manim/templates/fossee_manim/logout.html
+++ b/fossee_manim/templates/fossee_manim/logout.html
@@ -1,16 +1,16 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- Logged out
- {% endblock %}
+{% block title %}
+Logged out
+{% endblock %}
- {% block content %}
- <div class="container jumbotron" align="center" style= "margin-top: 30px;">
- <br>
- <h3>You have logged out successfully.</h3>
- <h4>If you want to Login again please <a href="{{ URL_ROOT}}/login/">click here</a></h4>
- <br>
- </div>
+{% block content %}
+<div class="container jumbotron" align="center" style="margin-top: 30px;">
+ <br>
+ <h3>You have logged out successfully.</h3>
+ <h4>If you want to Login again please <a href="{{ URL_ROOT}}/login/" style="color: blue">click here</a></h4>
+ <br>
+</div>
- {% endblock %}
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/outreach.html b/fossee_manim/templates/fossee_manim/outreach.html
index bc85714..2bdf740 100644
--- a/fossee_manim/templates/fossee_manim/outreach.html
+++ b/fossee_manim/templates/fossee_manim/outreach.html
@@ -1,13 +1,13 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- FOSSEE Animations | Outreach
- {% endblock %}
+{% block title %}
+FOSSEE Animations | Outreach
+{% endblock %}
{% block content %}
- <div class="container-fluid jumbotron" align = "justify" style="background-color: transparent">
+ <div class="container-fluid jumbotron" align = "justify" style="background-color: transparent; margin-bottom: 103px; ">
<center><h2>FOSSEE Animations Outreach</h2></center>
<hr>
</div>
- {% endblock %}
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/profile_updated.html b/fossee_manim/templates/fossee_manim/profile_updated.html
index 68cf636..06c6309 100644
--- a/fossee_manim/templates/fossee_manim/profile_updated.html
+++ b/fossee_manim/templates/fossee_manim/profile_updated.html
@@ -1,21 +1,20 @@
-
{% extends 'fossee_manim/base.html' %}
{% block title %}
- Profile Changing
+Profile Changing
{% endblock %}
- {% block extra %}
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
- <script src="{{URL_ROOT}}/static/fossee_manim/js/bootstrap-3.3.7.min.js"></script>
- {% endblock %}
+{% block extra %}
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+<script src="{{URL_ROOT}}/static/fossee_manim/js/bootstrap-3.3.7.min.js"></script>
+{% endblock %}
{% block content %}
<br> <br> <br>
- <div class="container">
- <div class="jumbotron row">
- <h3>Your Profile has changed {{ user.first_name }}</h3>
- </div>
+<div class="container">
+ <div class="jumbotron row">
+ <h3>Your Profile has changed {{ user.first_name }}</h3>
</div>
- <br>
-{% endblock %}
+</div>
+<br>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/proposal_status.html b/fossee_manim/templates/fossee_manim/proposal_status.html
index 7294d3a..012ba4f 100644
--- a/fossee_manim/templates/fossee_manim/proposal_status.html
+++ b/fossee_manim/templates/fossee_manim/proposal_status.html
@@ -1,75 +1,134 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- Proposal Status
- {% endblock %}
+{% block title %}
+ Proposal Status
+{% endblock %}
{% block content %}
-<div class = "jumbotron" style = "background-color: white; margin-top: 0px;">
- <div class="container" align="center">
+ <div class="jumbotron" style="background-color: white; margin-top: 0px;">
+ <div class="container" align="center">
- <h2> Proposal Status </h2>
- <hr>
- <table class="table table-hover" style= "font-family: 'Lato', sans-serif;">
- <thead>
- <tr>
- <th>Title</th>
- <th>Status</th>
- <th>Created Date</th>
- {% if request.user.profile.position == 'reviewer' %}
- <th>Contributor Name</th>
- {% endif %}
- </tr>
- </thead>
- {% for an in anime %}
- <tbody>
- <tr>
- <td>{{ an.title }}</td>
- {% if an.status == 'rejected' %}
- <td><span class="text-danger">{{ an.status }}</span></td>
- {% elif an.status == 'released' %}
- <td><span class="text-success">{{ an.status }}</span></td>
- {% else %}
- <td><span class="text-info">{{ an.status }}</span></td>
- {% endif %}
- <td><span class="badge">{{ an.created }}</span></td>
- {% if request.user.profile.position == 'reviewer' %}
- <td>{{ an.contributor.get_full_name }}</td>
- {% endif %}
- <td><a href="{% url 'edit_proposal' an.id %}"><button type="button" class="btn btn-info" id= "btnblue">Edit</button></a></td>
- </tr>
- </tbody>
- {% endfor %}
- </table>
- </div>
+ <h2> Proposal Status </h2>
+ <hr>
+ <div class="row">
+ <!--
+ This filtering section contains
+ 1. Search option for the submitted proposal
+ 2. Select the proposals who ahve the status Rejected
+ 3. Select the proposals who ahve the status Released
+ 4. Select the proposals who ahve the status Changes
+ 5. Select the proposals who ahve the status Pending
+ -->
+ <div class="col-md-4">
+ <form class="form-inline" method="POST" action="/search_proposal/">
+ {% csrf_token %}
+ <input class="form-control mr-sm-2" type="search" id="sbox" name="sbox"
+ placeholder="Search for proposals">
+ <button class="btn btn-primary my-2 my-sm-0" id="btnblue" type="submit">
+ Search
+ </button>
+ </form>
+ </div>
+ <div class="col-md-2">
+ <a href="{% url 'sortproposal_rejected' %}">
+ <button type="button" class="btn btn-info" id="btnred">Rejected</button>
+ </a>
+ </div>
- <!-- Page Navigation -->
- <div class="container">
- <div class="Page-Nav" align="center">
- <nav aria-label="Page navigation">
- <ul class="pagination pagination-sm">
- <li class="page-item">
- {% if anime.has_previous %}
- <a class="page-link" tabindex="-1"
- href="?page={{ anime.previous_page_number }}">Prev</a>
- {% endif %}
- </li>
- <li class="page-item">
- <span class="current" >
- Page {{ anime.number }} of {{ anime.paginator.num_pages }}
- </span>
- </li>
- <li class="page-item">
- {% if anime.has_next %}
- <a class="page-link" href="?page={{ anime.next_page_number }}"> Next
- </a>
- {% endif %}
- </li>
- </ul>
- </nav>
- </div>
- </div>
-</div>
+ <div class="col-md-2">
+ <a href="{% url 'sortproposal_released' %}">
+ <button type="button" class="btn btn-info" id="btnred">Released</button>
+ </a>
+ </div>
- {% endblock %}
+ <div class="col-md-2">
+ <a href="{% url 'sortproposal_changes' %}">
+ <button type="button" class="btn btn-info" id="btnred">Changes</button>
+ </a>
+ </div>
+
+ <div class="col-md-2">
+ <a href="{% url 'sortproposal_pending' %}">
+ <button type="button" class="btn btn-info" id="btnred">Pending</button>
+ </a>
+ </div>
+ <!-- end of filtering section -->
+ </div>
+ <hr>
+ <table class="table table-hover" style="font-family: 'Lato', sans-serif;">
+ <thead>
+ <tr>
+ <th>Title</th>
+ <th>Status</th>
+ <th>Created Date</th>
+ {% if request.user.profile.position == 'reviewer' %}
+ <th>Contributor Name</th>
+ {% endif %}
+ </tr>
+ </thead>
+ {% for an in anime %}
+ <tbody>
+ <tr>
+ <td>{{ an.title }}</td>
+ {% if an.status == 'rejected' %}
+ <td><span class="text-danger">{{ an.status }}</span></td>
+ {% elif an.status == 'released' %}
+ <td><span class="text-success">{{ an.status }}</span></td>
+ {% else %}
+ <td><span class="text-info">{{ an.status }}</span></td>
+ {% endif %}
+ <td><span class="badge">{{ an.created }}</span></td>
+ <td>
+ {% if request.user.profile.position == 'reviewer' %}
+ {{ an.contributor.get_full_name }}
+ {% endif %}
+ </td>
+ <td>
+ <a href="{% url 'edit_proposal' an.id %}">
+ <button type="button" class="btn btn-info"
+ id="btnblue">Edit
+ </button>
+ </a>
+ </td>
+ {% if request.user.profile.position == 'reviewer' %}
+ <td><a href="{% url 'show_proposal_detail' an.id %}">
+ <button type="button" class="btn btn-info" id="btnred">Delete</button>
+ </a></td>
+ {% endif %}
+ </tr>
+ </tbody>
+ {% endfor %}
+ </table>
+ </div>
+
+
+ <!-- Page Navigation -->
+ <div class="container">
+ <div class="Page-Nav" align="center">
+ <nav aria-label="Page navigation">
+ <ul class="pagination pagination-sm">
+ <li class="page-item">
+ {% if anime.has_previous %}
+ <a class="page-link" tabindex="-1"
+ href="?page={{ anime.previous_page_number }}">Prev</a>
+ {% endif %}
+ </li>
+ <li class="page-item">
+ <span class="current">
+ Page {{ anime.number }} of {{ anime.paginator.num_pages }}
+ </span>
+ </li>
+ <li class="page-item">
+ {% if anime.has_next %}
+ <a class="page-link" href="?page={{ anime.next_page_number }}"> Next
+ </a>
+ {% endif %}
+ </li>
+ </ul>
+ </nav>
+ </div>
+ </div>
+ </div>
+
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/register.html b/fossee_manim/templates/fossee_manim/register.html
index e21c5fa..cccfd87 100644
--- a/fossee_manim/templates/fossee_manim/register.html
+++ b/fossee_manim/templates/fossee_manim/register.html
@@ -1,39 +1,41 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- Register
- {% endblock %}
+{% block title %}
+Register
+{% endblock %}
{% block content %}
- <style type="text/css">
- label.required::after {
- content: "*";
- color: red;
- }
- .errorlist {
- color: red;
- }
- </style>
+<style type="text/css">
+ label.required::after {
+ content: "*";
+ color: red;
+ }
- <div class="container" >
- <br>
- <center>
+ .errorlist {
+ color: red;
+ }
+</style>
+
+<div class="container">
+ <br>
+ <center>
<h1>Contributor Registration Form</h1>
<br>
<form action="" method="post">
{% csrf_token %}
- <table class="table table-bordered">
- {{ form.as_table }}
- </table>
+ <table class="table table-bordered">
+ {{ form.as_table }}
+ </table>
- <button class="btn btn-success" type="submit" style="background-color: #157b80; border-width:0px;">Register</button>
+ <button class="btn btn-success" type="submit"
+ style="background-color: #157b80; border-width:0px;">Register</button>
</form><br>
- </center>
- <!-- Activate when reviwers registeration starts -->
- <!-- <div class="alert alert-info">
+ </center>
+ <!-- Activate when reviwers registeration starts -->
+ <!-- <div class="alert alert-info">
<strong>Info!</strong> reviwerss, please wait for our admin approval, if your reviwers account is not activated in 7 days, please mail us at workshops[at]fossee[dot]in
</div> -->
- <br>
- </div>
-{% endblock %}
+ <br>
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/search_results.html b/fossee_manim/templates/fossee_manim/search_results.html
index 303b735..1eeba26 100644
--- a/fossee_manim/templates/fossee_manim/search_results.html
+++ b/fossee_manim/templates/fossee_manim/search_results.html
@@ -1,35 +1,37 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- Search Result
- {% endblock %}
+{% block title %}
+Search Result
+{% endblock %}
{% block content %}
<br> <br>
<div class="container-fluid jumbotron" style="margin-top:20px">
- {% if s_result %}
- {% for anime in s_result %}
- <div class="row">
- <div class="col-md-4" >
- <a href="{% url 'video' anime.id %}" >
- <span class="fa fa-play fa-4x" id="play-btn"></span>
- <img height="90%" width="100%" src="{{ anime.thumbnail.url }}">
- </a>
- </div>
- <div class="col-md-4">
- <p style="color:#157b80; font-size: 300%;"> {{ anime.animation.title }} </p>
- <p style="color:black; font-size: 100%;"> {{ anime.animation.description | truncatewords:5}} </p>
- <a target="_blank" href="{{ anime.animation.github }}"><p style="font-size: 70%;"> {{ anime.animation.github }} </p></a>
- </div>
- </div>
- <hr>
- {% endfor %}
- {% else %}
- <h3>No Results Found </h3>
- <hr>
- {% endif %}
+ {% if s_result %}
+ {% for anime in s_result %}
+ <div class="row">
+ <div class="col-md-4">
+ <a href="{% url 'video' anime.id %}">
+ <span class="fa fa-play fa-4x" id="play-btn"></span>
+ <img height="90%" width="100%" src="{{ anime.thumbnail.url }}">
+ </a>
+ </div>
+ <div class="col-md-4">
+ <p style="color:#157b80; font-size: 300%;"> {{ anime.animation.title }} </p>
+ <p style="color:black; font-size: 100%;"> {{ anime.animation.description | truncatewords:5}} </p>
+ <a target="_blank" href="{{ anime.animation.github }}">
+ <p style="font-size: 70%;"> {{ anime.animation.github }} </p>
+ </a>
+ </div>
+ </div>
+ <hr>
+ {% endfor %}
+ {% else %}
+ <h3>No Results Found </h3>
+ <hr>
+ {% endif %}
<br>
</div>
<br>
-{% endblock %}
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/send_proposal.html b/fossee_manim/templates/fossee_manim/send_proposal.html
index b17e2bd..b9214c2 100644
--- a/fossee_manim/templates/fossee_manim/send_proposal.html
+++ b/fossee_manim/templates/fossee_manim/send_proposal.html
@@ -1,47 +1,49 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- Send Proposals
- {% endblock %}
+{% block title %}
+Send Proposals
+{% endblock %}
- {% block content %}
- {% if messages %}
- <ul class="messages">
- {% for message in messages %}
- <div class="alert alert-{{ message.tags }}">
- <li {% if message.tags %} class="{{ message.tags }}"{% endif %}> {{ message }}
- </li>
- </div>
- {% endfor %}
- </ul>
- {% endif %}
+{% block content %}
+{% if messages %}
+<ul class="messages">
+ {% for message in messages %}
+ <div class="alert alert-{{ message.tags }}">
+ <li {% if message.tags %} class="{{ message.tags }}" {% endif %}> {{ message }}
+ </li>
+ </div>
+ {% endfor %}
+</ul>
+{% endif %}
+
+<div class="container-fluid jumbotron" align="center" style="background-color: white;">
+ <h1>
+ <center>Project Proposal</center>
+ </h1>
+ <hr>
+ <div class="alert alert-info" style="background-color: #c2eff4; color: #157b80;">
+ Please Note: If you're not serious about creating animations, do not send us a proposal.
+ Fake submissions can result in permanent ban.
+ </div>
- <div class="container-fluid jumbotron" align="center" style="background-color: white;">
- <h1><center>Proposal - Stage 1</center></h1>
- <hr>
- <div class="alert alert-info" style= "background-color: #c2eff4; color: #157b80;">
- Please Note: If you're not serious about creating animations, do not send us a proposal.
- Fake submissions can result in permanent ban.
- </div>
-
- <form method="post">
- {% csrf_token %}
- <br/>
- <table>
- {{ form.as_table }}
- </table>
- <br>
- <br>
- <button class="btn btn-success" id = "btnblue" type="submit">Save</button>
- </form>
+ <form method="post">
+ {% csrf_token %}
+ <br />
+ <table>
+ {{ form.as_table }}
+ </table>
+ <br>
+ <br>
+ <button class="btn btn-success" id="btnblue" type="submit">Save</button>
+ </form>
- <!-- Initialize Quill editor -->
- <script>
- var quill = new Quill('#custom_editor', {
- theme: 'snow'
- });
- </script>
+ <!-- Initialize Quill editor -->
+ <script>
+ var quill = new Quill('#custom_editor', {
+ theme: 'snow'
+ });
+ </script>
- </div>
- {% endblock %}
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/upload_success.html b/fossee_manim/templates/fossee_manim/upload_success.html
index 4628d97..ca0da8d 100644
--- a/fossee_manim/templates/fossee_manim/upload_success.html
+++ b/fossee_manim/templates/fossee_manim/upload_success.html
@@ -1,29 +1,27 @@
-
{% extends 'fossee_manim/base.html' %}
{% block title %}
- Upload success
+Upload success
{% endblock %}
- {% block extra %}
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
- <script src="{{URL_ROOT}}/static/fossee_manim/js/bootstrap-3.3.7.min.js"></script>
- <script type="text/javascript">
- window.setTimeout(function()
- {
- location.href="{% url 'proposal_status' %}"
- }, 9000);
+{% block extra %}
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+<script src="{{URL_ROOT}}/static/fossee_manim/js/bootstrap-3.3.7.min.js"></script>
+<script type="text/javascript">
+ window.setTimeout(function () {
+ location.href = "{% url 'proposal_status' %}"
+ }, 9000);
</script>
- {% endblock %}
+{% endblock %}
{% block content %}
- <div class="container">
- <br><br>
- <div class="jumbotron">
- <h3><strong>Congratulations!</strong>Your video uploaded successfully!</h3>
- <br>
- <h5><strong>If you uploaded any video before this, it will be automatically overridden by this upload</h5>
- </div>
+<div class="container">
+ <br><br>
+ <div class="jumbotron">
+ <h3><strong>Congratulations!</strong>Your video uploaded successfully!</h3>
+ <br>
+ <h5><strong>If you uploaded any video before this, it will be automatically overridden by this upload</h5>
</div>
-{% endblock %}
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/video.html b/fossee_manim/templates/fossee_manim/video.html
index e7cf6b3..5ac8314 100644
--- a/fossee_manim/templates/fossee_manim/video.html
+++ b/fossee_manim/templates/fossee_manim/video.html
@@ -1,79 +1,83 @@
{% extends 'fossee_manim/base.html' %}
- {% block title %}
- FOSSEE Animation
- {% endblock %}
+{% block title %}
+FOSSEE Animation
+{% endblock %}
{% block content %}
- <div class="container" >
- <div class="row" >
- <div class="col-md-12" >
- <br>
- <video width="100%" height="90%" controls>
- <source src="{{video.0.video_path.url}}" type="video/mp4">
- </video>
- <div class="row">
- <div class="col-md-8">
- <p style="color: #157b80; font-size: 200%; float: left;"> {{ video.0.animation.title }} </p>
- </div>
- <div class="col-md-4">
- <p style="font-size: 70%; float: right;"> {{ video.0.animation.subcategory }} </p>
+<div class="container">
+ <div class="row">
+ <div class="col-md-12">
+ <br>
+ <video width="100%" height="90%" controls>
+ <source src="{{video.0.video_path.url}}" type="video/mp4">
+ </video>
+ <div class="row">
+ <div class="col-md-8">
+ <p style="color: #157b80; font-size: 200%; float: left;">
+ {{ video.0.animation.title }} </p>
+ </div>
+ <div class="col-md-4">
+ <p style="font-size: 70%; float: right;"> {{ video.0.animation.subcategory }}
+ </p>
+ </div>
</div>
- </div>
- <br>
- </div>
+ <br>
+ </div>
- </div>
- <div class="row">
+ </div>
+ <div class="row">
<div class="col-md-10">
- <hr>
- <br>
- <p style="color:black; font-size: 100%; float: left;">
- {{ video.0.animation.outline|safe }}
- </p>
- <br>
- </div>
- </div>
- <hr>
- <div class="row">
- {% if reco %}
- {% for item in reco %}
+ <hr>
+ <br>
+ <p style="color:black; font-size: 100%; float: left;">
+ {{ video.0.animation.outline|safe }}
+ </p>
+ <br>
+ </div>
+ </div>
+ <hr>
+ <div class="row">
+ {% if reco %}
+ {% for item in reco %}
<div class="col-md-4">
- <a href="{% url 'video' item.id %}" >
+ <a href="{% url 'video' item.id %}">
<span class="fa fa-play fa-4x" id="play-btn"></span>
<img height="95%" width="95%" src="{{ item.thumbnail.url }}">
</a>
</div>
- {% endfor %}
- {% endif %}
- </div>
+ {% endfor %}
+ {% endif %}
+ </div>
<div>
- <br><br>
- <h2>Comments</h2>
- <div>
- <form method="POST">
- <br>
- {% csrf_token %}
- {{ comment_form.as_p }}
- <button type="submit" class="btn btn-success">Post</button>
- </form>
- </div>
- <hr style="background-color: #fff;
+ <br><br>
+ <h2>Comments</h2>
+ <div>
+ <form method="POST">
+ <br>
+ {% csrf_token %}
+ {{ comment_form.as_p }}
+ <button type="submit" class="btn btn-success">Post</button>
+ </form>
+ </div>
+ <hr style="background-color: #fff;
border-top: 5px double #8c8b8b;">
<table>
- {% for comment in comments %}
- <tbody>
- <tr>
- <td>
- <h5>{{ comment.commentor.profile.user.get_full_name }} | {{ comment.created_date | date }}</h5>
- <h6 style="background-color: #ecf0f1; padding:10px;">{{ comment.comment }}</h6>
- <hr style="border-top: 0.5px solid #8c8b8b;">
- </td>
- </tr>
- </tbody>
- {% endfor %}
- </table>
- <br>
+ {% for comment in comments %}
+ <tbody>
+ <tr>
+ <td>
+ <h5>{{ comment.commentor.profile.user.get_full_name }} |
+ {{ comment.created_date | date }}</h5>
+ <h6 style="background-color: #ecf0f1; padding:10px;">
+ {{ comment.comment }}</h6>
+ <hr style="border-top: 0.5px solid #8c8b8b;">
+ </td>
+ </tr>
+ </tbody>
+ {% endfor %}
+ </table>
+ <br>
</div>
- </div>
-{% endblock %}
+</div>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/fossee_manim/view_profile.html b/fossee_manim/templates/fossee_manim/view_profile.html
index 1edf689..817099c 100644
--- a/fossee_manim/templates/fossee_manim/view_profile.html
+++ b/fossee_manim/templates/fossee_manim/view_profile.html
@@ -1,56 +1,90 @@
{% extends 'fossee_manim/base.html' %}
{% block title %}
- View Profile
+View Profile
{% endblock %}
- {% block extra %}
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
- <script src="{{URL_ROOT}}/static/fossee_manim/js/bootstrap-3.3.7.min.js"></script>
- {% endblock %}
+{% block extra %}
+<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
+<script src="{{URL_ROOT}}/static/fossee_manim/js/bootstrap-3.3.7.min.js"></script>
+{% endblock %}
{% csrf_token %}
{% block content %}
- <div class="container jumbotron" style="background-color:white;">
- <center> <h1> View Profile </h1> </center>
- <br>
+<div class="container jumbotron" style="background-color:white;">
+ <center>
+ <h1> View Profile </h1>
+ </center>
+ <br>
<table class="table table-bordered">
- <tr>
- <th><label for="id_first_name"><h5>First name:</h5></label></th>
- <th><label for="id_first_name"><h5>{{ user.first_name }}</h5></label></th>
- </tr>
- <tr>
- <th><label for="id_last_name"><h5>Last name:</h5></label></th>
- <th><label for="id_last_name"><h5>{{ user.last_name }}</h5></label></th>
- </tr>
- <tr>
- <th><label for="id_email"><h5>Email:</h5></label></th>
- <th><label for="id_email"><h5>{{ user.email }}</h5></label></th>
- </tr>
- <tr>
- <th><label for="id_institute"><h5>Institute:</h5></label></th>
- <th><label for="id_institute"><h5>{{ user.profile.institute }}</h5></label></th>
- </tr>
- <tr>
- <th><label for="id_phone_number"><h5>Phone Number:</h5></label></th>
- <th><label for="id_phone_number"><h5>{{ user.profile.phone_number }}</h5></label></th>
- </tr>
- <tr>
- <th><label for="id_department"><h5>Department:</h5></label></th>
- <th><label for="id_department"><h5>{{ user.profile.department }}</h5></label></th>
- </tr>
- <tr>
- <th><label for="id_location"><h5>Location:</h5></label></th>
- <th><label for="id_location"><h5>{{ user.profile.location }}</h5></label></th>
- </tr>
- <tr>
- <th><label for="id_position"><h5>Position:</h5></label></th>
- <th><label for="id_position"><h5>{{ user.profile.position }}</h5></label></th>
- </tr>
+ <tr>
+ <th><label for="id_first_name">
+ <h5>First name:</h5>
+ </label></th>
+ <th><label for="id_first_name">
+ <h5>{{ user.first_name }}</h5>
+ </label></th>
+ </tr>
+ <tr>
+ <th><label for="id_last_name">
+ <h5>Last name:</h5>
+ </label></th>
+ <th><label for="id_last_name">
+ <h5>{{ user.last_name }}</h5>
+ </label></th>
+ </tr>
+ <tr>
+ <th><label for="id_email">
+ <h5>Email:</h5>
+ </label></th>
+ <th><label for="id_email">
+ <h5>{{ user.email }}</h5>
+ </label></th>
+ </tr>
+ <tr>
+ <th><label for="id_institute">
+ <h5>Institute:</h5>
+ </label></th>
+ <th><label for="id_institute">
+ <h5>{{ user.profile.institute }}</h5>
+ </label></th>
+ </tr>
+ <tr>
+ <th><label for="id_phone_number">
+ <h5>Phone Number:</h5>
+ </label></th>
+ <th><label for="id_phone_number">
+ <h5>{{ user.profile.phone_number }}</h5>
+ </label></th>
+ </tr>
+ <tr>
+ <th><label for="id_department">
+ <h5>Department:</h5>
+ </label></th>
+ <th><label for="id_department">
+ <h5>{{ user.profile.department }}</h5>
+ </label></th>
+ </tr>
+ <tr>
+ <th><label for="id_location">
+ <h5>Location:</h5>
+ </label></th>
+ <th><label for="id_location">
+ <h5>{{ user.profile.location }}</h5>
+ </label></th>
+ </tr>
+ <tr>
+ <th><label for="id_position">
+ <h5>Position:</h5>
+ </label></th>
+ <th><label for="id_position">
+ <h5>{{ user.profile.position }}</h5>
+ </label></th>
+ </tr>
</table>
- <br>
- <a class="btn btn-primary pull-right" href="{{ URL_ROOT }}/edit_profile/" id= "btnblue">Edit Profile</a>
- </div>
- <br><br>
-{% endblock %}
+ <br>
+ <a class="btn btn-primary pull-right" href="{{ URL_ROOT }}/edit_profile/" id="btnblue">Edit Profile</a>
+</div>
+<br><br>
+{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/registration/base.html b/fossee_manim/templates/registration/base.html
index 495831d..e6f7a11 100644
--- a/fossee_manim/templates/registration/base.html
+++ b/fossee_manim/templates/registration/base.html
@@ -1,99 +1,104 @@
<!DOCTYPE html>
<html>
+
<head>
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>
- {% block title %}
- HomePage
- {% endblock %}
- </title>
- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>
+ {% block title %}
+ HomePage
+ {% endblock %}
+ </title>
+ <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.bundle.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
- <link rel="stylesheet" href="{{ URL_ROOT }}/static/css/sticky-footer.css" type="text/css" />
- <!-- favicon -->
- <link rel="shortcut icon" type="image/png" href="{{ URL_ROOT}}/"/>
+ <link rel="stylesheet" href="{{ URL_ROOT }}/static/css/sticky-footer.css" type="text/css" />
+ <!-- favicon -->
+ <link rel="shortcut icon" type="image/png" href="{{ URL_ROOT}}/" />
</head>
- <!-- For js/ajax and other related scripts -->
- {% block extra %}
-
- {% endblock %}
+<!-- For js/ajax and other related scripts -->
+{% block extra %}
+
+{% endblock %}
<body style="overflow: scroll;">
- {% block header %}
- <nav class="navbar navbar-expand-lg navbar-custom">
- <a class="navbar-brand" href="#">FOSSEE Animations</a>
- <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
- aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
- <span class="navbar-toggler-icon">=</span>
- </button>
-
- <div class="collapse navbar-collapse" id="navbarSupportedContent">
- <ul class="navbar-nav mr-auto">
- <form class="form-inline" method="POST" action="/search/">
- {% csrf_token %}
- <input class="form-control mr-sm-2" id="sbox" name="sbox" type="search" placeholder="Search" aria-label="Search">
- <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
- </form>
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- Categories
- </a>
-
- <div class="dropdown-menu" aria-labelledby="navbarDropdown">
- {% for c in categories %}
- <a class="dropdown-item" href="{% url 'search_category' c.name %}">{{c.name}}</a>
- {% endfor %}
- </div>
- </li>
- </ul>
+ {% block header %}
+ <nav class="navbar navbar-expand-lg navbar-custom">
+ <a class="navbar-brand" href="#">FOSSEE Animations</a>
+ <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
+ aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+ <span class="navbar-toggler-icon">=</span>
+ </button>
+
+ <div class="collapse navbar-collapse" id="navbarSupportedContent">
+ <ul class="navbar-nav mr-auto">
+ <form class="form-inline" method="POST" action="/search/">
+ {% csrf_token %}
+ <input class="form-control mr-sm-2" id="sbox" name="sbox" type="search" placeholder="Search"
+ aria-label="Search">
+ <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
+ </form>
+ <li class="nav-item dropdown">
+ <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown"
+ aria-haspopup="true" aria-expanded="false">
+ Categories
+ </a>
+
+ <div class="dropdown-menu" aria-labelledby="navbarDropdown">
+ {% for c in categories %}
+ <a class="dropdown-item" href="{% url 'search_category' c.name %}">{{c.name}}</a>
+ {% endfor %}
+ </div>
+ </li>
+ </ul>
- {% if user.is_authenticated %}
- <ul class="navbar-nav ml-auto mr-5">
- <li class="nav-item dropdown">
- <a class="nav-link dropdown-toggle" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
- {{user.first_name}}
- </a>
- {% if request.user.profile.position == 'contributor' %}
- <div class="dropdown-menu" aria-labelledby="navbarDropdown">
- <a class="dropdown-item" href="{% url 'how_to' %}">How To</a>
- <a class="dropdown-item" href="{% url 'send_proposal' %}">Send Proposal</a>
- <a class="dropdown-item" href="{% url 'proposal_status' %}">Proposal Status</a>
- <a class="dropdown-item" href="{% url 'view_profile' %}">View Profile</a>
- <a class="dropdown-item" href="{% url 'logout' %}">Logout</a>
- </div>
- {% else %}
- <div class="dropdown-menu" aria-labelledby="navbarDropdown">
- <a class="dropdown-item" href="{% url 'proposal_status' %}">Submitted Proposals</a>
- <a class="dropdown-item" href="{% url 'view_profile' %}">View Profile</a>
- <a class="dropdown-item" href="{% url 'logout' %}">Logout</a>
- </div>
- {% endif %}
- </li>
- </ul>
- {% else %}
- <ul class="navbar-nav ml-auto">
- <li class="nav-item">
- <a class="nav-link" href="{% url 'register' %}">Register</a>
- </li>
- <li class="nav-item">
- <a class="nav-link" href="{% url 'login' %}">Login</a>
- </li>
- </ul>
+ {% if user.is_authenticated %}
+ <ul class="navbar-nav ml-auto mr-5">
+ <li class="nav-item dropdown">
+ <a class="nav-link dropdown-toggle" id="navbarDropdown" role="button" data-toggle="dropdown"
+ aria-haspopup="true" aria-expanded="false">
+ {{user.first_name}}
+ </a>
+ {% if request.user.profile.position == 'contributor' %}
+ <div class="dropdown-menu" aria-labelledby="navbarDropdown">
+ <a class="dropdown-item" href="{% url 'how_to' %}">How To</a>
+ <a class="dropdown-item" href="{% url 'send_proposal' %}">Send Proposal</a>
+ <a class="dropdown-item" href="{% url 'proposal_status' %}">Proposal Status</a>
+ <a class="dropdown-item" href="{% url 'view_profile' %}">View Profile</a>
+ <a class="dropdown-item" href="{% url 'logout' %}">Logout</a>
+ </div>
+ {% else %}
+ <div class="dropdown-menu" aria-labelledby="navbarDropdown">
+ <a class="dropdown-item" href="{% url 'proposal_status' %}">Submitted Proposals</a>
+ <a class="dropdown-item" href="{% url 'view_profile' %}">View Profile</a>
+ <a class="dropdown-item" href="{% url 'logout' %}">Logout</a>
+ </div>
{% endif %}
- </div>
- </nav>
+ </li>
+ </ul>
+ {% else %}
+ <ul class="navbar-nav ml-auto">
+ <li class="nav-item">
+ <a class="nav-link" href="{% url 'register' %}">Register</a>
+ </li>
+ <li class="nav-item">
+ <a class="nav-link" href="{% url 'login' %}">Login</a>
+ </li>
+ </ul>
+ {% endif %}
+ </div>
+ </nav>
+ {% endblock %}
+
+ {% block content %}
+ <br><br>
+ <h1>Base Template Content. Please override me</h1>
{% endblock %}
- {% block content %}
- <br><br>
- <h1>Base Template Content. Please override me</h1>
- {% endblock %}
-
</body>
<br>
+
</html> \ No newline at end of file
diff --git a/fossee_manim/templates/registration/password_change_done.html b/fossee_manim/templates/registration/password_change_done.html
index d72f7f5..2e81207 100644
--- a/fossee_manim/templates/registration/password_change_done.html
+++ b/fossee_manim/templates/registration/password_change_done.html
@@ -1,20 +1,19 @@
{% extends "registration/base.html" %}
-{% block title %}
- Password change successful
+{% block title %}
+Password change successful
{% endblock %}
{% block script %}
<script type="text/javascript">
- window.setTimeout(function()
- {
- location.href="{{ URL_ROOT }}/login/"
+ window.setTimeout(function () {
+ location.href = "{{ URL_ROOT }}/login/"
}, 3000);
</script>
{% endblock %}
{% block content %}
- <br>
- <h3>Your password has been changed successfully.</h3>
- <h4>Redirecting ...</h4>
+<br>
+<h3>Your password has been changed successfully.</h3>
+<h4>Redirecting ...</h4>
{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/registration/password_change_form.html b/fossee_manim/templates/registration/password_change_form.html
index 5b09d89..3133baa 100644
--- a/fossee_manim/templates/registration/password_change_form.html
+++ b/fossee_manim/templates/registration/password_change_form.html
@@ -4,15 +4,16 @@
{% block content %}
<div class="container">
-<form action="" method="post" >
- {% csrf_token %}
- <center>
- <table class=span1>
- {{ form }}
- </table>
- </center>
- <center><button class="btn" type="submit">Change Password</button>
- <button class="btn" type="button" name="button" onClick='location.replace("{{URL_ROOT}}/login/");'>Cancel</button></center>
-</form>
+ <form action="" method="post">
+ {% csrf_token %}
+ <center>
+ <table class=span1>
+ {{ form }}
+ </table>
+ </center>
+ <center><button class="btn" type="submit">Change Password</button>
+ <button class="btn" type="button" name="button" onClick='location.replace("{{URL_ROOT}}/login/");'>Cancel</button>
+ </center>
+ </form>
</div>
{% endblock content %} \ No newline at end of file
diff --git a/fossee_manim/templates/registration/password_reset_confirm.html b/fossee_manim/templates/registration/password_reset_confirm.html
index 57542b4..f7fc9bb 100644
--- a/fossee_manim/templates/registration/password_reset_confirm.html
+++ b/fossee_manim/templates/registration/password_reset_confirm.html
@@ -2,18 +2,18 @@
{% block title %}Reset Password{% endblock %}
{% block content %}
- <br>
- <div class="container">
+<br>
+<div class="container">
{% if validlink %}
- <p>Please enter your new password twice so we can verify you typed it in correctly</p>.
- <form method="post">
- {% csrf_token %}
- {{ form.as_p }}
- <button class= "btn btn-success" type="submit">Submit</button>
- </form>
+ <p>Please enter your new password twice so we can verify you typed it in correctly</p>.
+ <form method="post">
+ {% csrf_token %}
+ {{ form.as_p }}
+ <button class="btn btn-success" type="submit">Submit</button>
+ </form>
{% else %}
- <p>This reset link is no longer valid!</p>
+ <p>This reset link is no longer valid!</p>
{% endif %}
- </div>
+</div>
{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/registration/password_reset_done.html b/fossee_manim/templates/registration/password_reset_done.html
index e91ff73..c1f0e84 100644
--- a/fossee_manim/templates/registration/password_reset_done.html
+++ b/fossee_manim/templates/registration/password_reset_done.html
@@ -1,14 +1,14 @@
{% extends "registration/base.html" %}
{% block title %}
- Password reset successful
+Password reset successful
{% endblock %}
{% block content %}
- <div class="container">
+<div class="container">
<br>
- <h3>Instruction for setting new password has been mailed
- to your registered email address
+ <h3>Instruction for setting new password has been mailed
+ to your registered email address
</h3>
- </div>
+</div>
{% endblock %} \ No newline at end of file
diff --git a/fossee_manim/templates/registration/password_reset_form.html b/fossee_manim/templates/registration/password_reset_form.html
index 5bf049f..71507b2 100644
--- a/fossee_manim/templates/registration/password_reset_form.html
+++ b/fossee_manim/templates/registration/password_reset_form.html
@@ -1,21 +1,21 @@
{% extends "registration/base.html" %}
-{% block title %}
- Forgot Password
+{% block title %}
+Forgot Password
{% endblock %}
{% block content %}
<br>
<br>
<div class="container">
-<h3>Email will be send to the registered email address</h3>
-<form action="" method="post">
- {% csrf_token %}
- <table class="table table-bordered">
- {{ form }}
- </table>
- <button class="btn btn-success btn-sm" type="submit">Request</button>
- <a class="btn" href="{{URL_ROOT}}/login/">Cancel</a>
-</form>
+ <h3>Email will be send to the registered email address</h3>
+ <form action="" method="post">
+ {% csrf_token %}
+ <table class="table table-bordered">
+ {{ form }}
+ </table>
+ <button class="btn btn-success btn-sm" type="submit">Request</button>
+ <a class="btn" href="{{URL_ROOT}}/login/">Cancel</a>
+ </form>
</div>
{% endblock content %} \ No newline at end of file
diff --git a/fossee_manim/urls.py b/fossee_manim/urls.py
index dac61e2..f48a6c0 100644
--- a/fossee_manim/urls.py
+++ b/fossee_manim/urls.py
@@ -26,17 +26,31 @@ urlpatterns = [
url(r'^faqs/$', views.faqs, name='faqs'),
url(r'^search_category/(?P<cat>.+)$', views.search_category,
name='search_category'),
- url(r'^about/$',views.about, name='about'),
- url(r'^outreach/$',views.outreach, name='outreach'),
- url(r'^library/$',views.library, name='library'),
- url(r'^libraryMath/$',views.libraryMath, name='libraryMath'),
- url(r'^libraryPhys/$',views.libraryPhys, name='libraryPhys'),
- url(r'^libraryCS/$',views.libraryCS, name='libraryCS'),
+ url(r'^about/$', views.about, name='about'),
+ url(r'^outreach/$', views.outreach, name='outreach'),
+ url(r'^library/$', views.library, name='library'),
+ url(r'^libraryMath/$', views.libraryMath, name='libraryMath'),
+ url(r'^libraryPhys/$', views.libraryPhys, name='libraryPhys'),
+ url(r'^libraryCS/$', views.libraryCS, name='libraryCS'),
url(r'^explore/(?P<category>.+)$', views.explore,
name='explore'),
+ url(r'^show_proposal_detail/([1-9][0-9]*)$', views.show_proposal_detail,
+ name='show_proposal_detail'),
+ url(r'^delete_proposal/([1-9][0-9]*)$', views.delete_proposal,
+ name='delete_proposal'),
+ url(r'^sortproposal_released/$', views.sortproposal_released,
+ name='sortproposal_released'),
+ url(r'^sortproposal_rejected/$', views.sortproposal_rejected,
+ name='sortproposal_rejected'),
+ url(r'^sortproposal_changes/', views.sortproposal_changes,
+ name='sortproposal_changes'),
+ url(r'^sortproposal_pending/$', views.sortproposal_pending,
+ name='sortproposal_pending'),
+ url(r'^search_proposal/$', views.search_proposal,
+ name='search_proposal'),
]
urlpatterns += static(
- settings.MEDIA_URL,
- document_root=settings.MEDIA_ROOT
+ settings.MEDIA_URL,
+ document_root=settings.MEDIA_ROOT
)
diff --git a/fossee_manim/views.py b/fossee_manim/views.py
index 3732ce7..fa89cb2 100644
--- a/fossee_manim/views.py
+++ b/fossee_manim/views.py
@@ -1,14 +1,15 @@
from os import listdir, path, sep, makedirs, remove
from .forms import (
- UserRegistrationForm, UserLoginForm,
- ProfileForm, AnimationProposal,
- CommentForm, UploadAnimationForm
- )
+ UserRegistrationForm, UserLoginForm,
+ ProfileForm, AnimationProposal,
+ CommentForm, UploadAnimationForm,
+ AnimationProposal_edit,
+)
from .models import (
- Profile, User, AnimationStats,
- has_profile, Animation, Comment,
- Category
- )
+ Profile, User, AnimationStats,
+ has_profile, Animation, Comment,
+ Category
+)
from datetime import datetime, date
from django.contrib.auth import login, logout, authenticate
from django.contrib.auth.decorators import login_required
@@ -28,44 +29,51 @@ from .send_mails import send_email
import datetime as dt
import logging.config
import shutil
+
try:
from StringIO import StringIO as string_io
except ImportError:
from io import BytesIO as string_io
__author__ = "Akshen Doke"
-__credits__ = ["Prabhu Ramachandran", "Aditya P.", "KhushalSingh Rajput",
- "Prathamesh Salunke", "Purusharth Saxsena", "Sharanya Achut", "Ankit Javalkar"
- ]
+__credits__ = [
+ "Prabhu Ramachandran",
+ "Aditya P.",
+ "KhushalSingh Rajput",
+ "Prathamesh Salunke",
+ "Purusharth Saxsena",
+ "Sharanya Achut",
+ "Ankit Javalkar"]
+
def makepath(proposal_data, reject=None):
if not path.exists(path.join(settings.MEDIA_ROOT,
- proposal_data.category.name)):
+ proposal_data.category.name)):
makedirs(path.join(settings.MEDIA_ROOT,
- proposal_data.category.name))
+ proposal_data.category.name))
if reject:
try:
shutil.rmtree(path.join(
- settings.MEDIA_ROOT, proposal_data.category.name,
- proposal_data.title.replace(" ", "_")
- ))
- except:
+ settings.MEDIA_ROOT, proposal_data.category.name,
+ proposal_data.title.replace(" ", "_")
+ ))
+ except BaseException:
logging.info("Proposal rejected")
-
else:
makedirs(path.join(settings.MEDIA_ROOT, proposal_data.category.name,
- proposal_data.title.replace(" ", "_")
- ))
+ proposal_data.title.replace(" ", "_")
+ ))
def check_repo(link):
try:
return (get(link).status_code == 200)
- except:
+ except BaseException:
return False
+
def is_email_checked(user):
if hasattr(user, 'profile'):
return True if user.profile.is_email_verified else False
@@ -85,7 +93,9 @@ def index(request):
categories = Category.objects.all()
if user.is_authenticated() and is_email_checked(user):
return redirect('/proposal_status/')
- return render(request, "fossee_manim/index.html", {"categories": categories})
+ return render(request,
+ "fossee_manim/index.html",
+ {"categories": categories})
def is_reviewer(user):
@@ -116,8 +126,8 @@ def user_login(request):
return render(request, 'fossee_manim/login.html', {"form": form})
else:
form = UserLoginForm()
- return render(request, 'fossee_manim/login.html', {"form": form,
- 'categories': categories })
+ return render(request, 'fossee_manim/login.html',
+ {"form": form, 'categories': categories})
def user_logout(request):
@@ -125,7 +135,7 @@ def user_logout(request):
categories = Category.objects.all()
logout(request)
return render(request, 'fossee_manim/logout.html',
- {'categories': categories })
+ {'categories': categories})
def activate_user(request, key=None):
@@ -133,25 +143,25 @@ def activate_user(request, key=None):
if is_superuser(user):
return redirect("/admin")
if key is None:
- if user.is_authenticated() and user.profile.is_email_verified==0 and \
- timezone.now() > user.profile.key_expiry_time:
+ if user.is_authenticated() and user.profile.is_email_verified == 0 and \
+ timezone.now() > user.profile.key_expiry_time:
status = "1"
Profile.objects.get(user_id=user.profile.user_id).delete()
User.objects.get(id=user.profile.user_id).delete()
return render(request, 'fossee_manim/activation.html',
- {'status':status})
- elif user.is_authenticated() and user.profile.is_email_verified==0:
+ {'status': status})
+ elif user.is_authenticated() and user.profile.is_email_verified == 0:
return render(request, 'fossee_manim/activation.html')
elif user.is_authenticated() and user.profile.is_email_verified:
status = "2"
return render(request, 'fossee_manim/activation.html',
- {'status':status})
+ {'status': status})
else:
return redirect('/register/')
try:
user = Profile.objects.get(activation_key=key)
- except:
+ except BaseException:
return redirect('/register/')
if key == user.activation_key:
@@ -162,7 +172,7 @@ def activate_user(request, key=None):
logout(request)
return redirect('/logout/')
return render(request, 'fossee_manim/activation.html',
- {"status": status})
+ {"status": status})
def user_register(request):
@@ -176,9 +186,9 @@ def user_register(request):
login(request, new_user)
user_position = request.user.profile.position
send_email(
- request, call_on='Registration',
- key=key
- )
+ request, call_on='Registration',
+ key=key
+ )
return render(request, 'fossee_manim/activation.html')
else:
@@ -195,14 +205,19 @@ def user_register(request):
elif request.user.is_authenticated():
return render(request, 'fossee_manim/activation.html')
form = UserRegistrationForm()
- return render(request, "fossee_manim/register.html", {'form': form, 'categories': categories})
+ return render(request, "fossee_manim/register.html",
+ {'form': form, 'categories': categories})
def explore(request, category):
- categories = Category.objects.all() #not related to category below
- videos = AnimationStats.objects.filter(animation__category__name= category , animation__status="released")
+ categories = Category.objects.all() # not related to category below
+ videos = AnimationStats.objects.filter(
+ animation__category__name=category,
+ animation__status="released")
+
+ return render(request, "fossee_manim/explore.html",
+ {"videos": videos, "categories": categories})
- return render(request, "fossee_manim/explore.html", {"videos": videos, "categories": categories})
@login_required
def view_profile(request):
@@ -221,7 +236,7 @@ def view_profile(request):
try:
logout(request)
return redirect('/login/')
- except:
+ except BaseException:
return redirect('/register/')
@@ -242,7 +257,7 @@ def edit_profile(request):
try:
logout(request)
return redirect('/login/')
- except:
+ except BaseException:
return redirect('/register/')
context = {'template': template}
@@ -262,17 +277,16 @@ def edit_profile(request):
form_data.save()
return render(
- request, 'fossee_manim/profile_updated.html',
- {'categories': categories}
- )
+ request, 'fossee_manim/profile_updated.html',
+ {'categories': categories}
+ )
else:
context['form'] = form
return render(request, 'fossee_manim/edit_profile.html', context)
else:
form = ProfileForm(user=user, instance=profile)
- return render(request, 'fossee_manim/edit_profile.html', {'form': form,
- 'categories': categories}
- )
+ return render(request, 'fossee_manim/edit_profile.html',
+ {'form': form, 'categories': categories})
@login_required
@@ -289,12 +303,12 @@ def send_proposal(request):
form.save()
else:
return render(request, 'fossee_manim/send_proposal.html',
- {'form': form, 'categories': categories})
+ {'form': form, 'categories': categories})
return redirect('/proposal_status/')
else:
form = AnimationProposal()
return render(request, 'fossee_manim/send_proposal.html',
- {'form': form, 'categories': categories})
+ {'form': form, 'categories': categories})
else:
return redirect('/register/')
@@ -306,7 +320,8 @@ def proposal_status(request):
profile = Profile.objects.get(user_id=user)
categories = Category.objects.all()
if profile.position == 'contributor':
- animations = Animation.objects.filter(contributor_id=user).order_by('-created')
+ animations = Animation.objects.filter(
+ contributor_id=user).order_by('-created')
else:
animations = Animation.objects.order_by('-created')
# print(animations)
@@ -315,18 +330,302 @@ def proposal_status(request):
paginator = Paginator(list(animations), 9)
page = request.GET.get('page')
try:
- anime = paginator.page(page)
+ anime = paginator.page(page)
+ print(animations.count(), anime)
+ except PageNotAnInteger:
+ # If page is not an integer, deliver first page.
+ anime = paginator.page(1)
+ except EmptyPage:
+ # If page is out of range(e.g 999999), deliver last page.
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime,
+ 'categories': categories})
+ else:
+ return redirect('/login/')
+
+
+# this method return the proposal in the status of released
+@login_required
+def sortproposal_released(request):
+ user = request.user
+ if is_email_checked(user) and user.is_authenticated():
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ if profile.position == 'contributor':
+ # filtering with the proposal status
+ animations = Animation.objects.filter(
+ contributor_id=user, status='released').order_by('-created')
+ else:
+ # filtering with the proposal status
+ animations = Animation.objects.filter(
+ status='released').order_by('-created')
+ # print(animations)
+
+ # Show upto 9 proposals per page
+ paginator = Paginator(list(animations), 9)
+ page = request.GET.get('page')
+ try:
+ anime = paginator.page(page)
+ print(animations.count(), anime)
+ except PageNotAnInteger:
+ # If page is not an integer, deliver first page.
+ anime = paginator.page(1)
+ except EmptyPage:
+ # If page is out of range(e.g 999999), deliver last page.
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime,
+ 'categories': categories})
+ else:
+ return redirect('/login/')
+
+
+# this method return the proposal in the status of rejected
+@login_required
+def sortproposal_rejected(request):
+ user = request.user
+ if is_email_checked(user) and user.is_authenticated():
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ if profile.position == 'contributor':
+ # filtering with the proposal status
+ animations = Animation.objects.filter(
+ contributor_id=user, status='rejected').order_by('-created')
+ else:
+ # filtering with the proposal status
+ animations = Animation.objects.filter(
+ status='rejected').order_by('-created')
+ # print(animations)
+
+ # Show upto 9 proposals per page
+ paginator = Paginator(list(animations), 9)
+ page = request.GET.get('page')
+ try:
+ anime = paginator.page(page)
+ print(animations.count(), anime)
+ except PageNotAnInteger:
+ # If page is not an integer, deliver first page.
+ anime = paginator.page(1)
+ except EmptyPage:
+ # If page is out of range(e.g 999999), deliver last page.
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime,
+ 'categories': categories})
+ else:
+ return redirect('/login/')
+
+
+# this method return the proposal in the status of changes
+@login_required
+def sortproposal_changes(request):
+ user = request.user
+ if is_email_checked(user) and user.is_authenticated():
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ if profile.position == 'contributor':
+ # filtering with the proposal status
+ animations = Animation.objects.filter(
+ contributor_id=user, status='changes').order_by('-created')
+ else:
+ # filtering with the proposal status
+ animations = Animation.objects.filter(
+ status='changes').order_by('-created')
+ # print(animations)
+
+ # Show upto 9 proposals per page
+ paginator = Paginator(list(animations), 9)
+ page = request.GET.get('page')
+ try:
+ anime = paginator.page(page)
+ print(animations.count(), anime)
+ except PageNotAnInteger:
+ # If page is not an integer, deliver first page.
+ anime = paginator.page(1)
+ except EmptyPage:
+ # If page is out of range(e.g 999999), deliver last page.
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime,
+ 'categories': categories})
+ else:
+ return redirect('/login/')
+
+
+# this method return the proposal in the status of pending
+@login_required
+def sortproposal_pending(request):
+ user = request.user
+ if is_email_checked(user) and user.is_authenticated():
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ if profile.position == 'contributor':
+ # filtering with the proposal status
+ animations = Animation.objects.filter(
+ contributor_id=user, status='pending').order_by('-created')
+ else:
+ # filtering with the proposal status
+ animations = Animation.objects.filter(
+ status='pending').order_by('-created')
+ # print(animations)
+
+ # Show upto 9 proposals per page
+ paginator = Paginator(list(animations), 9)
+ page = request.GET.get('page')
+ try:
+ anime = paginator.page(page)
print(animations.count(), anime)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
- anime = paginator.page(1)
+ anime = paginator.page(1)
except EmptyPage:
# If page is out of range(e.g 999999), deliver last page.
- anime = paginator.page(paginator.num_pages)
+ anime = paginator.page(paginator.num_pages)
return render(request, 'fossee_manim/proposal_status.html',
- {'anime': anime,
- 'categories': categories})
+ {'anime': anime,
+ 'categories': categories})
+ else:
+ return redirect('/login/')
+
+
+@login_required
+def sortproposal_released(request):
+ user = request.user
+ if is_email_checked(user) and user.is_authenticated():
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ if profile.position == 'contributor':
+ animations = Animation.objects.filter(
+ contributor_id=user, status='released').order_by('-created')
+ else:
+ animations = Animation.objects.filter(
+ status='released').order_by('-created')
+ # print(animations)
+
+ # Show upto 9 proposals per page
+ paginator = Paginator(list(animations), 9)
+ page = request.GET.get('page')
+ try:
+ anime = paginator.page(page)
+ print(animations.count(), anime)
+ except PageNotAnInteger:
+ # If page is not an integer, deliver first page.
+ anime = paginator.page(1)
+ except EmptyPage:
+ # If page is out of range(e.g 999999), deliver last page.
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime,
+ 'categories': categories})
+ else:
+ return redirect('/login/')
+
+
+@login_required
+def sortproposal_rejected(request):
+ user = request.user
+ if is_email_checked(user) and user.is_authenticated():
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ if profile.position == 'contributor':
+ animations = Animation.objects.filter(
+ contributor_id=user, status='rejected').order_by('-created')
+ else:
+ animations = Animation.objects.filter(
+ status='rejected').order_by('-created')
+ # print(animations)
+
+ # Show upto 9 proposals per page
+ paginator = Paginator(list(animations), 9)
+ page = request.GET.get('page')
+ try:
+ anime = paginator.page(page)
+ print(animations.count(), anime)
+ except PageNotAnInteger:
+ # If page is not an integer, deliver first page.
+ anime = paginator.page(1)
+ except EmptyPage:
+ # If page is out of range(e.g 999999), deliver last page.
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime,
+ 'categories': categories})
+ else:
+ return redirect('/login/')
+
+
+@login_required
+def sortproposal_changes(request):
+ user = request.user
+ if is_email_checked(user) and user.is_authenticated():
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ if profile.position == 'contributor':
+ animations = Animation.objects.filter(
+ contributor_id=user, status='changes').order_by('-created')
+ else:
+ animations = Animation.objects.filter(
+ status='changes').order_by('-created')
+ # print(animations)
+
+ # Show upto 9 proposals per page
+ paginator = Paginator(list(animations), 9)
+ page = request.GET.get('page')
+ try:
+ anime = paginator.page(page)
+ print(animations.count(), anime)
+ except PageNotAnInteger:
+ # If page is not an integer, deliver first page.
+ anime = paginator.page(1)
+ except EmptyPage:
+ # If page is out of range(e.g 999999), deliver last page.
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime,
+ 'categories': categories})
+ else:
+ return redirect('/login/')
+
+
+@login_required
+def sortproposal_pending(request):
+ user = request.user
+ if is_email_checked(user) and user.is_authenticated():
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ if profile.position == 'contributor':
+ animations = Animation.objects.filter(
+ contributor_id=user, status='pending').order_by('-created')
+ else:
+ animations = Animation.objects.filter(
+ status='pending').order_by('-created')
+ # print(animations)
+
+ # Show upto 9 proposals per page
+ paginator = Paginator(list(animations), 9)
+ page = request.GET.get('page')
+ try:
+ anime = paginator.page(page)
+ print(animations.count(), anime)
+ except PageNotAnInteger:
+ # If page is not an integer, deliver first page.
+ anime = paginator.page(1)
+ except EmptyPage:
+ # If page is out of range(e.g 999999), deliver last page.
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime,
+ 'categories': categories})
else:
return redirect('/login/')
@@ -337,19 +636,20 @@ def edit_proposal(request, proposal_id=None):
if is_email_checked(user) and user.is_authenticated():
comment_form = CommentForm()
proposal = Animation.objects.get(id=proposal_id)
- proposal_form = AnimationProposal(instance=proposal)
+ proposal_form = AnimationProposal_edit(instance=proposal)
upload_form = UploadAnimationForm()
categories = Category.objects.all()
video = AnimationStats.objects.filter(animation=proposal_id)
- if len(video)>0:
- msg = ('Previously a video was uploaded for '+ video[0].animation.title)
+ if len(video) > 0:
+ msg = (
+ 'Previously a video was uploaded for ' +
+ video[0].animation.title)
else:
msg = ('No video uploaded')
try:
- comments = Comment.objects.filter(animation_id=proposal_id).order_by(
- '-created_date'
- )
- except:
+ comments = Comment.objects.filter(
+ animation_id=proposal_id).order_by('-created_date')
+ except BaseException:
comments = None
if request.method == 'POST':
text = request.POST.get('comment')
@@ -361,16 +661,16 @@ def edit_proposal(request, proposal_id=None):
if status1:
proposal.status = 'released'
send_email(request, call_on='released',
- contributor=proposal.contributor)
+ contributor=proposal.contributor)
elif status3:
send_email(request, call_on='proposal_form',
- contributor=proposal.contributor)
+ contributor=proposal.contributor)
return redirect('/proposal_status/')
else:
proposal.status = 'rejected'
makepath(proposal, reject=1)
send_email(request, call_on='rejected',
- contributor=proposal.contributor)
+ contributor=proposal.contributor)
proposal.reviewer = user
proposal.save()
return redirect('/proposal_status/')
@@ -385,11 +685,12 @@ def edit_proposal(request, proposal_id=None):
proposal.status = 'changes'
proposal.save()
send_email(request, call_on='changes',
- contributor=proposal.contributor,
- proposal=proposal)
+ contributor=proposal.contributor,
+ proposal=proposal)
form_data.save()
return redirect('/edit_proposal/{}'.format(proposal_id))
- proposal_form = AnimationProposal(request.POST, instance=proposal)
+ proposal_form = AnimationProposal_edit(
+ request.POST, instance=proposal)
if proposal_form.is_valid():
p_f = proposal_form.save(commit=False)
p_f.contributor = user
@@ -403,25 +704,114 @@ def edit_proposal(request, proposal_id=None):
return redirect('/register/')
if comments is not None:
- #Show upto 12 Workshops per page
- paginator = Paginator(comments, 9)
+ # Show upto 12 Workshops per page
+ paginator = Paginator(comments, 9)
+ page = request.GET.get('page')
+ try:
+ comments = paginator.page(page)
+ except PageNotAnInteger:
+ # If page is not an integer, deliver first page.
+ comments = paginator.page(1)
+ except EmptyPage:
+ # If page is out of range(e.g 999999), deliver last page.
+ comments = paginator.page(paginator.num_pages)
+ return render(request, 'fossee_manim/edit_proposal.html',
+ {'proposal_form': proposal_form,
+ "comments": comments,
+ "comment_form": comment_form,
+ "upload_form": upload_form,
+ 'video': video,
+ 'categories': categories,
+ 'msg': msg})
+
+
+# this method is used to return the details the proposal selected to delete
+@login_required
+def show_proposal_detail(request, proposal_id=None):
+ user = request.user
+ if is_email_checked(user) and user.is_authenticated():
+ try:
+ proposal = Animation.objects.get(id=proposal_id)
+ return render(request,
+ 'fossee_manim/delete_proposal.html',
+ {'proposal': proposal})
+ except BaseException:
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ if profile.position == 'contributor':
+ animations = Animation.objects.filter(
+ contributor_id=user).order_by('-created')
+ else:
+ animations = Animation.objects.order_by('-created')
+
+ paginator = Paginator(list(animations), 9)
page = request.GET.get('page')
try:
- comments = paginator.page(page)
+ anime = paginator.page(page)
+ print(animations.count(), anime)
except PageNotAnInteger:
- #If page is not an integer, deliver first page.
- comments = paginator.page(1)
+ anime = paginator.page(1)
except EmptyPage:
- #If page is out of range(e.g 999999), deliver last page.
- comments = paginator.page(paginator.num_pages)
- return render(request, 'fossee_manim/edit_proposal.html',
- {'proposal_form': proposal_form,
- "comments": comments,
- "comment_form": comment_form,
- "upload_form": upload_form,
- 'video': video,
- 'categories': categories,
- 'msg': msg})
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime,
+ 'categories': categories})
+ else:
+ return redirect('/register/')
+
+
+# this method is used to delete the selected proposal by the reviever
+@login_required
+def delete_proposal(request, proposal_id=None):
+ user = request.user
+ if is_email_checked(user) and user.is_authenticated():
+ try:
+ proposal = Animation.objects.get(id=proposal_id)
+ proposal.delete()
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ if profile.position == 'contributor':
+ animations = Animation.objects.filter(
+ contributor_id=user).order_by('-created')
+ else:
+ animations = Animation.objects.order_by('-created')
+ paginator = Paginator(list(animations), 9)
+ page = request.GET.get('page')
+ try:
+ anime = paginator.page(page)
+ print(animations.count(), anime)
+ except PageNotAnInteger:
+ anime = paginator.page(1)
+ except EmptyPage:
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime, 'categories': categories})
+ except BaseException:
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ if profile.position == 'contributor':
+ animations = Animation.objects.filter(
+ contributor_id=user).order_by('-created')
+ else:
+ animations = Animation.objects.order_by('-created')
+
+ paginator = Paginator(list(animations), 9)
+ page = request.GET.get('page')
+ try:
+ anime = paginator.page(page)
+ print(animations.count(), anime)
+ except PageNotAnInteger:
+ anime = paginator.page(1)
+ except EmptyPage:
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime,
+ 'categories': categories})
+ else:
+ return redirect('/login/')
def search(request):
@@ -429,13 +819,44 @@ def search(request):
if request.method == 'POST':
word = request.POST.get('sbox')
anime_list = AnimationStats.objects.filter(
- Q(animation__title__contains=word) | Q(animation__outline__contains=word)
- | Q(animation__category__name__contains=word) | Q(animation__subcategory__contains=word),
+ Q(
+ animation__title__contains=word) | Q(
+ animation__outline__contains=word) | Q(
+ animation__category__name__contains=word) | Q(
+ animation__subcategory__contains=word),
animation__status='released')
return render(request, 'fossee_manim/search_results.html',
{'s_result': anime_list, 'categories': categories})
+# search results for proposal
+
+
+def search_proposal(request):
+ user = request.user
+ if is_email_checked(user) and user.is_authenticated():
+ profile = Profile.objects.get(user_id=user)
+ categories = Category.objects.all()
+ word = request.POST.get('sbox')
+ animations = Animation.objects.filter(title=word)
+ paginator = Paginator(list(animations), 9)
+ page = request.GET.get('page')
+ try:
+ anime = paginator.page(page)
+ print(animations.count(), anime)
+ except PageNotAnInteger:
+ # If page is not an integer, deliver first page.
+ anime = paginator.page(1)
+ except EmptyPage:
+ # If page is out of range(e.g 999999), deliver last page.
+ anime = paginator.page(paginator.num_pages)
+
+ return render(request, 'fossee_manim/proposal_status.html',
+ {'anime': anime,
+ 'categories': categories})
+ else:
+ return redirect('/login/')
+
@login_required
def upload_animation(request, proposal_id=None):
@@ -444,16 +865,16 @@ def upload_animation(request, proposal_id=None):
if request.method == 'POST':
proposal = Animation.objects.get(id=proposal_id)
anim_stats = UploadAnimationForm(request.POST or None,
- request.FILES or None)
+ request.FILES or None)
if anim_stats.is_valid():
try:
anim = AnimationStats.objects.filter(
- animation=proposal)
+ animation=proposal)
if anim.exists():
anobj = anim.first()
try:
remove(anobj.thumbnail.path)
- except:
+ except BaseException:
pass
remove(anobj.video_path.path)
anobj.delete()
@@ -464,7 +885,7 @@ def upload_animation(request, proposal_id=None):
animation=proposal, video_path=request.FILES['video_path'])
anobj._create_thumbnail()
return render(request, 'fossee_manim/upload_success.html')
- except:
+ except BaseException:
messages.warning(request, 'Please Upload a valid File')
return redirect('/edit_proposal/{}'.format(proposal_id))
@@ -480,15 +901,15 @@ def video(request, aid=None):
if len(video):
comment_form = CommentForm()
# if views crosses limit comment the line below
- video.update(views=F('views')+1)
- video.update(like=F('like')+1)
+ video.update(views=F('views') + 1)
+ video.update(like=F('like') + 1)
anim_list = AnimationStats.objects.filter(animation__status="released")
suggestion_list = [x for x in anim_list if (
x.animation.category == video[0].animation.category)]
reviewer_id = video[0].animation.reviewer.id
comment_list = Comment.objects.filter(animation=video[0].animation)
comments = [x for x in comment_list if x.animation_status not in
- ('pending', 'changes')]
+ ('pending', 'changes')]
if request.method == 'POST':
if is_email_checked(user):
comment_form = CommentForm(request.POST)
@@ -503,7 +924,7 @@ def video(request, aid=None):
else:
return redirect('/view_profile/')
- if len(suggestion_list)>3:
+ if len(suggestion_list) > 3:
suggestion_list = sample(suggestion_list, 3)
else:
suggestion_list = [x for x in anim_list if x.id != int(aid)][:3]
@@ -527,34 +948,62 @@ def search_category(request, cat=None):
def guidelines(request):
categories = Category.objects.all()
- return render(request, 'fossee_manim/guidelines.html', {'categories': categories})
+ return render(request,
+ 'fossee_manim/guidelines.html',
+ {'categories': categories})
+
def about(request):
categories = Category.objects.all()
- return render(request, 'fossee_manim/about.html', {'categories': categories})
+ return render(request,
+ 'fossee_manim/about.html',
+ {'categories': categories})
+
def honorarium(request):
categories = Category.objects.all()
- return render(request, 'fossee_manim/honorarium.html', {'categories': categories})
+ return render(request,
+ 'fossee_manim/honorarium.html',
+ {'categories': categories})
+
def faqs(request):
categories = Category.objects.all()
- return render(request, 'fossee_manim/faqs.html', {'categories': categories})
+ return render(request,
+ 'fossee_manim/faqs.html',
+ {'categories': categories})
+
def outreach(request):
categories = Category.objects.all()
- return render(request, 'fossee_manim/outreach.html', {'categories': categories})
+ return render(request,
+ 'fossee_manim/outreach.html',
+ {'categories': categories})
+
def library(request):
categories = Category.objects.all()
- return render(request, 'fossee_manim/library.html', {'categories': categories})
+ return render(request,
+ 'fossee_manim/library.html',
+ {'categories': categories})
+
def libraryMath(request):
categories = Category.objects.all()
- return render(request, 'fossee_manim/libraryMath.html', {'categories': categories})
+ return render(request,
+ 'fossee_manim/libraryMath.html',
+ {'categories': categories})
+
+
def libraryPhys(request):
categories = Category.objects.all()
- return render(request, 'fossee_manim/libraryPhys.html', {'categories': categories})
+ return render(request,
+ 'fossee_manim/libraryPhys.html',
+ {'categories': categories})
+
+
def libraryCS(request):
categories = Category.objects.all()
- return render(request, 'fossee_manim/libraryCS.html', {'categories': categories})
+ return render(request,
+ 'fossee_manim/libraryCS.html',
+ {'categories': categories})