Solving the issues in the login and others

This commit is contained in:
Vivek P Prakash
2025-11-28 16:03:23 +05:30
parent fabd36cf3f
commit c4d7d4f6bf
7 changed files with 461 additions and 211 deletions

315
.idea/workspace.xml generated
View File

@@ -2,23 +2,12 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="a0020f0b-7bf3-4cde-a27d-39657ebd0286" name="Default Changelist" comment=""> <list default="true" id="a0020f0b-7bf3-4cde-a27d-39657ebd0286" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/templates/events/event_images_form.html" afterDir="false" />
<change afterPath="$PROJECT_DIR$/templates/events/event_images_list.html" afterDir="false" />
<change afterPath="$PROJECT_DIR$/templates/events/example.html" afterDir="false" />
<change afterPath="$PROJECT_DIR$/templatetags/__init__.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/templatetags/form_filters.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/accounts/forms.py" beforeDir="false" afterPath="$PROJECT_DIR$/accounts/forms.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/accounts/forms.py" beforeDir="false" afterPath="$PROJECT_DIR$/accounts/forms.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/events/forms.py" beforeDir="false" afterPath="$PROJECT_DIR$/events/forms.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/accounts/views.py" beforeDir="false" afterPath="$PROJECT_DIR$/accounts/views.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/events/models.py" beforeDir="false" afterPath="$PROJECT_DIR$/events/models.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/eventify/settings.py" beforeDir="false" afterPath="$PROJECT_DIR$/eventify/settings.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/events/urls.py" beforeDir="false" afterPath="$PROJECT_DIR$/events/urls.py" afterDir="false" /> <change beforePath="$PROJECT_DIR$/eventify/urls.py" beforeDir="false" afterPath="$PROJECT_DIR$/eventify/urls.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/events/views.py" beforeDir="false" afterPath="$PROJECT_DIR$/events/views.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/master_data/forms.py" beforeDir="false" afterPath="$PROJECT_DIR$/master_data/forms.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/accounts/login.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/accounts/login.html" afterDir="false" /> <change beforePath="$PROJECT_DIR$/templates/accounts/login.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/accounts/login.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/accounts/user_form.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/accounts/user_form.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/events/event_form.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/events/event_form.html" afterDir="false" />
<change beforePath="$PROJECT_DIR$/templates/master_data/event_type_form.html" beforeDir="false" afterPath="$PROJECT_DIR$/templates/master_data/event_type_form.html" afterDir="false" />
</list> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
@@ -27,12 +16,12 @@
<option name="LAST_RESOLUTION" value="IGNORE" /> <option name="LAST_RESOLUTION" value="IGNORE" />
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/accounts/views.py"> <entry file="file://$PROJECT_DIR$/accounts/views.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="460"> <state relative-caret-position="-40">
<caret line="41" lean-forward="true" selection-start-line="41" selection-end-line="41" /> <caret line="13" column="38" lean-forward="true" selection-start-line="13" selection-start-column="38" selection-end-line="13" selection-end-column="38" />
<folding> <folding>
<element signature="e#0#35#0" expanded="true" /> <element signature="e#0#35#0" expanded="true" />
</folding> </folding>
@@ -40,11 +29,22 @@
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/accounts/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state>
<folding>
<element signature="e#0#28#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/eventify/urls.py"> <entry file="file://$PROJECT_DIR$/eventify/urls.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140"> <state relative-caret-position="220">
<caret line="7" column="28" selection-start-line="7" selection-start-column="28" selection-end-line="7" selection-end-column="28" /> <caret line="11" column="27" selection-start-line="11" selection-start-column="27" selection-end-line="11" selection-end-column="27" />
<folding> <folding>
<element signature="e#0#32#0" expanded="true" /> <element signature="e#0#32#0" expanded="true" />
</folding> </folding>
@@ -55,64 +55,17 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/accounts/login.html"> <entry file="file://$PROJECT_DIR$/templates/accounts/login.html">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240"> <state relative-caret-position="300">
<caret line="12" column="26" lean-forward="true" selection-end-line="41" /> <caret line="54" lean-forward="true" selection-start-line="54" selection-end-line="54" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templatetags/__init__.py"> <entry file="file://$PROJECT_DIR$/accounts/forms.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/templatetags/form_filters.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="100">
<caret line="5" column="42" selection-start-line="5" selection-start-column="42" selection-end-line="5" selection-end-column="42" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/events/views.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200"> <state relative-caret-position="200">
<caret line="86" column="44" lean-forward="true" selection-start-line="86" selection-start-column="44" selection-end-line="86" selection-end-column="44" /> <caret line="20" column="5" lean-forward="true" selection-start-line="20" selection-start-column="5" selection-end-line="20" selection-end-column="5" />
<folding>
<element signature="e#0#32#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/events/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="9" column="83" selection-start-line="9" selection-start-column="83" selection-end-line="9" selection-end-column="83" />
<folding>
<element signature="e#0#28#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/events/event_images_form.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
<caret line="34" column="14" lean-forward="true" selection-start-line="34" selection-start-column="14" selection-end-line="34" selection-end-column="14" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/events/forms.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="213">
<caret line="35" column="15" selection-start-line="35" selection-start-column="15" selection-end-line="35" selection-end-column="15" />
<folding> <folding>
<element signature="e#0#24#0" expanded="true" /> <element signature="e#0#24#0" expanded="true" />
</folding> </folding>
@@ -121,10 +74,45 @@
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/templates/events/event_images_list.html"> <entry file="file://$PROJECT_DIR$/templatetags/form_filters.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="200"> <state relative-caret-position="160">
<caret line="10" lean-forward="true" selection-start-line="10" selection-end-line="10" /> <caret line="8" selection-start-line="8" selection-end-line="8" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/eventify/settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="14" column="6" selection-start-line="14" selection-start-column="6" selection-end-line="14" selection-end-column="6" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/eventify/wsgi.py">
<provider selected="true" editor-type-id="text-editor">
<state>
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/events/forms.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="660">
<caret line="35" column="15" selection-start-line="35" selection-start-column="15" selection-end-line="35" selection-end-column="15" />
<folding>
<element signature="e#0#24#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
@@ -151,15 +139,18 @@
<option value="$PROJECT_DIR$/master_data/forms.py" /> <option value="$PROJECT_DIR$/master_data/forms.py" />
<option value="$PROJECT_DIR$/templates/master_data/event_type_form.html" /> <option value="$PROJECT_DIR$/templates/master_data/event_type_form.html" />
<option value="$PROJECT_DIR$/templates/accounts/user_form.html" /> <option value="$PROJECT_DIR$/templates/accounts/user_form.html" />
<option value="$PROJECT_DIR$/accounts/forms.py" />
<option value="$PROJECT_DIR$/templates/events/event_images_form.html" /> <option value="$PROJECT_DIR$/templates/events/event_images_form.html" />
<option value="$PROJECT_DIR$/templates/events/event_images_list.html" /> <option value="$PROJECT_DIR$/templates/events/event_images_list.html" />
<option value="$PROJECT_DIR$/events/urls.py" /> <option value="$PROJECT_DIR$/events/urls.py" />
<option value="$PROJECT_DIR$/events/views.py" /> <option value="$PROJECT_DIR$/events/views.py" />
<option value="$PROJECT_DIR$/events/forms.py" /> <option value="$PROJECT_DIR$/events/forms.py" />
<option value="$PROJECT_DIR$/templates/accounts/login.html" />
<option value="$PROJECT_DIR$/templatetags/__init__.py" /> <option value="$PROJECT_DIR$/templatetags/__init__.py" />
<option value="$PROJECT_DIR$/templatetags/form_filters.py" /> <option value="$PROJECT_DIR$/templatetags/form_filters.py" />
<option value="$PROJECT_DIR$/eventify/urls.py" />
<option value="$PROJECT_DIR$/accounts/forms.py" />
<option value="$PROJECT_DIR$/accounts/views.py" />
<option value="$PROJECT_DIR$/templates/accounts/login.html" />
<option value="$PROJECT_DIR$/eventify/settings.py" />
</list> </list>
</option> </option>
</component> </component>
@@ -186,7 +177,17 @@
<path> <path>
<item name="eventify_prod" type="b2602c69:ProjectViewProjectNode" /> <item name="eventify_prod" type="b2602c69:ProjectViewProjectNode" />
<item name="eventify_prod" type="462c0819:PsiDirectoryNode" /> <item name="eventify_prod" type="462c0819:PsiDirectoryNode" />
<item name="templatetags" type="462c0819:PsiDirectoryNode" /> <item name="accounts" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="eventify_prod" type="b2602c69:ProjectViewProjectNode" />
<item name="eventify_prod" type="462c0819:PsiDirectoryNode" />
<item name="eventify" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="eventify_prod" type="b2602c69:ProjectViewProjectNode" />
<item name="eventify_prod" type="462c0819:PsiDirectoryNode" />
<item name="templates" type="462c0819:PsiDirectoryNode" />
</path> </path>
</expand> </expand>
<select /> <select />
@@ -249,25 +250,28 @@
<option name="number" value="Default" /> <option name="number" value="Default" />
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1764194364815</updated> <updated>1764194364815</updated>
<workItem from="1764194366807" duration="9826000" /> <workItem from="1764194366807" duration="12589000" />
<workItem from="1764319665186" duration="1141000" />
</task> </task>
<task id="LOCAL-00001" summary="Changes in the settings for the deployment">
<created>1764280838609</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1764280838609</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="9826000" /> <option name="totallyTimeSpent" value="13730000" />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="-8" y="-8" width="1382" height="744" extended-state="6" /> <frame x="-8" y="-8" width="1382" height="744" extended-state="6" />
<layout> <layout>
<window_info id="Favorites" side_tool="true" /> <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.25416037" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.24962178" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="bottom" id="Docker" show_stripe_button="false" /> <window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Database Changes" />
<window_info anchor="bottom" id="Version Control" />
<window_info anchor="bottom" id="Python Console" />
<window_info active="true" anchor="bottom" id="Terminal" visible="true" weight="0.354201" />
<window_info anchor="bottom" id="Event Log" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" weight="0.32840723" /> <window_info anchor="bottom" id="Find" order="1" weight="0.32840723" />
<window_info anchor="bottom" id="Run" order="2" /> <window_info anchor="bottom" id="Run" order="2" />
@@ -275,23 +279,30 @@
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" /> <window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="right" id="SciView" /> <window_info anchor="bottom" id="Docker" order="7" show_stripe_button="false" />
<window_info anchor="right" id="Database" /> <window_info anchor="bottom" id="Version Control" order="8" />
<window_info anchor="bottom" id="Database Changes" order="9" />
<window_info anchor="bottom" id="Event Log" order="10" side_tool="true" />
<window_info active="true" anchor="bottom" id="Terminal" order="11" visible="true" weight="0.354201" />
<window_info anchor="bottom" id="Python Console" order="12" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="right" id="SciView" order="3" />
<window_info anchor="right" id="Database" order="4" />
</layout> </layout>
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" /> <option name="version" value="1" />
</component> </component>
<component name="VcsManagerConfiguration">
<MESSAGE value="Changes in the settings for the deployment" />
<option name="LAST_COMMIT_MESSAGE" value="Changes in the settings for the deployment" />
</component>
<component name="editorHistoryManager"> <component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/.env.example"> <entry file="file://$PROJECT_DIR$/.env.example">
<provider selected="true" editor-type-id="text-editor" /> <provider selected="true" editor-type-id="text-editor" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/requirements.txt">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/.gitignore"> <entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor" /> <provider selected="true" editor-type-id="text-editor" />
</entry> </entry>
@@ -322,22 +333,6 @@
<entry file="file://$PROJECT_DIR$/master_data/models.py"> <entry file="file://$PROJECT_DIR$/master_data/models.py">
<provider selected="true" editor-type-id="text-editor" /> <provider selected="true" editor-type-id="text-editor" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/templates/base.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="11" column="67" selection-start-line="11" selection-start-column="67" selection-end-line="11" selection-end-column="67" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/accounts/urls.py">
<provider selected="true" editor-type-id="text-editor">
<state>
<folding>
<element signature="e#0#28#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/master_data/urls.py"> <entry file="file://$PROJECT_DIR$/master_data/urls.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160"> <state relative-caret-position="160">
@@ -434,16 +429,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/accounts/forms.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="320">
<caret line="28" selection-start-line="28" selection-end-line="28" />
<folding>
<element signature="e#0#24#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/accounts/models.py"> <entry file="file://$PROJECT_DIR$/accounts/models.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="20"> <state relative-caret-position="20">
@@ -454,15 +439,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/eventify/settings.py">
<provider selected="true" editor-type-id="text-editor">
<state>
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/events/models.py"> <entry file="file://$PROJECT_DIR$/events/models.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="80"> <state relative-caret-position="80">
@@ -507,9 +483,45 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/requirements_1.txt">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/templates/base.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="540">
<caret line="27" column="90" selection-start-line="27" selection-start-column="90" selection-end-line="27" selection-end-column="90" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/requirements.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="40">
<caret line="2" selection-start-line="2" selection-end-line="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templatetags/__init__.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/templatetags/form_filters.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160">
<caret line="8" selection-start-line="8" selection-end-line="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/eventify/wsgi.py">
<provider selected="true" editor-type-id="text-editor">
<state>
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/events/forms.py"> <entry file="file://$PROJECT_DIR$/events/forms.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="213"> <state relative-caret-position="660">
<caret line="35" column="15" selection-start-line="35" selection-start-column="15" selection-end-line="35" selection-end-column="15" /> <caret line="35" column="15" selection-start-line="35" selection-start-column="15" selection-end-line="35" selection-end-column="15" />
<folding> <folding>
<element signature="e#0#24#0" expanded="true" /> <element signature="e#0#24#0" expanded="true" />
@@ -517,12 +529,11 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/accounts/views.py"> <entry file="file://$PROJECT_DIR$/accounts/urls.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="460"> <state>
<caret line="41" lean-forward="true" selection-start-line="41" selection-end-line="41" />
<folding> <folding>
<element signature="e#0#35#0" expanded="true" /> <element signature="e#0#28#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -536,28 +547,48 @@
</entry> </entry>
<entry file="file://$PROJECT_DIR$/eventify/urls.py"> <entry file="file://$PROJECT_DIR$/eventify/urls.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140"> <state relative-caret-position="220">
<caret line="7" column="28" selection-start-line="7" selection-start-column="28" selection-end-line="7" selection-end-column="28" /> <caret line="11" column="27" selection-start-line="11" selection-start-column="27" selection-end-line="11" selection-end-column="27" />
<folding> <folding>
<element signature="e#0#32#0" expanded="true" /> <element signature="e#0#32#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/templates/accounts/login.html"> <entry file="file://$PROJECT_DIR$/accounts/forms.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240"> <state relative-caret-position="200">
<caret line="12" column="26" lean-forward="true" selection-end-line="41" /> <caret line="20" column="5" lean-forward="true" selection-start-line="20" selection-start-column="5" selection-end-line="20" selection-end-column="5" />
<folding>
<element signature="e#0#24#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/templatetags/__init__.py"> <entry file="file://$PROJECT_DIR$/accounts/views.py">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/templatetags/form_filters.py">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="100"> <state relative-caret-position="-40">
<caret line="5" column="42" selection-start-line="5" selection-start-column="42" selection-end-line="5" selection-end-column="42" /> <caret line="13" column="38" lean-forward="true" selection-start-line="13" selection-start-column="38" selection-end-line="13" selection-end-column="38" />
<folding>
<element signature="e#0#35#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/templates/accounts/login.html">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="300">
<caret line="54" lean-forward="true" selection-start-line="54" selection-end-line="54" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/eventify/settings.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="14" column="6" selection-start-line="14" selection-start-column="6" selection-end-line="14" selection-end-column="6" />
<folding>
<element signature="e#0#9#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>

