summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.idea/.gitignore6
-rw-r--r--.idea/FOSSEE_animations.iml31
-rw-r--r--.idea/dataSources.xml33
-rw-r--r--.idea/inspectionProfiles/profiles_settings.xml6
-rw-r--r--.idea/misc.xml7
-rw-r--r--.idea/modules.xml8
-rw-r--r--.idea/vcs.xml6
-rw-r--r--fossee_manim/forms.py119
-rw-r--r--fossee_manim/models.py140
-rw-r--r--fossee_manim/static/css/index.css10
-rw-r--r--fossee_manim/templates/fossee_manim/about.html15
-rw-r--r--fossee_manim/templates/fossee_manim/base.html152
-rw-r--r--fossee_manim/templates/fossee_manim/faqs.html5
-rw-r--r--fossee_manim/templates/fossee_manim/honorarium.html15
-rw-r--r--fossee_manim/templates/fossee_manim/index.html14
-rw-r--r--fossee_manim/templates/fossee_manim/logout.html10
-rw-r--r--fossee_manim/templates/fossee_manim/outreach.html7
-rw-r--r--fossee_manim/templates/fossee_manim/proposal_status.html38
-rw-r--r--fossee_manim/urls.py16
-rw-r--r--fossee_manim/views.py370
20 files changed, 750 insertions, 258 deletions
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..3889a9e
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,6 @@
+
+# Default ignored files
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml \ No newline at end of file
diff --git a/.idea/FOSSEE_animations.iml b/.idea/FOSSEE_animations.iml
new file mode 100644
index 0000000..201c35f
--- /dev/null
+++ b/.idea/FOSSEE_animations.iml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="PYTHON_MODULE" version="4">
+ <component name="FacetManager">
+ <facet type="django" name="Django">
+ <configuration>
+ <option name="rootFolder" value="$MODULE_DIR$" />
+ <option name="settingsModule" value="fossee_anime/settings.py" />
+ <option name="manageScript" value="$MODULE_DIR$/manage.py" />
+ <option name="environment" value="&lt;map/&gt;" />
+ <option name="doNotUseTestRunner" value="false" />
+ <option name="trackFilePattern" value="migrations" />
+ </configuration>
+ </facet>
+ </component>
+ <component name="NewModuleRootManager">
+ <content url="file://$MODULE_DIR$" />
+ <orderEntry type="jdk" jdkName="Python 2.7" jdkType="Python SDK" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+ <component name="TemplatesService">
+ <option name="TEMPLATE_CONFIGURATION" value="Django" />
+ <option name="TEMPLATE_FOLDERS">
+ <list>
+ <option value="$MODULE_DIR$/fossee_manim/templates" />
+ </list>
+ </option>
+ </component>
+ <component name="TestRunnerService">
+ <option name="PROJECT_TEST_RUNNER" value="Unittests" />
+ </component>
+</module> \ No newline at end of file
diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..4ab70d8
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
+ <data-source source="LOCAL" name="db" uuid="3317de75-8f14-4f8c-8836-39847d18f321">
+ <driver-ref>sqlite.xerial</driver-ref>
+ <synchronize>true</synchronize>
+ <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
+ <jdbc-url>jdbc:sqlite:$PROJECT_DIR$/db.sqlite3</jdbc-url>
+ <driver-properties>
+ <property name="enable_load_extension" value="true" />
+ </driver-properties>
+ <libraries>
+ <library>
+ <url>file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.25.1/sqlite-jdbc-3.25.1.jar</url>
+ </library>
+ <library>
+ <url>file://$APPLICATION_CONFIG_DIR$/jdbc-drivers/Xerial SQLiteJDBC/3.25.1/license.txt</url>
+ </library>
+ </libraries>
+ </data-source>
+ <data-source source="LOCAL" name="Django default" uuid="ae398c8c-5a45-44f5-9195-355716353d9a">
+ <driver-ref>sqlite.xerial</driver-ref>
+ <synchronize>true</synchronize>
+ <imported>true</imported>
+ <remarks>$PROJECT_DIR$/fossee_anime/settings.py</remarks>
+ <jdbc-driver>org.sqlite.JDBC</jdbc-driver>
+ <jdbc-url>jdbc:sqlite:$PROJECT_DIR$/db.sqlite3</jdbc-url>
+ <driver-properties>
+ <property name="enable_load_extension" value="true" />
+ </driver-properties>
+ </data-source>
+ </component>
+</project> \ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+<component name="InspectionProjectProfileManager">
+ <settings>
+ <option name="USE_PROJECT_PROFILE" value="false" />
+ <version value="1.0" />
+ </settings>
+</component> \ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..f99b311
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="JavaScriptSettings">
+ <option name="languageLevel" value="ES6" />
+ </component>
+ <component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7" project-jdk-type="Python SDK" />
+</project> \ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..3dd842f
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/.idea/FOSSEE_animations.iml" filepath="$PROJECT_DIR$/.idea/FOSSEE_animations.iml" />
+ </modules>
+ </component>
+</project> \ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
+ </component>
+</project> \ No newline at end of file
diff --git a/fossee_manim/forms.py b/fossee_manim/forms.py
index af2b96e..b7555fc 100644
--- a/fossee_manim/forms.py
+++ b/fossee_manim/forms.py
@@ -1,9 +1,11 @@
from django import forms
from django.utils import timezone
+from taggit.forms import TagWidget
+
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 +23,7 @@ PWD_CHARS = letters + punctuation + digits
position_choices = (
("contributor", "Contributor"),
("reviewer", "Reviewer")
- )
+)
department_choices = (
("computer", "Dept. of Computer Science/Engg."),
@@ -36,7 +38,7 @@ department_choices = (
("electronics", "Dept. of Electronics"),
("energy science and engineering", "Dept. of Energy Science and Engg"),
("others", "Others")
- )
+)
title = (
("Professor", "Prof."),
@@ -47,7 +49,7 @@ title = (
("Mr", "Mr."),
("Mrs", "Mrs."),
("Miss", "Ms."),
- )
+)
source = (
("FOSSEE Email", "FOSSEE Email"),
@@ -56,46 +58,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 +113,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 +135,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 +218,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 +234,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,18 +258,18 @@ 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={
- '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['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
fields = ['category', 'subcategory', 'title', 'outline', 'tags']
+ widgets = {
+ 'tags': TagWidget(),
+ }
class CommentForm(forms.ModelForm):
diff --git a/fossee_manim/models.py b/fossee_manim/models.py
index a6f68c2..3470115 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
@@ -124,13 +125,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 +141,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 +167,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()
# concepts = models.TextField()
# audience=models.TextField()
@@ -205,16 +215,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
@@ -225,8 +239,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/static/css/index.css b/fossee_manim/static/css/index.css
index 54bda1b..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;
}
@@ -128,8 +128,16 @@ hr {
.footer{
right: 0;
left: 0;
+<<<<<<< HEAD
bottom: 0;
padding: 1rem;
+=======
+ position: relative;
+ bottom: 0;
+
+ owerflow: hidden;
+ padding: 95px;
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
text-align: center;
}
a{
diff --git a/fossee_manim/templates/fossee_manim/about.html b/fossee_manim/templates/fossee_manim/about.html
index 21c55d5..4688740 100644
--- a/fossee_manim/templates/fossee_manim/about.html
+++ b/fossee_manim/templates/fossee_manim/about.html
@@ -5,10 +5,16 @@ About
{% endblock %}
{% block content %}
+<<<<<<< HEAD
<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; margin-bottom: 56px; padding:50px; background-color: transparent;">
+ {% comment %}style="padding-top:120px"> {% endcomment %}
+ <center>
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
<h1>About FOSSEE Animations</h1>
<h4 style="color: #555555;"><i>What</i> do we do and <i>why</i>?</h4>
</center>
@@ -16,5 +22,12 @@ About
<div class="container" style="font-family: 'Lato', sans-serif; background-color: #e7edee;">
<hr>
</div>
+<<<<<<< HEAD
</div>
-{% endblock content %} \ No newline at end of file
+{% endblock content %}
+=======
+ <div>
+ {% endblock content %}
+ </div>
+
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
diff --git a/fossee_manim/templates/fossee_manim/base.html b/fossee_manim/templates/fossee_manim/base.html
index ab5fa06..ae45a6a 100644
--- a/fossee_manim/templates/fossee_manim/base.html
+++ b/fossee_manim/templates/fossee_manim/base.html
@@ -34,82 +34,92 @@
<body>
{% block header %}
+<<<<<<< HEAD
<nav class="navbar navbar-expand-md row fixed-top" style="background-color:#222222; padding-top: 20px; padding-bottom: 20px;">
+=======
+ <nav class="navbar navbar-expand-lg " style="background-color:#222222; color: white;">
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
<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>
+<<<<<<< HEAD
</div>
+=======
+ </nav>
+
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
{% endblock %}
{% block content %}
@@ -120,7 +130,12 @@
<!-- </main> -->
{% block footer %}
+<<<<<<< HEAD
<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;">
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
<div class="container">
<div class="row">
<div class="col-md-4 text-center">
@@ -151,11 +166,20 @@
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License
</div>
</div>
+<<<<<<< HEAD
</footer>
{% endblock footer %}
<!--
START Bootstrap-Alert
+=======
+ </div>
+ </footer>
+
+ {% endblock footer %}
+ <!--
+ START Bootstrap-Alert
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
<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 !
diff --git a/fossee_manim/templates/fossee_manim/faqs.html b/fossee_manim/templates/fossee_manim/faqs.html
index ab25f41..f22f79b 100644
--- a/fossee_manim/templates/fossee_manim/faqs.html
+++ b/fossee_manim/templates/fossee_manim/faqs.html
@@ -139,8 +139,13 @@ FAQs
</ul>
<br>
+<<<<<<< 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 %} \ 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 968ff87..b844482 100644
--- a/fossee_manim/templates/fossee_manim/honorarium.html
+++ b/fossee_manim/templates/fossee_manim/honorarium.html
@@ -64,6 +64,7 @@ Honorarium
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>
+<<<<<<< HEAD
<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>
@@ -82,6 +83,20 @@ Honorarium
Form </a> </li>
<li> <a href="https://static.fossee.in/animations/forms/Receipt.pdf"> Receipt </a> </li>
</ul>
+=======
+ <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 style="color: blue" href = "https://static.fossee.in/animations/forms/Copyright_Transfer.pdf"> Copyright Transfer Form </a> </li>
+ <li> <a style="color: blue" href = "https://static.fossee.in/animations/forms/Contributor_Details.pdf"> Contributor Details Form </a> </li>
+ <li> <a style="color: blue" href = "https://static.fossee.in/animations/forms/Bank_Details.pdf"> Bank Details Form </a> </li>
+ <li> <a style="color: blue" href = "https://static.fossee.in/animations/forms/Receipt.pdf"> Receipt </a> </li>
+ </ul>
+ </div>
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
</div>
</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 bdfca1c..23d7d66 100644
--- a/fossee_manim/templates/fossee_manim/index.html
+++ b/fossee_manim/templates/fossee_manim/index.html
@@ -63,6 +63,7 @@ FOSSEE Animations Homepage
<!--Infographics-->
+<<<<<<< HEAD
<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">
@@ -74,4 +75,15 @@ FOSSEE Animations Homepage
style="background-color:#157b80; color:white;">Guidelines</a> page!
</div>
</div>
-{% endblock %} \ No newline at end of file
+{% endblock %}
+=======
+ <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 <button onclick="location.href='{{URL_ROOT}}/guidelines/'" style="background-color:#157b80; color:white;">Guidelines</button> page!
+ </div>
+ </div>
+ {% endblock %}
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
diff --git a/fossee_manim/templates/fossee_manim/logout.html b/fossee_manim/templates/fossee_manim/logout.html
index ef071f9..61b2f68 100644
--- a/fossee_manim/templates/fossee_manim/logout.html
+++ b/fossee_manim/templates/fossee_manim/logout.html
@@ -5,6 +5,7 @@ Logged out
{% endblock %}
+<<<<<<< HEAD
{% block content %}
<div class="container jumbotron" align="center" style="margin-top: 30px;">
<br>
@@ -12,5 +13,14 @@ Logged out
<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>
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
{% 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 0cb6ee5..f0314eb 100644
--- a/fossee_manim/templates/fossee_manim/outreach.html
+++ b/fossee_manim/templates/fossee_manim/outreach.html
@@ -5,11 +5,18 @@ FOSSEE Animations | Outreach
{% endblock %}
{% block content %}
+<<<<<<< HEAD
<div class="container-fluid jumbotron" align="justify" style="background-color: transparent">
<center>
<h2>FOSSEE Animations Outreach</h2>
</center>
<hr>
</div>
+=======
+ <div class="container-fluid jumbotron" align = "justify" style="background-color: transparent; margin-bottom: 103px; ">
+ <center><h2>FOSSEE Animations Outreach</h2></center>
+ <hr>
+ </div>
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
{% 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 c41a195..e7c8f35 100644
--- a/fossee_manim/templates/fossee_manim/proposal_status.html
+++ b/fossee_manim/templates/fossee_manim/proposal_status.html
@@ -8,6 +8,7 @@
<div class="jumbotron" style="background-color: white; margin-top: 0px;">
<div class="container" align="center">
+<<<<<<< HEAD
<h2> Proposal Status </h2>
<hr>
<table class="table table-hover" style="font-family: 'Lato', sans-serif;">
@@ -53,6 +54,43 @@
{% endfor %}
</table>
</div>
+=======
+ <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>
+>>>>>>> cfdc41deed280bddbcc6c3cf45e30f33ea139e88
<!-- Page Navigation -->
diff --git a/fossee_manim/urls.py b/fossee_manim/urls.py
index 1947cba..d7b228b 100644
--- a/fossee_manim/urls.py
+++ b/fossee_manim/urls.py
@@ -26,12 +26,12 @@ 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'^delete_proposal/([1-9][0-9]*)$',views.delete_proposal,name='delete_proposal'),
@@ -39,6 +39,6 @@ urlpatterns = [
]
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 faa93b9..3ea851e 100644
--- a/fossee_manim/views.py
+++ b/fossee_manim/views.py
@@ -2,7 +2,8 @@ from os import listdir, path, sep, makedirs, remove
from .forms import (
UserRegistrationForm, UserLoginForm,
ProfileForm, AnimationProposal,
- CommentForm, UploadAnimationForm
+ CommentForm, UploadAnimationForm,
+ AnimationProposal_edit
)
from .models import (
Profile, User, AnimationStats,
@@ -35,9 +36,14 @@ 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):
@@ -52,10 +58,9 @@ def makepath(proposal_data, reject=None):
settings.MEDIA_ROOT, proposal_data.category.name,
proposal_data.title.replace(" ", "_")
))
- except:
+ except BaseException:
logging.info("Proposal rejected")
-
else:
makedirs(path.join(settings.MEDIA_ROOT, proposal_data.category.name,
proposal_data.title.replace(" ", "_")
@@ -65,7 +70,7 @@ def makepath(proposal_data, reject=None):
def check_repo(link):
try:
return (get(link).status_code == 200)
- except:
+ except BaseException:
return False
@@ -88,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):
@@ -119,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):
@@ -154,7 +161,7 @@ def activate_user(request, key=None):
try:
user = Profile.objects.get(activation_key=key)
- except:
+ except BaseException:
return redirect('/register/')
if key == user.activation_key:
@@ -198,14 +205,18 @@ 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")
+ 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
@@ -225,7 +236,7 @@ def view_profile(request):
try:
logout(request)
return redirect('/login/')
- except:
+ except BaseException:
return redirect('/register/')
@@ -246,7 +257,7 @@ def edit_profile(request):
try:
logout(request)
return redirect('/login/')
- except:
+ except BaseException:
return redirect('/register/')
context = {'template': template}
@@ -274,9 +285,8 @@ def edit_profile(request):
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
@@ -310,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)
@@ -336,24 +347,161 @@ def proposal_status(request):
@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/')
+
+
+@login_required
def edit_proposal(request, proposal_id=None):
user = request.user
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)
+ 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')
@@ -393,7 +541,8 @@ def edit_proposal(request, proposal_id=None):
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
@@ -429,39 +578,85 @@ def edit_proposal(request, proposal_id=None):
@login_required
-def delete_proposal(request, proposal_id=None):
+def show_proposal_detail(request, proposal_id=None):
user = request.user
if is_email_checked(user) and user.is_authenticated():
- proposal = Animation.objects.get(id=proposal_id)
-
- return render(request, 'fossee_manim/delete_proposal.html', {'proposal': proposal})
+ try:
+ proposal = Animation.objects.get(id=proposal_id)
+ return render(request, 'fossee_manim/delete_proposal.html', {'proposal': proposal})
+ except:
+ 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('/register/')
@login_required
-def delete_proposal_info(request, proposal_id=None):
+def delete_proposal(request, proposal_id=None):
user = request.user
if is_email_checked(user) and user.is_authenticated():
- 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)
+ 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:
+ 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')
- return render(request, 'fossee_manim/proposal_status.html',{'anime': anime,'categories': categories})
+ 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/')
@@ -471,13 +666,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):
@@ -495,7 +721,7 @@ def upload_animation(request, proposal_id=None):
anobj = anim.first()
try:
remove(anobj.thumbnail.path)
- except:
+ except BaseException:
pass
remove(anobj.video_path.path)
anobj.delete()
@@ -506,7 +732,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))
@@ -526,7 +752,7 @@ def video(request, aid=None):
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)]
+ 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
@@ -569,44 +795,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})