diff options
-rw-r--r-- | .idea/FOSSEE_animations.iml | 4 | ||||
-rw-r--r-- | .idea/dataSources.local.xml | 17 | ||||
-rw-r--r-- | .idea/dataSources.xml | 21 | ||||
-rw-r--r-- | .idea/dataSources/c2ec2b16-9a8a-4975-be60-2a0417af82c8.xml | 954 | ||||
-rw-r--r-- | .idea/misc.xml | 4 | ||||
-rw-r--r-- | .idea/workspace.xml | 95 | ||||
-rw-r--r-- | fossee_manim/forms.py | 65 | ||||
-rw-r--r-- | fossee_manim/models.py | 140 | ||||
-rw-r--r-- | fossee_manim/static/css/index.css | 10 | ||||
-rw-r--r-- | fossee_manim/templates/fossee_manim/about.html | 15 | ||||
-rw-r--r-- | fossee_manim/templates/fossee_manim/base.html | 144 | ||||
-rw-r--r-- | fossee_manim/templates/fossee_manim/delete_proposal.html | 2 | ||||
-rw-r--r-- | fossee_manim/templates/fossee_manim/faqs.html | 5 | ||||
-rw-r--r-- | fossee_manim/templates/fossee_manim/honorarium.html | 15 | ||||
-rw-r--r-- | fossee_manim/templates/fossee_manim/index.html | 21 | ||||
-rw-r--r-- | fossee_manim/templates/fossee_manim/logout.html | 2 | ||||
-rw-r--r-- | fossee_manim/templates/fossee_manim/outreach.html | 7 | ||||
-rw-r--r-- | fossee_manim/templates/fossee_manim/proposal_status.html | 2 | ||||
-rw-r--r-- | fossee_manim/urls.py | 21 | ||||
-rw-r--r-- | fossee_manim/views.py | 236 |
20 files changed, 1592 insertions, 188 deletions
diff --git a/.idea/FOSSEE_animations.iml b/.idea/FOSSEE_animations.iml index 455ff31..03a8da7 100644 --- a/.idea/FOSSEE_animations.iml +++ b/.idea/FOSSEE_animations.iml @@ -14,7 +14,11 @@ </component> <component name="NewModuleRootManager"> <content url="file://$MODULE_DIR$" /> +<<<<<<< HEAD + <orderEntry type="jdk" jdkName="Python 2.7" jdkType="Python SDK" /> +======= <orderEntry type="inheritedJdk" /> +>>>>>>> f79913639bc283c945a392d641e84b0a70a97eda <orderEntry type="sourceFolder" forTests="false" /> </component> <component name="TemplatesService"> diff --git a/.idea/dataSources.local.xml b/.idea/dataSources.local.xml new file mode 100644 index 0000000..d91079c --- /dev/null +++ b/.idea/dataSources.local.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="dataSourceStorageLocal"> + <data-source name="Django default" uuid="c2ec2b16-9a8a-4975-be60-2a0417af82c8"> + <database-info product="SQLite" version="3.25.1" jdbc-version="2.1" driver-name="SQLite JDBC" driver-version="3.25.1" dbms="SQLITE" exact-version="3.25.1" exact-driver-version="3.25"> + <identifier-quote-string>"</identifier-quote-string> + </database-info> + <case-sensitivity plain-identifiers="mixed" quoted-identifiers="mixed" /> + <auth-required>false</auth-required> + <schema-mapping> + <introspection-scope> + <node kind="schema" qname="@" /> + </introspection-scope> + </schema-mapping> + </data-source> + </component> +</project>
\ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 954cdfa..ab6c21f 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -1,7 +1,28 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="DataSourceManagerImpl" format="xml" multifile-model="true"> +<<<<<<< HEAD + <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"> +======= <data-source source="LOCAL" name="Django default" uuid="c2ec2b16-9a8a-4975-be60-2a0417af82c8"> +>>>>>>> f79913639bc283c945a392d641e84b0a70a97eda <driver-ref>sqlite.xerial</driver-ref> <synchronize>true</synchronize> <imported>true</imported> diff --git a/.idea/dataSources/c2ec2b16-9a8a-4975-be60-2a0417af82c8.xml b/.idea/dataSources/c2ec2b16-9a8a-4975-be60-2a0417af82c8.xml new file mode 100644 index 0000000..766dfa4 --- /dev/null +++ b/.idea/dataSources/c2ec2b16-9a8a-4975-be60-2a0417af82c8.xml @@ -0,0 +1,954 @@ +<?xml version="1.0" encoding="UTF-8"?> +<dataSource name="Django default"> + <database-model serializer="dbm" dbms="SQLITE" family-id="SQLITE" format-version="4.16"> + <root id="1"> + <ServerVersion>3.25.1</ServerVersion> + </root> + <schema id="2" parent="1" name="main"> + <Current>1</Current> + </schema> + <collation id="3" parent="1" name="BINARY"/> + <collation id="4" parent="1" name="NOCASE"/> + <collation id="5" parent="1" name="RTRIM"/> + <table id="6" parent="2" name="auth_group"/> + <table id="7" parent="2" name="auth_group_permissions"/> + <table id="8" parent="2" name="auth_permission"/> + <table id="9" parent="2" name="auth_user"/> + <table id="10" parent="2" name="auth_user_groups"/> + <table id="11" parent="2" name="auth_user_user_permissions"/> + <table id="12" parent="2" name="django_admin_log"/> + <table id="13" parent="2" name="django_content_type"/> + <table id="14" parent="2" name="django_migrations"/> + <table id="15" parent="2" name="django_session"/> + <table id="16" parent="2" name="fossee_manim_animation"/> + <table id="17" parent="2" name="fossee_manim_animationstats"/> + <table id="18" parent="2" name="fossee_manim_category"/> + <table id="19" parent="2" name="fossee_manim_comment"/> + <table id="20" parent="2" name="fossee_manim_historicalanimation"/> + <table id="21" parent="2" name="fossee_manim_profile"/> + <table id="22" parent="2" name="sqlite_master"> + <System>1</System> + </table> + <table id="23" parent="2" name="sqlite_sequence"> + <System>1</System> + </table> + <table id="24" parent="2" name="taggit_tag"/> + <table id="25" parent="2" name="taggit_taggeditem"/> + <column id="26" parent="6" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="27" parent="6" name="name"> + <Position>2</Position> + <DataType>varchar(80)|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="28" parent="6" name="sqlite_autoindex_auth_group_1"> + <NameSurrogate>1</NameSurrogate> + <ColNames>name</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <key id="29" parent="6"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <key id="30" parent="6"> + <ColNames>name</ColNames> + <UnderlyingIndexName>sqlite_autoindex_auth_group_1</UnderlyingIndexName> + </key> + <column id="31" parent="7" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="32" parent="7" name="group_id"> + <Position>2</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="33" parent="7" name="permission_id"> + <Position>3</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="34" parent="7" name="auth_group_permissions_group_id_permission_id_0cd325b0_uniq"> + <ColNames>group_id +permission_id</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <index id="35" parent="7" name="auth_group_permissions_group_id_b120cbf9"> + <ColNames>group_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="36" parent="7" name="auth_group_permissions_permission_id_84c5c92e"> + <ColNames>permission_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <key id="37" parent="7"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <foreign-key id="38" parent="7"> + <ColNames>group_id</ColNames> + <RefTableName>auth_group</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <foreign-key id="39" parent="7"> + <ColNames>permission_id</ColNames> + <RefTableName>auth_permission__old</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <column id="40" parent="8" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="41" parent="8" name="content_type_id"> + <Position>2</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="42" parent="8" name="codename"> + <Position>3</Position> + <DataType>varchar(100)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="43" parent="8" name="name"> + <Position>4</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="44" parent="8" name="auth_permission_content_type_id_codename_01ab375a_uniq"> + <ColNames>content_type_id +codename</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <index id="45" parent="8" name="auth_permission_content_type_id_2f476e4b"> + <ColNames>content_type_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <key id="46" parent="8"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <foreign-key id="47" parent="8"> + <ColNames>content_type_id</ColNames> + <RefTableName>django_content_type</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <column id="48" parent="9" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="49" parent="9" name="password"> + <Position>2</Position> + <DataType>varchar(128)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="50" parent="9" name="last_login"> + <Position>3</Position> + <DataType>datetime|0s</DataType> + </column> + <column id="51" parent="9" name="is_superuser"> + <Position>4</Position> + <DataType>bool|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="52" parent="9" name="first_name"> + <Position>5</Position> + <DataType>varchar(30)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="53" parent="9" name="last_name"> + <Position>6</Position> + <DataType>varchar(30)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="54" parent="9" name="email"> + <Position>7</Position> + <DataType>varchar(254)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="55" parent="9" name="is_staff"> + <Position>8</Position> + <DataType>bool|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="56" parent="9" name="is_active"> + <Position>9</Position> + <DataType>bool|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="57" parent="9" name="date_joined"> + <Position>10</Position> + <DataType>datetime|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="58" parent="9" name="username"> + <Position>11</Position> + <DataType>varchar(150)|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="59" parent="9" name="sqlite_autoindex_auth_user_1"> + <NameSurrogate>1</NameSurrogate> + <ColNames>username</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <key id="60" parent="9"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <key id="61" parent="9"> + <ColNames>username</ColNames> + <UnderlyingIndexName>sqlite_autoindex_auth_user_1</UnderlyingIndexName> + </key> + <column id="62" parent="10" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="63" parent="10" name="user_id"> + <Position>2</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="64" parent="10" name="group_id"> + <Position>3</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="65" parent="10" name="auth_user_groups_user_id_group_id_94350c0c_uniq"> + <ColNames>user_id +group_id</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <index id="66" parent="10" name="auth_user_groups_user_id_6a12ed8b"> + <ColNames>user_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="67" parent="10" name="auth_user_groups_group_id_97559544"> + <ColNames>group_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <key id="68" parent="10"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <foreign-key id="69" parent="10"> + <ColNames>user_id</ColNames> + <RefTableName>auth_user__old</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <foreign-key id="70" parent="10"> + <ColNames>group_id</ColNames> + <RefTableName>auth_group</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <column id="71" parent="11" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="72" parent="11" name="user_id"> + <Position>2</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="73" parent="11" name="permission_id"> + <Position>3</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="74" parent="11" name="auth_user_user_permissions_user_id_permission_id_14a6b632_uniq"> + <ColNames>user_id +permission_id</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <index id="75" parent="11" name="auth_user_user_permissions_user_id_a95ead1b"> + <ColNames>user_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="76" parent="11" name="auth_user_user_permissions_permission_id_1fbb5f2c"> + <ColNames>permission_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <key id="77" parent="11"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <foreign-key id="78" parent="11"> + <ColNames>user_id</ColNames> + <RefTableName>auth_user__old</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <foreign-key id="79" parent="11"> + <ColNames>permission_id</ColNames> + <RefTableName>auth_permission__old</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <column id="80" parent="12" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="81" parent="12" name="object_id"> + <Position>2</Position> + <DataType>text|0s</DataType> + </column> + <column id="82" parent="12" name="object_repr"> + <Position>3</Position> + <DataType>varchar(200)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="83" parent="12" name="action_flag"> + <Position>4</Position> + <DataType>smallint unsigned|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="84" parent="12" name="change_message"> + <Position>5</Position> + <DataType>text|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="85" parent="12" name="content_type_id"> + <Position>6</Position> + <DataType>integer|0s</DataType> + </column> + <column id="86" parent="12" name="user_id"> + <Position>7</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="87" parent="12" name="action_time"> + <Position>8</Position> + <DataType>datetime|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="88" parent="12" name="django_admin_log_content_type_id_c4bce8eb"> + <ColNames>content_type_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="89" parent="12" name="django_admin_log_user_id_c564eba6"> + <ColNames>user_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <key id="90" parent="12"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <foreign-key id="91" parent="12"> + <ColNames>content_type_id</ColNames> + <RefTableName>django_content_type__old</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <foreign-key id="92" parent="12"> + <ColNames>user_id</ColNames> + <RefTableName>auth_user__old</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <column id="93" parent="13" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="94" parent="13" name="app_label"> + <Position>2</Position> + <DataType>varchar(100)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="95" parent="13" name="model"> + <Position>3</Position> + <DataType>varchar(100)|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="96" parent="13" name="django_content_type_app_label_model_76bd3d3b_uniq"> + <ColNames>app_label +model</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <key id="97" parent="13"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <column id="98" parent="14" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="99" parent="14" name="app"> + <Position>2</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="100" parent="14" name="name"> + <Position>3</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="101" parent="14" name="applied"> + <Position>4</Position> + <DataType>datetime|0s</DataType> + <NotNull>1</NotNull> + </column> + <key id="102" parent="14"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <column id="103" parent="15" name="session_key"> + <Position>1</Position> + <DataType>varchar(40)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="104" parent="15" name="session_data"> + <Position>2</Position> + <DataType>text|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="105" parent="15" name="expire_date"> + <Position>3</Position> + <DataType>datetime|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="106" parent="15" name="sqlite_autoindex_django_session_1"> + <NameSurrogate>1</NameSurrogate> + <ColNames>session_key</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <index id="107" parent="15" name="django_session_expire_date_a5c62663"> + <ColNames>expire_date</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <key id="108" parent="15"> + <ColNames>session_key</ColNames> + <Primary>1</Primary> + <UnderlyingIndexName>sqlite_autoindex_django_session_1</UnderlyingIndexName> + </key> + <column id="109" parent="16" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="110" parent="16" name="title"> + <Position>2</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="111" parent="16" name="status"> + <Position>3</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="112" parent="16" name="subcategory"> + <Position>4</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="113" parent="16" name="created"> + <Position>5</Position> + <DataType>datetime|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="114" parent="16" name="category_id"> + <Position>6</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="115" parent="16" name="contributor_id"> + <Position>7</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="116" parent="16" name="reviewer_id"> + <Position>8</Position> + <DataType>integer|0s</DataType> + </column> + <column id="117" parent="16" name="outline"> + <Position>9</Position> + <DataType>text|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="118" parent="16" name="fossee_manim_animation_category_id_b6a03fe4"> + <ColNames>category_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="119" parent="16" name="fossee_manim_animation_contributor_id_9731401b"> + <ColNames>contributor_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="120" parent="16" name="fossee_manim_animation_reviewer_id_409a668a"> + <ColNames>reviewer_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <key id="121" parent="16"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <foreign-key id="122" parent="16"> + <ColNames>category_id</ColNames> + <RefTableName>fossee_manim_category</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <foreign-key id="123" parent="16"> + <ColNames>contributor_id</ColNames> + <RefTableName>auth_user</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <foreign-key id="124" parent="16"> + <ColNames>reviewer_id</ColNames> + <RefTableName>auth_user</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <column id="125" parent="17" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="126" parent="17" name="views"> + <Position>2</Position> + <DataType>integer unsigned|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="127" parent="17" name="like"> + <Position>3</Position> + <DataType>integer unsigned|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="128" parent="17" name="dislike"> + <Position>4</Position> + <DataType>integer unsigned|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="129" parent="17" name="thumbnail"> + <Position>5</Position> + <DataType>varchar(100)|0s</DataType> + </column> + <column id="130" parent="17" name="video_path"> + <Position>6</Position> + <DataType>varchar(100)|0s</DataType> + </column> + <column id="131" parent="17" name="animation_id"> + <Position>7</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <key id="132" parent="17"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <foreign-key id="133" parent="17"> + <ColNames>animation_id</ColNames> + <RefTableName>fossee_manim_animation__old</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <column id="134" parent="18" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="135" parent="18" name="name"> + <Position>2</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="136" parent="18" name="created"> + <Position>3</Position> + <DataType>datetime|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="137" parent="18" name="description"> + <Position>4</Position> + <DataType>text|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="138" parent="18" name="sqlite_autoindex_fossee_manim_category_1"> + <NameSurrogate>1</NameSurrogate> + <ColNames>name</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <key id="139" parent="18"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <key id="140" parent="18"> + <ColNames>name</ColNames> + <UnderlyingIndexName>sqlite_autoindex_fossee_manim_category_1</UnderlyingIndexName> + </key> + <column id="141" parent="19" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="142" parent="19" name="comment"> + <Position>2</Position> + <DataType>text|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="143" parent="19" name="created_date"> + <Position>3</Position> + <DataType>datetime|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="144" parent="19" name="animation_status"> + <Position>4</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="145" parent="19" name="animation_id"> + <Position>5</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="146" parent="19" name="commentor_id"> + <Position>6</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="147" parent="19" name="fossee_manim_comment_animation_id_6e4f0f3b"> + <ColNames>animation_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="148" parent="19" name="fossee_manim_comment_commentor_id_4925daa7"> + <ColNames>commentor_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <key id="149" parent="19"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <foreign-key id="150" parent="19"> + <ColNames>animation_id</ColNames> + <RefTableName>fossee_manim_animation__old</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <foreign-key id="151" parent="19"> + <ColNames>commentor_id</ColNames> + <RefTableName>auth_user</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <column id="152" parent="20" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="153" parent="20" name="title"> + <Position>2</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="154" parent="20" name="status"> + <Position>3</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="155" parent="20" name="subcategory"> + <Position>4</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="156" parent="20" name="created"> + <Position>5</Position> + <DataType>datetime|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="157" parent="20" name="history_id"> + <Position>6</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="158" parent="20" name="history_date"> + <Position>7</Position> + <DataType>datetime|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="159" parent="20" name="history_change_reason"> + <Position>8</Position> + <DataType>varchar(100)|0s</DataType> + </column> + <column id="160" parent="20" name="history_type"> + <Position>9</Position> + <DataType>varchar(1)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="161" parent="20" name="category_id"> + <Position>10</Position> + <DataType>integer|0s</DataType> + </column> + <column id="162" parent="20" name="contributor_id"> + <Position>11</Position> + <DataType>integer|0s</DataType> + </column> + <column id="163" parent="20" name="history_user_id"> + <Position>12</Position> + <DataType>integer|0s</DataType> + </column> + <column id="164" parent="20" name="reviewer_id"> + <Position>13</Position> + <DataType>integer|0s</DataType> + </column> + <column id="165" parent="20" name="outline"> + <Position>14</Position> + <DataType>text|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="166" parent="20" name="fossee_manim_historicalanimation_id_7bb1d9ba"> + <ColNames>id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="167" parent="20" name="fossee_manim_historicalanimation_category_id_358a43a6"> + <ColNames>category_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="168" parent="20" name="fossee_manim_historicalanimation_contributor_id_7d21ee43"> + <ColNames>contributor_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="169" parent="20" name="fossee_manim_historicalanimation_history_user_id_09692bd4"> + <ColNames>history_user_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="170" parent="20" name="fossee_manim_historicalanimation_reviewer_id_c719e2dc"> + <ColNames>reviewer_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <key id="171" parent="20"> + <ColNames>history_id</ColNames> + <Primary>1</Primary> + </key> + <foreign-key id="172" parent="20"> + <ColNames>history_user_id</ColNames> + <RefTableName>auth_user</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <column id="173" parent="21" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="174" parent="21" name="title"> + <Position>2</Position> + <DataType>varchar(32)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="175" parent="21" name="institute"> + <Position>3</Position> + <DataType>varchar(150)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="176" parent="21" name="department"> + <Position>4</Position> + <DataType>varchar(150)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="177" parent="21" name="phone_number"> + <Position>5</Position> + <DataType>varchar(10)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="178" parent="21" name="position"> + <Position>6</Position> + <DataType>varchar(32)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="179" parent="21" name="how_did_you_hear_about_us"> + <Position>7</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="180" parent="21" name="location"> + <Position>8</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="181" parent="21" name="state"> + <Position>9</Position> + <DataType>varchar(255)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="182" parent="21" name="pincode"> + <Position>10</Position> + <DataType>varchar(6)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="183" parent="21" name="is_email_verified"> + <Position>11</Position> + <DataType>bool|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="184" parent="21" name="activation_key"> + <Position>12</Position> + <DataType>varchar(255)|0s</DataType> + </column> + <column id="185" parent="21" name="key_expiry_time"> + <Position>13</Position> + <DataType>datetime|0s</DataType> + </column> + <column id="186" parent="21" name="user_id"> + <Position>14</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="187" parent="21" name="sqlite_autoindex_fossee_manim_profile_1"> + <NameSurrogate>1</NameSurrogate> + <ColNames>user_id</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <key id="188" parent="21"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <key id="189" parent="21"> + <ColNames>user_id</ColNames> + <UnderlyingIndexName>sqlite_autoindex_fossee_manim_profile_1</UnderlyingIndexName> + </key> + <foreign-key id="190" parent="21"> + <ColNames>user_id</ColNames> + <RefTableName>auth_user</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <column id="191" parent="22" name="type"> + <Position>1</Position> + <DataType>text|0s</DataType> + </column> + <column id="192" parent="22" name="name"> + <Position>2</Position> + <DataType>text|0s</DataType> + </column> + <column id="193" parent="22" name="tbl_name"> + <Position>3</Position> + <DataType>text|0s</DataType> + </column> + <column id="194" parent="22" name="rootpage"> + <Position>4</Position> + <DataType>int|0s</DataType> + </column> + <column id="195" parent="22" name="sql"> + <Position>5</Position> + <DataType>text|0s</DataType> + </column> + <column id="196" parent="23" name="name"> + <Position>1</Position> + </column> + <column id="197" parent="23" name="seq"> + <Position>2</Position> + </column> + <column id="198" parent="24" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="199" parent="24" name="name"> + <Position>2</Position> + <DataType>varchar(100)|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="200" parent="24" name="slug"> + <Position>3</Position> + <DataType>varchar(100)|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="201" parent="24" name="sqlite_autoindex_taggit_tag_1"> + <NameSurrogate>1</NameSurrogate> + <ColNames>name</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <index id="202" parent="24" name="sqlite_autoindex_taggit_tag_2"> + <NameSurrogate>1</NameSurrogate> + <ColNames>slug</ColNames> + <ColumnCollations></ColumnCollations> + <Unique>1</Unique> + </index> + <key id="203" parent="24"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <key id="204" parent="24"> + <ColNames>name</ColNames> + <UnderlyingIndexName>sqlite_autoindex_taggit_tag_1</UnderlyingIndexName> + </key> + <key id="205" parent="24"> + <ColNames>slug</ColNames> + <UnderlyingIndexName>sqlite_autoindex_taggit_tag_2</UnderlyingIndexName> + </key> + <column id="206" parent="25" name="id"> + <Position>1</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + <SequenceIdentity>1</SequenceIdentity> + </column> + <column id="207" parent="25" name="object_id"> + <Position>2</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="208" parent="25" name="content_type_id"> + <Position>3</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <column id="209" parent="25" name="tag_id"> + <Position>4</Position> + <DataType>integer|0s</DataType> + <NotNull>1</NotNull> + </column> + <index id="210" parent="25" name="taggit_taggeditem_object_id_e2d7d1df"> + <ColNames>object_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="211" parent="25" name="taggit_taggeditem_content_type_id_object_id_196cc965_idx"> + <ColNames>content_type_id +object_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="212" parent="25" name="taggit_taggeditem_content_type_id_9957a03c"> + <ColNames>content_type_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <index id="213" parent="25" name="taggit_taggeditem_tag_id_f4f5b767"> + <ColNames>tag_id</ColNames> + <ColumnCollations></ColumnCollations> + </index> + <key id="214" parent="25"> + <ColNames>id</ColNames> + <Primary>1</Primary> + </key> + <foreign-key id="215" parent="25"> + <ColNames>content_type_id</ColNames> + <RefTableName>django_content_type</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + <foreign-key id="216" parent="25"> + <ColNames>tag_id</ColNames> + <RefTableName>taggit_tag</RefTableName> + <RefColNames>id</RefColNames> + </foreign-key> + </database-model> +</dataSource>
\ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 8656114..a7e5d8b 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,5 +3,9 @@ <component name="JavaScriptSettings"> <option name="languageLevel" value="ES6" /> </component> +<<<<<<< HEAD + <component name="ProjectRootManager" version="2" project-jdk-name="Python 2.7" project-jdk-type="Python SDK" /> +======= <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" /> +>>>>>>> f79913639bc283c945a392d641e84b0a70a97eda </project>
\ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..626182e --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ChangeListManager"> + <list default="true" id="38ed1c12-1d8b-4313-8f28-4c745bc3ce98" name="Default Changelist" comment=""> + <change beforePath="$PROJECT_DIR$/fossee_manim/templates/fossee_manim/delete_proposal.html" beforeDir="false" afterPath="$PROJECT_DIR$/fossee_manim/templates/fossee_manim/delete_proposal.html" afterDir="false" /> + </list> + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> + </component> + <component name="ProjectId" id="1RgbbNstYgXQOnKhGhdmfuuyq4D" /> + <component name="PropertiesComponent"> + <property name="ASKED_SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> + <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> + <property name="WebServerToolWindowFactoryState" value="false" /> + </component> + <component name="RunDashboard"> + <option name="ruleStates"> + <list> + <RuleState> + <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> + </RuleState> + <RuleState> + <option name="name" value="StatusDashboardGroupingRule" /> + </RuleState> + </list> + </option> + </component> + <component name="RunManager"> + <configuration name="FOSSEE_animations" type="Python.DjangoServer" factoryName="Django server"> + <module name="FOSSEE_animations" /> + <option name="INTERPRETER_OPTIONS" value="" /> + <option name="PARENT_ENVS" value="true" /> + <envs> + <env name="PYTHONUNBUFFERED" value="1" /> + <env name="DJANGO_SETTINGS_MODULE" value="fossee_anime.settings" /> + </envs> + <option name="SDK_HOME" value="/usr/bin/python2.7" /> + <option name="WORKING_DIRECTORY" value="" /> + <option name="IS_MODULE_SDK" value="false" /> + <option name="ADD_CONTENT_ROOTS" value="true" /> + <option name="ADD_SOURCE_ROOTS" value="true" /> + <option name="launchJavascriptDebuger" value="false" /> + <option name="port" value="8000" /> + <option name="host" value="" /> + <option name="additionalOptions" value="" /> + <option name="browserUrl" value="" /> + <option name="runTestServer" value="false" /> + <option name="runNoReload" value="false" /> + <option name="useCustomRunCommand" value="false" /> + <option name="customRunCommand" value="" /> + <method v="2" /> + </configuration> + </component> + <component name="SvnConfiguration"> + <configuration /> + </component> + <component name="TaskManager"> + <task active="true" id="Default" summary="Default task"> + <changelist id="38ed1c12-1d8b-4313-8f28-4c745bc3ce98" name="Default Changelist" comment="" /> + <created>1570091761379</created> + <option name="number" value="Default" /> + <option name="presentableId" value="Default" /> + <updated>1570091761379</updated> + <workItem from="1570091780853" duration="4873000" /> + <workItem from="1570119567049" duration="648000" /> + <workItem from="1570164704492" duration="14096000" /> + <workItem from="1570182317776" duration="214000" /> + <workItem from="1570194833343" duration="2114000" /> + <workItem from="1570348205277" duration="10000" /> + </task> + <servers /> + </component> + <component name="TypeScriptGeneratedFilesManager"> + <option name="version" value="1" /> + </component> + <component name="Vcs.Log.Tabs.Properties"> + <option name="TAB_STATES"> + <map> + <entry key="MAIN"> + <value> + <State> + <option name="COLUMN_ORDER" /> + </State> + </value> + </entry> + </map> + </option> + </component> +</project>
\ No newline at end of file diff --git a/fossee_manim/forms.py b/fossee_manim/forms.py index 0836e47..8bb3453 100644 --- a/fossee_manim/forms.py +++ b/fossee_manim/forms.py @@ -316,6 +316,66 @@ class AnimationProposal_edit(forms.ModelForm): class Meta: model = Animation + 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(), } @@ -360,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 f400818..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 @@ -131,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, @@ -147,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): @@ -173,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) @@ -220,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 @@ -240,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/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..5e6326e 100644 --- a/fossee_manim/templates/fossee_manim/base.html +++ b/fossee_manim/templates/fossee_manim/base.html @@ -34,82 +34,84 @@ <body> {% block header %} - <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;"> <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> + {% endblock %} {% block content %} @@ -120,7 +122,8 @@ <!-- </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"> @@ -151,11 +154,12 @@ This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License </div> </div> - </footer> + </div> + </footer> {% endblock footer %} - <!-- - START Bootstrap-Alert + <!-- + 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 ! diff --git a/fossee_manim/templates/fossee_manim/delete_proposal.html b/fossee_manim/templates/fossee_manim/delete_proposal.html index 6b870a2..9cae06e 100644 --- a/fossee_manim/templates/fossee_manim/delete_proposal.html +++ b/fossee_manim/templates/fossee_manim/delete_proposal.html @@ -38,7 +38,7 @@ Delete Proposal <tr> <td colspan="2"> <center> - <a href="{% url 'delete_proposal_info' proposal.id %}"><button type="button" + <a href="{% url 'delete_proposal' proposal.id %}"><button type="button" class="btn btn-info" id="btnred">Delete {{ proposal.title }}</button></a> </center> </td> 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..1e902e9 100644 --- a/fossee_manim/templates/fossee_manim/index.html +++ b/fossee_manim/templates/fossee_manim/index.html @@ -63,15 +63,12 @@ FOSSEE Animations Homepage <!--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! - </div> -</div> -{% endblock %}
\ No newline at end of file + <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 %} diff --git a/fossee_manim/templates/fossee_manim/logout.html b/fossee_manim/templates/fossee_manim/logout.html index ef071f9..fe816a4 100644 --- a/fossee_manim/templates/fossee_manim/logout.html +++ b/fossee_manim/templates/fossee_manim/logout.html @@ -9,7 +9,7 @@ Logged out <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> + <h4>If you want to Login again please <a href="{{ URL_ROOT}}/login/" style="color: blue">click here</a></h4> <br> </div> 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 81af9ec..fe2aa5e 100644 --- a/fossee_manim/templates/fossee_manim/proposal_status.html +++ b/fossee_manim/templates/fossee_manim/proposal_status.html @@ -94,7 +94,7 @@ {% endif %} </td> {% if request.user.profile.position == 'reviewer' %} - <td><a href="{% url 'delete_proposal' an.id %}"> + <td><a href="{% url 'show_proposal_detail' an.id %}"> <button type="button" class="btn btn-info" id="btnred">Delete</button> </a></td> {% endif %} diff --git a/fossee_manim/urls.py b/fossee_manim/urls.py index 372ebe7..f48a6c0 100644 --- a/fossee_manim/urls.py +++ b/fossee_manim/urls.py @@ -34,13 +34,20 @@ urlpatterns = [ 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'), - url(r'^delete_proposal_info/([1-9][0-9]*)$', views.delete_proposal_info, name='delete_proposal_info'), - 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'), + 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( diff --git a/fossee_manim/views.py b/fossee_manim/views.py index e7a3aee..fa89cb2 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, AnimationProposal_edit + CommentForm, UploadAnimationForm, + AnimationProposal_edit, ) from .models import ( Profile, User, AnimationStats, @@ -494,6 +495,142 @@ def sortproposal_pending(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(): @@ -590,46 +727,89 @@ def edit_proposal(request, proposal_id=None): # this method is used to return the details the proposal selected to delete @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) + 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') - return render(request, - 'fossee_manim/delete_proposal.html', - {'proposal': proposal}) + 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/') # this method is used to delete the selected proposal by the reviever @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(): - # delete the selected proposal - proposal = Animation.objects.get(id=proposal_id) - proposal.delete() - # loading the proposal page to redirect after deleting one proposal - 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 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') - 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/') |