View File

@@ -2,31 +2,26 @@ from django import forms
from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth.forms import AuthenticationForm
from .models import User from .models import User
from django import forms
class UserForm(UserCreationForm): class UserForm(AuthenticationForm):
class Meta:
model = User
fields = ('username', 'email', 'phone_number', 'role',
'is_staff', 'is_customer', 'is_user')
widgets = {
'username': forms.TextInput(attrs={'class': 'form-control form-control-sm'}),
'email': forms.EmailInput(attrs={'class': 'form-control form-control-sm'}),
'phone_number': forms.TextInput(attrs={'class': 'form-control form-control-sm'}),
'role': forms.Select(attrs={'class': 'form-select form-select-sm'}),
'is_staff': forms.CheckboxInput(attrs={'class': 'form-check-input'}),
'is_customer': forms.CheckboxInput(attrs={'class': 'form-check-input'}),
'is_user': forms.CheckboxInput(attrs={'class': 'form-check-input'}),
}
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
for field in self.fields.values():
# Apply bootstrap small styling to password fields field.widget.attrs.update({"class": "form-control"})
self.fields['password1'].widget.attrs.update({'class': 'form-control form-control-sm'})
self.fields['password2'].widget.attrs.update({'class': 'form-control form-control-sm'})
class LoginForm(AuthenticationForm): class LoginForm(AuthenticationForm):
pass username = forms.CharField(
widget=forms.TextInput(attrs={
"class": "form-control",
"placeholder": "Enter username"
})
)
password = forms.CharField(
widget=forms.PasswordInput(attrs={
"class": "form-control",
"placeholder": "Enter password"
})
)

View File

@@ -3,10 +3,16 @@ from django.views import generic
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from .models import User from .models import User
from .forms import LoginForm
from .forms import UserForm from .forms import UserForm
from events.models import Event from events.models import Event
from master_data.models import EventType from master_data.models import EventType
from django.contrib.auth import authenticate, login, logout
from django.shortcuts import redirect
from django.contrib import messages
def dashboard(request): def dashboard(request):
total_events = Event.objects.count() total_events = Event.objects.count()
total_categories = EventType.objects.count() total_categories = EventType.objects.count()
@@ -17,25 +23,51 @@ def dashboard(request):
'total_users': total_users, 'total_users': total_users,
}) })
class UserListView(LoginRequiredMixin, generic.ListView): class UserListView(LoginRequiredMixin, generic.ListView):
model = User model = User
template_name = 'accounts/user_list.html' template_name = 'accounts/user_list.html'
context_object_name = 'users' context_object_name = 'users'
paginate_by = 20 paginate_by = 20
class UserCreateView(LoginRequiredMixin, generic.CreateView): class UserCreateView(LoginRequiredMixin, generic.CreateView):
model = User model = User
form_class = UserForm form_class = UserForm
template_name = 'accounts/user_form.html' template_name = 'accounts/user_form.html'
success_url = reverse_lazy('accounts:user_list') success_url = reverse_lazy('accounts:user_list')
class UserUpdateView(LoginRequiredMixin, generic.UpdateView): class UserUpdateView(LoginRequiredMixin, generic.UpdateView):
model = User model = User
form_class = UserForm form_class = UserForm
template_name = 'accounts/user_form.html' template_name = 'accounts/user_form.html'
success_url = reverse_lazy('accounts:user_list') success_url = reverse_lazy('accounts:user_list')
class UserDeleteView(LoginRequiredMixin, generic.DeleteView): class UserDeleteView(LoginRequiredMixin, generic.DeleteView):
model = User model = User
template_name = 'accounts/user_confirm_delete.html' template_name = 'accounts/user_confirm_delete.html'
success_url = reverse_lazy('accounts:user_list') success_url = reverse_lazy('accounts:user_list')
def login_view(request):
if request.user.is_authenticated:
return redirect("home") # Redirect authenticated user
form = LoginForm(request, data=request.POST or None)
if request.method == "POST":
if form.is_valid():
user = form.get_user()
login(request, user)
return redirect("dashboard")
else:
messages.error(request, "Invalid username or password")
return render(request, "accounts/login.html", {"form": form})
def logout_view(request):
logout(request)
return redirect("login")

View File

@@ -9,11 +9,10 @@ SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', 'change-me-in-production')
# #
# ALLOWED_HOSTS = os.environ.get('DJANGO_ALLOWED_HOSTS', '*').split(',') # ALLOWED_HOSTS = os.environ.get('DJANGO_ALLOWED_HOSTS', '*').split(',')
DEBUG = False DEBUG = True
ALLOWED_HOSTS = [ ALLOWED_HOSTS = [
'216.48.180.218', '*'
'uat.eventify.com'
] ]
INSTALLED_APPS = [ INSTALLED_APPS = [

View File

@@ -2,11 +2,15 @@ from django.contrib import admin
from django.urls import path, include from django.urls import path, include
from django.contrib.auth import views as auth_views from django.contrib.auth import views as auth_views
from accounts.views import dashboard from accounts.views import dashboard
from accounts.views import login_view
from accounts.views import logout_view
urlpatterns = [ urlpatterns = [
path('admin/', admin.site.urls), path('admin/', admin.site.urls),
path('', auth_views.LoginView.as_view(template_name='accounts/login.html'), name='login'), # path('', auth_views.LoginView.as_view(template_name='accounts/login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(), name='logout'), # path('logout/', auth_views.LogoutView.as_view(), name='logout'),
path("", login_view, name="login"),
path("logout/", logout_view, name="logout"),
path('dashboard/', dashboard, name='dashboard'), path('dashboard/', dashboard, name='dashboard'),
path('master-data/', include('master_data.urls')), path('master-data/', include('master_data.urls')),

189
requirements_1.txt Normal file
View File

@@ -0,0 +1,189 @@
2to3==1.0
aiohappyeyeballs==2.4.4
aiohttp==3.10.11
aiosignal==1.3.1
annotated-types==0.7.0
anyio==4.0.0
appdirs==1.4.4
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asgiref==3.8.1
asttokens==2.4.0
async-lru==2.0.4
async-timeout==5.0.1
attrs==23.1.0
autobahn==22.7.1
Automat==22.10.0
Babel==2.13.0
backcall==0.2.0
backports.zoneinfo==0.2.1
beautifulsoup4==4.12.2
bleach==6.1.0
bs4==0.0.1
cachetools==4.2.2
cbor2==5.4.3
certifi==2023.11.17
cffi==1.14.5
channels==4.2.2
chardet==4.0.0
charset-normalizer==3.3.2
click==8.1.8
colorama==0.4.6
comm==0.1.4
constantly==15.1.0
cryptography==3.4.7
debugpy==1.8.0
decorator==5.1.1
defusedxml==0.7.1
distlib==0.3.1
Django==4.2.21
django-cors-headers==4.3.0
django-extensions==3.2.3
django-mssql==1.8
django-pyodbc-azure==1.2.5
djangorestframework==3.14.0
docopt==0.6.2
docx2python==3.0.0
enma==1.0
et-xmlfile==1.1.0
exceptiongroup==1.1.3
executing==2.0.0
fastapi==0.115.12
fastjsonschema==2.18.1
filelock==3.0.12
flatbuffers==22.10.26
fqdn==1.5.1
frozenlist==1.5.0
google-api-core==1.26.3
google-api-python-client==2.2.0
google-auth==1.30.0
google-auth-httplib2==0.1.0
googleapis-common-protos==1.53.0
greenlet==3.1.1
h11==0.16.0
httplib2==0.19.1
hyperlink==21.0.0
idna==3.6
importlib-metadata==6.8.0
importlib-resources==6.1.0
incremental==22.10.0
ipykernel==6.25.2
ipython==8.12.3
isoduration==20.11.0
jedi==0.19.1
Jinja2==3.1.2
json5==0.9.14
jsonpointer==2.4
jsonschema==4.19.1
jsonschema-specifications==2023.7.1
jupyter-events==0.7.0
jupyter-lsp==2.2.0
jupyter_client==8.3.1
jupyter_core==5.3.2
jupyter_server==2.7.3
jupyter_server_terminals==0.4.4
jupyterlab==4.0.6
jupyterlab-pygments==0.2.2
jupyterlab_server==2.25.0
lxml==5.2.2
MarkupSafe==2.1.3
matplotlib-inline==0.1.6
mistune==3.0.2
msgpack==1.0.4
mssql-django==1.3
multidict==6.1.0
nbclient==0.8.0
nbconvert==7.16.6
nbformat==5.9.2
nest-asyncio==1.5.8
notebook==7.0.4
notebook_shim==0.2.3
numpy==1.21.2
openpyxl==3.1.2
overrides==7.4.0
packaging==23.2
pandas==1.3.3
pandocfilters==1.5.0
paragraphs==0.2.1
parso==0.8.3
pdfkit==1.0.0
pickleshare==0.7.5
Pillow==10.1.0
pipreqs==0.5.0
pkgutil_resolve_name==1.3.10
platformdirs==3.11.0
prometheus-client==0.17.1
prompt-toolkit==3.0.39
propcache==0.2.0
protobuf==3.15.8
psutil==5.9.5
psycopg2-binary==2.9.9
pure-eval==0.2.2
py-ubjson==0.16.1
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycparser==2.20
pycryptodome==3.9.8
pydantic==2.10.6
pydantic_core==2.27.2
Pygments==2.16.1
pymssql==2.2.10
pyodbc==5.0.1
pyOpenSSL==20.0.1
pyparsing==2.4.7
PyPDF2==3.0.1
python-dateutil==2.8.2
python-docx==1.1.2
python-google-calendar-api==0.5
python-json-logger==2.0.7
python-snappy==0.6.1
pytz==2023.3.post1
pywin32==306
pywinpty==2.0.12
PyYAML==6.0.1
pyzmq==25.1.1
referencing==0.30.2
reportlab==4.0.6
requests==2.31.0
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rpds-py==0.10.4
rsa==4.6
Send2Trash==1.8.2
six==1.15.0
sniffio==1.3.0
soupsieve==2.5
SQLAlchemy==2.0.41
sqlmodel==0.0.24
sqlparse==0.4.4
stack-data==0.6.3
starlette==0.44.0
terminado==0.17.1
tinycss2==1.2.1
tomli==2.0.1
tornado==6.3.3
traitlets==5.11.2
Twisted==22.10.0
twisted-iocpsupport==1.0.2
txaio==22.2.1
types-python-dateutil==2.8.19.14
typing_extensions==4.12.2
tzdata==2025.2
ujson==5.5.0
uri-template==1.3.0
uritemplate==3.0.1
urllib3==2.1.0
uvicorn==0.33.0
virtualenv==20.0.31
wcwidth==0.2.8
webcolors==1.13
webencodings==0.5.1
websocket-client==1.6.3
websockets==13.1
WMI==1.5.1
xlwt==1.3.0
yarg==0.1.9
yarl==1.15.2
zipp==3.17.0
zope.interface==5.5.0

View File

@@ -1,54 +1,54 @@
{% extends 'base.html' %} {% load static %}
{% block content %} <!DOCTYPE html>
<html>
<head>
<title>Login</title>
<link
href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
rel="stylesheet">
</head>
<div class="row justify-content-center mt-5"> <body class="bg-light">
<div class="container d-flex justify-content-center mt-5">
<div class="col-md-4"> <div class="col-md-4">
<div class="card shadow-sm border-0 rounded-3"> <div class="card shadow-sm p-4">
<div class="card-body p-4">
<h3 class="text-center mb-4">Login</h3> <h4 class="text-center mb-3">Login</h4>
{% if messages %}
{% for message in messages %}
<div class="alert alert-danger py-2">{{ message }}</div>
{% endfor %}
{% endif %}
<form method="post" novalidate> <form method="post" novalidate>
{% csrf_token %} {% csrf_token %}
{{ form.non_field_errors }}
<!-- Username field -->
<div class="mb-3"> <div class="mb-3">
<label class="form-label">{{ form.username.label }}</label> {{ form.username.label_tag }}
<input {{ form.username }}
type="text" {% for error in form.username.errors %}
name="{{ form.username.name }}" <small class="text-danger">{{ error }}</small>
value="{{ form.username.value|default:'' }}" {% endfor %}
class="form-control"
placeholder="Enter username"
required
>
{{ form.username.errors }}
</div> </div>
<!-- Password field -->
<div class="mb-3"> <div class="mb-3">
<label class="form-label">{{ form.password.label }}</label> {{ form.password.label_tag }}
<input {{ form.password }}
type="password" {% for error in form.password.errors %}
name="{{ form.password.name }}" <small class="text-danger">{{ error }}</small>
class="form-control" {% endfor %}
placeholder="Enter password"
required
>
{{ form.password.errors }}
</div> </div>
<button type="submit" class="btn btn-primary w-100"> <button class="btn btn-primary w-100">Login</button>
Login
</button>
</form> </form>
</div> </div>
</div>
</div> </div>
</div> </div>
{% endblock %} </body>
</html>