diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml deleted file mode 100644 index 105ce2d..0000000 --- a/.idea/inspectionProfiles/profiles_settings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 492648b..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 8eec2f9..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/skyonnweb.iml b/.idea/skyonnweb.iml deleted file mode 100644 index 74d515a..0000000 --- a/.idea/skyonnweb.iml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/skyonnweb/007.docx b/skyonnweb/007.docx new file mode 100644 index 0000000..3333194 Binary files /dev/null and b/skyonnweb/007.docx differ diff --git a/skyonnweb/media/007.docx b/skyonnweb/media/007.docx new file mode 100644 index 0000000..52dd860 Binary files /dev/null and b/skyonnweb/media/007.docx differ diff --git a/skyonnweb/media/100001.pdf b/skyonnweb/media/100001.pdf new file mode 100644 index 0000000..2c4f9f2 Binary files /dev/null and b/skyonnweb/media/100001.pdf differ diff --git a/skyonnweb/media/1001.docx b/skyonnweb/media/1001.docx new file mode 100644 index 0000000..dbf3ffc Binary files /dev/null and b/skyonnweb/media/1001.docx differ diff --git a/skyonnweb/media/1001_1vmm3qO.docx b/skyonnweb/media/1001_1vmm3qO.docx new file mode 100644 index 0000000..dbf3ffc Binary files /dev/null and b/skyonnweb/media/1001_1vmm3qO.docx differ diff --git a/skyonnweb/media/1001_FZ56zrZ.docx b/skyonnweb/media/1001_FZ56zrZ.docx new file mode 100644 index 0000000..dbf3ffc Binary files /dev/null and b/skyonnweb/media/1001_FZ56zrZ.docx differ diff --git a/skyonnweb/media/1001_k2oz1xX.docx b/skyonnweb/media/1001_k2oz1xX.docx new file mode 100644 index 0000000..dbf3ffc Binary files /dev/null and b/skyonnweb/media/1001_k2oz1xX.docx differ diff --git a/skyonnweb/media/1010.pdf b/skyonnweb/media/1010.pdf new file mode 100644 index 0000000..955e36c Binary files /dev/null and b/skyonnweb/media/1010.pdf differ diff --git a/skyonnweb/media/1111.docx b/skyonnweb/media/1111.docx new file mode 100644 index 0000000..74069fd Binary files /dev/null and b/skyonnweb/media/1111.docx differ diff --git a/skyonnweb/media/1111.pdf b/skyonnweb/media/1111.pdf new file mode 100644 index 0000000..7a78ff4 Binary files /dev/null and b/skyonnweb/media/1111.pdf differ diff --git a/skyonnweb/media/11112.docx b/skyonnweb/media/11112.docx new file mode 100644 index 0000000..3333194 Binary files /dev/null and b/skyonnweb/media/11112.docx differ diff --git a/skyonnweb/media/1122.docx b/skyonnweb/media/1122.docx new file mode 100644 index 0000000..74069fd Binary files /dev/null and b/skyonnweb/media/1122.docx differ diff --git a/skyonnweb/media/122.docx b/skyonnweb/media/122.docx new file mode 100644 index 0000000..3333194 Binary files /dev/null and b/skyonnweb/media/122.docx differ diff --git a/skyonnweb/media/122000.docx b/skyonnweb/media/122000.docx new file mode 100644 index 0000000..3333194 Binary files /dev/null and b/skyonnweb/media/122000.docx differ diff --git a/skyonnweb/media/1234.docx b/skyonnweb/media/1234.docx new file mode 100644 index 0000000..52dd860 Binary files /dev/null and b/skyonnweb/media/1234.docx differ diff --git a/skyonnweb/media/1234.pdf b/skyonnweb/media/1234.pdf new file mode 100644 index 0000000..5cfadb9 Binary files /dev/null and b/skyonnweb/media/1234.pdf differ diff --git a/skyonnweb/media/12345.docx b/skyonnweb/media/12345.docx new file mode 100644 index 0000000..52dd860 Binary files /dev/null and b/skyonnweb/media/12345.docx differ diff --git a/skyonnweb/media/1234_YMaBUYe.pdf b/skyonnweb/media/1234_YMaBUYe.pdf new file mode 100644 index 0000000..7a78ff4 Binary files /dev/null and b/skyonnweb/media/1234_YMaBUYe.pdf differ diff --git a/skyonnweb/media/1234_qNVO1jG.pdf b/skyonnweb/media/1234_qNVO1jG.pdf new file mode 100644 index 0000000..5cfadb9 Binary files /dev/null and b/skyonnweb/media/1234_qNVO1jG.pdf differ diff --git a/skyonnweb/media/12w.docx b/skyonnweb/media/12w.docx new file mode 100644 index 0000000..3333194 Binary files /dev/null and b/skyonnweb/media/12w.docx differ diff --git a/skyonnweb/media/144.docx b/skyonnweb/media/144.docx new file mode 100644 index 0000000..d11c3a0 Binary files /dev/null and b/skyonnweb/media/144.docx differ diff --git a/skyonnweb/media/2000.docx b/skyonnweb/media/2000.docx new file mode 100644 index 0000000..dbf3ffc Binary files /dev/null and b/skyonnweb/media/2000.docx differ diff --git a/skyonnweb/media/200004.docx b/skyonnweb/media/200004.docx new file mode 100644 index 0000000..3333194 Binary files /dev/null and b/skyonnweb/media/200004.docx differ diff --git a/skyonnweb/media/20003.pdf b/skyonnweb/media/20003.pdf new file mode 100644 index 0000000..955e36c Binary files /dev/null and b/skyonnweb/media/20003.pdf differ diff --git a/skyonnweb/media/2001.docx b/skyonnweb/media/2001.docx new file mode 100644 index 0000000..dbf3ffc Binary files /dev/null and b/skyonnweb/media/2001.docx differ diff --git a/skyonnweb/media/2222.pdf b/skyonnweb/media/2222.pdf new file mode 100644 index 0000000..7a78ff4 Binary files /dev/null and b/skyonnweb/media/2222.pdf differ diff --git a/skyonnweb/media/22222.pdf b/skyonnweb/media/22222.pdf new file mode 100644 index 0000000..0f8b088 Binary files /dev/null and b/skyonnweb/media/22222.pdf differ diff --git a/skyonnweb/media/2WWWW.docx b/skyonnweb/media/2WWWW.docx new file mode 100644 index 0000000..52dd860 Binary files /dev/null and b/skyonnweb/media/2WWWW.docx differ diff --git a/skyonnweb/media/2WWWW_ryfaDVl.docx b/skyonnweb/media/2WWWW_ryfaDVl.docx new file mode 100644 index 0000000..dbf3ffc Binary files /dev/null and b/skyonnweb/media/2WWWW_ryfaDVl.docx differ diff --git a/skyonnweb/media/3000.docx b/skyonnweb/media/3000.docx new file mode 100644 index 0000000..dbf3ffc Binary files /dev/null and b/skyonnweb/media/3000.docx differ diff --git a/skyonnweb/media/3000.pdf b/skyonnweb/media/3000.pdf new file mode 100644 index 0000000..2c4f9f2 Binary files /dev/null and b/skyonnweb/media/3000.pdf differ diff --git a/skyonnweb/media/350.docx b/skyonnweb/media/350.docx new file mode 100644 index 0000000..d11c3a0 Binary files /dev/null and b/skyonnweb/media/350.docx differ diff --git a/skyonnweb/media/4000.pdf b/skyonnweb/media/4000.pdf new file mode 100644 index 0000000..2c4f9f2 Binary files /dev/null and b/skyonnweb/media/4000.pdf differ diff --git a/skyonnweb/media/40000.docx b/skyonnweb/media/40000.docx new file mode 100644 index 0000000..3333194 Binary files /dev/null and b/skyonnweb/media/40000.docx differ diff --git a/skyonnweb/media/4567.docx b/skyonnweb/media/4567.docx new file mode 100644 index 0000000..74069fd Binary files /dev/null and b/skyonnweb/media/4567.docx differ diff --git a/skyonnweb/media/4567.pdf b/skyonnweb/media/4567.pdf new file mode 100644 index 0000000..5cfadb9 Binary files /dev/null and b/skyonnweb/media/4567.pdf differ diff --git a/skyonnweb/media/5000.docx b/skyonnweb/media/5000.docx new file mode 100644 index 0000000..3333194 Binary files /dev/null and b/skyonnweb/media/5000.docx differ diff --git a/skyonnweb/media/7000.docx b/skyonnweb/media/7000.docx new file mode 100644 index 0000000..74069fd Binary files /dev/null and b/skyonnweb/media/7000.docx differ diff --git a/skyonnweb/media/786.docx b/skyonnweb/media/786.docx new file mode 100644 index 0000000..d11c3a0 Binary files /dev/null and b/skyonnweb/media/786.docx differ diff --git a/skyonnweb/media/9876.pdf b/skyonnweb/media/9876.pdf new file mode 100644 index 0000000..5cfadb9 Binary files /dev/null and b/skyonnweb/media/9876.pdf differ diff --git a/skyonnweb/media/9876_uWKMpAx.pdf b/skyonnweb/media/9876_uWKMpAx.pdf new file mode 100644 index 0000000..7a78ff4 Binary files /dev/null and b/skyonnweb/media/9876_uWKMpAx.pdf differ diff --git a/skyonnweb/media/CGEMPJP00233848.docx b/skyonnweb/media/CGEMPJP00233848.docx new file mode 100644 index 0000000..d11c3a0 Binary files /dev/null and b/skyonnweb/media/CGEMPJP00233848.docx differ diff --git a/skyonnweb/media/JI7865.docx b/skyonnweb/media/JI7865.docx new file mode 100644 index 0000000..d11c3a0 Binary files /dev/null and b/skyonnweb/media/JI7865.docx differ diff --git a/skyonnweb/media/ORN1234567.pdf b/skyonnweb/media/ORN1234567.pdf new file mode 100644 index 0000000..2c4f9f2 Binary files /dev/null and b/skyonnweb/media/ORN1234567.pdf differ diff --git a/skyonnweb/media/a.docx b/skyonnweb/media/a.docx new file mode 100644 index 0000000..dbf3ffc Binary files /dev/null and b/skyonnweb/media/a.docx differ diff --git a/skyonnweb/media/a_6p6oUgN.docx b/skyonnweb/media/a_6p6oUgN.docx new file mode 100644 index 0000000..52dd860 Binary files /dev/null and b/skyonnweb/media/a_6p6oUgN.docx differ diff --git a/skyonnweb/media/hjuu89.docx b/skyonnweb/media/hjuu89.docx new file mode 100644 index 0000000..dbf3ffc Binary files /dev/null and b/skyonnweb/media/hjuu89.docx differ diff --git a/skyonnweb/media/laxmi1223.pdf b/skyonnweb/media/laxmi1223.pdf new file mode 100644 index 0000000..2c4f9f2 Binary files /dev/null and b/skyonnweb/media/laxmi1223.pdf differ diff --git a/skyonnweb/media/laxmi1223_YQdQ5xn.pdf b/skyonnweb/media/laxmi1223_YQdQ5xn.pdf new file mode 100644 index 0000000..2c4f9f2 Binary files /dev/null and b/skyonnweb/media/laxmi1223_YQdQ5xn.pdf differ diff --git a/skyonnweb/media/laxmi89.pdf b/skyonnweb/media/laxmi89.pdf new file mode 100644 index 0000000..9f98083 Binary files /dev/null and b/skyonnweb/media/laxmi89.pdf differ diff --git a/skyonnweb/media/laxni87.pdf b/skyonnweb/media/laxni87.pdf new file mode 100644 index 0000000..9f98083 Binary files /dev/null and b/skyonnweb/media/laxni87.pdf differ diff --git a/skyonnweb/media/profile_pics/5.jpg b/skyonnweb/media/profile_pics/5.jpg new file mode 100644 index 0000000..3743e6c Binary files /dev/null and b/skyonnweb/media/profile_pics/5.jpg differ diff --git a/skyonnweb/media/profile_pics/images.html b/skyonnweb/media/profile_pics/images.html new file mode 100644 index 0000000..a14fda3 --- /dev/null +++ b/skyonnweb/media/profile_pics/images.html @@ -0,0 +1,7 @@ + + +
+ +
+ + diff --git a/skyonnweb/media/profile_pics/images_TZObiZb.html b/skyonnweb/media/profile_pics/images_TZObiZb.html new file mode 100644 index 0000000..a14fda3 --- /dev/null +++ b/skyonnweb/media/profile_pics/images_TZObiZb.html @@ -0,0 +1,7 @@ + + +
+ +
+ + diff --git a/skyonnweb/media/profile_pics/laxmi2.jpg b/skyonnweb/media/profile_pics/laxmi2.jpg new file mode 100644 index 0000000..bcf8f94 Binary files /dev/null and b/skyonnweb/media/profile_pics/laxmi2.jpg differ diff --git a/skyonnweb/media/profile_pics/laxmi4.jpg b/skyonnweb/media/profile_pics/laxmi4.jpg new file mode 100644 index 0000000..5750dcb Binary files /dev/null and b/skyonnweb/media/profile_pics/laxmi4.jpg differ diff --git a/skyonnweb/media/profile_pics/laxmi4_DVzJEX7.jpg b/skyonnweb/media/profile_pics/laxmi4_DVzJEX7.jpg new file mode 100644 index 0000000..5750dcb Binary files /dev/null and b/skyonnweb/media/profile_pics/laxmi4_DVzJEX7.jpg differ diff --git a/skyonnweb/media/profile_pics/laxmi6.jpg b/skyonnweb/media/profile_pics/laxmi6.jpg new file mode 100644 index 0000000..1523635 Binary files /dev/null and b/skyonnweb/media/profile_pics/laxmi6.jpg differ diff --git a/skyonnweb/media/profile_pics/motion-sensor_11256354.png b/skyonnweb/media/profile_pics/motion-sensor_11256354.png new file mode 100644 index 0000000..f377ad5 Binary files /dev/null and b/skyonnweb/media/profile_pics/motion-sensor_11256354.png differ diff --git a/skyonnweb/media/tcslucky234.docx b/skyonnweb/media/tcslucky234.docx new file mode 100644 index 0000000..3333194 Binary files /dev/null and b/skyonnweb/media/tcslucky234.docx differ diff --git a/skyonnweb/profile_pics/001_-_Admin_Dashboard_-.png b/skyonnweb/profile_pics/001_-_Admin_Dashboard_-.png deleted file mode 100644 index a05250c..0000000 Binary files a/skyonnweb/profile_pics/001_-_Admin_Dashboard_-.png and /dev/null differ diff --git a/skyonnweb/profile_pics/001_-_Admin_Dashboard_-_WRKZrun.png b/skyonnweb/profile_pics/001_-_Admin_Dashboard_-_WRKZrun.png deleted file mode 100644 index a05250c..0000000 Binary files a/skyonnweb/profile_pics/001_-_Admin_Dashboard_-_WRKZrun.png and /dev/null differ diff --git a/skyonnweb/profile_pics/001_-_Admin_Dashboard_-_bJymqUf.png b/skyonnweb/profile_pics/001_-_Admin_Dashboard_-_bJymqUf.png deleted file mode 100644 index a05250c..0000000 Binary files a/skyonnweb/profile_pics/001_-_Admin_Dashboard_-_bJymqUf.png and /dev/null differ diff --git a/skyonnweb/profile_pics/001_-_Admin_Dashboard_-_l2c3o5F.png b/skyonnweb/profile_pics/001_-_Admin_Dashboard_-_l2c3o5F.png deleted file mode 100644 index a05250c..0000000 Binary files a/skyonnweb/profile_pics/001_-_Admin_Dashboard_-_l2c3o5F.png and /dev/null differ diff --git a/skyonnweb/profile_pics/0391605a-c602-4996-94f1-a2e8ce0c7e2d.webm b/skyonnweb/profile_pics/0391605a-c602-4996-94f1-a2e8ce0c7e2d.webm deleted file mode 100644 index 348e348..0000000 Binary files a/skyonnweb/profile_pics/0391605a-c602-4996-94f1-a2e8ce0c7e2d.webm and /dev/null differ diff --git a/skyonnweb/profile_pics/2762751.jpg b/skyonnweb/profile_pics/2762751.jpg deleted file mode 100644 index 4bda14b..0000000 Binary files a/skyonnweb/profile_pics/2762751.jpg and /dev/null differ diff --git a/skyonnweb/profile_pics/2762751_npMMFLh.jpg b/skyonnweb/profile_pics/2762751_npMMFLh.jpg deleted file mode 100644 index 4bda14b..0000000 Binary files a/skyonnweb/profile_pics/2762751_npMMFLh.jpg and /dev/null differ diff --git a/skyonnweb/profile_pics/2762751_rA3oUct.jpg b/skyonnweb/profile_pics/2762751_rA3oUct.jpg deleted file mode 100644 index 4bda14b..0000000 Binary files a/skyonnweb/profile_pics/2762751_rA3oUct.jpg and /dev/null differ diff --git a/skyonnweb/profile_pics/Login_page_in_HTML.png b/skyonnweb/profile_pics/Login_page_in_HTML.png deleted file mode 100644 index 228b404..0000000 Binary files a/skyonnweb/profile_pics/Login_page_in_HTML.png and /dev/null differ diff --git a/skyonnweb/profile_pics/Login_page_in_HTML_ODqHEPB.png b/skyonnweb/profile_pics/Login_page_in_HTML_ODqHEPB.png deleted file mode 100644 index 228b404..0000000 Binary files a/skyonnweb/profile_pics/Login_page_in_HTML_ODqHEPB.png and /dev/null differ diff --git a/skyonnweb/profile_pics/Manager_Dashboard.png b/skyonnweb/profile_pics/Manager_Dashboard.png deleted file mode 100644 index a3367a1..0000000 Binary files a/skyonnweb/profile_pics/Manager_Dashboard.png and /dev/null differ diff --git a/skyonnweb/profile_pics/Manager_Dashboard_BJH5c4E.png b/skyonnweb/profile_pics/Manager_Dashboard_BJH5c4E.png deleted file mode 100644 index a3367a1..0000000 Binary files a/skyonnweb/profile_pics/Manager_Dashboard_BJH5c4E.png and /dev/null differ diff --git a/skyonnweb/profile_pics/Manager_Dashboard_Bu1yh5a.png b/skyonnweb/profile_pics/Manager_Dashboard_Bu1yh5a.png deleted file mode 100644 index a3367a1..0000000 Binary files a/skyonnweb/profile_pics/Manager_Dashboard_Bu1yh5a.png and /dev/null differ diff --git a/skyonnweb/profile_pics/Manager_Dashboard_DVGDNYK.png b/skyonnweb/profile_pics/Manager_Dashboard_DVGDNYK.png deleted file mode 100644 index a3367a1..0000000 Binary files a/skyonnweb/profile_pics/Manager_Dashboard_DVGDNYK.png and /dev/null differ diff --git a/skyonnweb/profile_pics/Manager_Dashboard_JjtBMGB.png b/skyonnweb/profile_pics/Manager_Dashboard_JjtBMGB.png deleted file mode 100644 index a3367a1..0000000 Binary files a/skyonnweb/profile_pics/Manager_Dashboard_JjtBMGB.png and /dev/null differ diff --git a/skyonnweb/profile_pics/Manager_Dashboard_QmrcdRE.png b/skyonnweb/profile_pics/Manager_Dashboard_QmrcdRE.png deleted file mode 100644 index a3367a1..0000000 Binary files a/skyonnweb/profile_pics/Manager_Dashboard_QmrcdRE.png and /dev/null differ diff --git a/skyonnweb/profile_pics/New_Job_Posting_-.png b/skyonnweb/profile_pics/New_Job_Posting_-.png deleted file mode 100644 index 26751a1..0000000 Binary files a/skyonnweb/profile_pics/New_Job_Posting_-.png and /dev/null differ diff --git a/skyonnweb/profile_pics/New_Job_Posting_-_1AwS2ng.png b/skyonnweb/profile_pics/New_Job_Posting_-_1AwS2ng.png deleted file mode 100644 index 26751a1..0000000 Binary files a/skyonnweb/profile_pics/New_Job_Posting_-_1AwS2ng.png and /dev/null differ diff --git a/skyonnweb/profile_pics/New_Job_Posting_-_3lCtXfC.png b/skyonnweb/profile_pics/New_Job_Posting_-_3lCtXfC.png deleted file mode 100644 index 26751a1..0000000 Binary files a/skyonnweb/profile_pics/New_Job_Posting_-_3lCtXfC.png and /dev/null differ diff --git a/skyonnweb/profile_pics/New_Job_Posting_-_72XBNEo.png b/skyonnweb/profile_pics/New_Job_Posting_-_72XBNEo.png deleted file mode 100644 index 26751a1..0000000 Binary files a/skyonnweb/profile_pics/New_Job_Posting_-_72XBNEo.png and /dev/null differ diff --git a/skyonnweb/profile_pics/New_Job_Posting_-_qd0gaPT.png b/skyonnweb/profile_pics/New_Job_Posting_-_qd0gaPT.png deleted file mode 100644 index 26751a1..0000000 Binary files a/skyonnweb/profile_pics/New_Job_Posting_-_qd0gaPT.png and /dev/null differ diff --git a/skyonnweb/profile_pics/Screenshot_1.png b/skyonnweb/profile_pics/Screenshot_1.png deleted file mode 100644 index 3c5ba30..0000000 Binary files a/skyonnweb/profile_pics/Screenshot_1.png and /dev/null differ diff --git a/skyonnweb/profile_pics/Screenshot_2024-03-06_125339.png b/skyonnweb/profile_pics/Screenshot_2024-03-06_125339.png deleted file mode 100644 index 9de84ca..0000000 Binary files a/skyonnweb/profile_pics/Screenshot_2024-03-06_125339.png and /dev/null differ diff --git a/skyonnweb/profile_pics/Screenshot_2024-03-06_125421.png b/skyonnweb/profile_pics/Screenshot_2024-03-06_125421.png deleted file mode 100644 index 5bd47ad..0000000 Binary files a/skyonnweb/profile_pics/Screenshot_2024-03-06_125421.png and /dev/null differ diff --git a/skyonnweb/profile_pics/Screenshot_2024-03-06_125421_e6790TX.png b/skyonnweb/profile_pics/Screenshot_2024-03-06_125421_e6790TX.png deleted file mode 100644 index 5bd47ad..0000000 Binary files a/skyonnweb/profile_pics/Screenshot_2024-03-06_125421_e6790TX.png and /dev/null differ diff --git a/skyonnweb/profile_pics/WhatsApp_Image_2023-11-03_at_10.56.39.jpeg b/skyonnweb/profile_pics/WhatsApp_Image_2023-11-03_at_10.56.39.jpeg deleted file mode 100644 index fb91192..0000000 Binary files a/skyonnweb/profile_pics/WhatsApp_Image_2023-11-03_at_10.56.39.jpeg and /dev/null differ diff --git a/skyonnweb/profile_pics/WhatsApp_Image_2023-11-03_at_11.04.39.jpeg b/skyonnweb/profile_pics/WhatsApp_Image_2023-11-03_at_11.04.39.jpeg deleted file mode 100644 index a6a229c..0000000 Binary files a/skyonnweb/profile_pics/WhatsApp_Image_2023-11-03_at_11.04.39.jpeg and /dev/null differ diff --git a/skyonnweb/profile_pics/download_1.htm b/skyonnweb/profile_pics/download_1.htm new file mode 100644 index 0000000..56baa95 --- /dev/null +++ b/skyonnweb/profile_pics/download_1.htm @@ -0,0 +1,1540 @@ + + + + + + + + + + + Admin Dashboard + + +
+

Home

+

Admin Dashboard

+
+ +
+
+ +
+
+ +
+

Laxmi

+LogOut +
+
+ + + +
+ + + +
+ + + + \ No newline at end of file diff --git a/skyonnweb/skyonnadmin/migrations/0001_initial.py b/skyonnweb/skyonnadmin/migrations/0001_initial.py index f386406..f0e7430 100644 --- a/skyonnweb/skyonnadmin/migrations/0001_initial.py +++ b/skyonnweb/skyonnadmin/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 4.2.11 on 2024-03-14 07:02 +# Generated by Django 4.2.11 on 2024-05-07 11:06 from django.db import migrations, models @@ -11,6 +11,26 @@ class Migration(migrations.Migration): ] operations = [ + migrations.CreateModel( + name='Contact', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('client_id', models.CharField(max_length=30, null=True)), + ('name', models.CharField(max_length=40, null=True)), + ('designation', models.CharField(max_length=50, null=True)), + ('department', models.CharField(max_length=50, null=True)), + ('phone_no', models.CharField(max_length=50, null=True)), + ('email', models.EmailField(max_length=254, null=True)), + ('location', models.CharField(max_length=102, null=True)), + ], + ), + migrations.CreateModel( + name='Locations', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('location', models.CharField(max_length=50, null=True)), + ], + ), migrations.CreateModel( name='skyonnAdmin', fields=[ @@ -35,4 +55,30 @@ class Migration(migrations.Migration): 'abstract': False, }, ), + migrations.CreateModel( + name='SubcompanyDetails', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('parent_company', models.CharField(max_length=100)), + ('sub_company', models.CharField(max_length=100, unique=True)), + ('location', models.CharField(max_length=100)), + ('gst_no', models.CharField(max_length=50)), + ('address', models.CharField(max_length=200)), + ('client_id', models.CharField(max_length=20, null=True)), + ('contacts', models.ManyToManyField(related_name='subcompany_contacts', to='skyonnadmin.contact')), + ], + ), + migrations.CreateModel( + name='ClientDetails', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('parent_company', models.CharField(max_length=100)), + ('location', models.CharField(max_length=100)), + ('department', models.CharField(max_length=100)), + ('gst_no', models.CharField(max_length=50)), + ('address', models.CharField(max_length=200)), + ('client_id', models.CharField(max_length=20, null=True)), + ('contacts', models.ManyToManyField(related_name='contacts', to='skyonnadmin.contact')), + ], + ), ] diff --git a/skyonnweb/skyonnadmin/migrations/0002_addcontact_rename_phone_no_contact_first_name_and_more.py b/skyonnweb/skyonnadmin/migrations/0002_addcontact_rename_phone_no_contact_first_name_and_more.py new file mode 100644 index 0000000..45be9e2 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0002_addcontact_rename_phone_no_contact_first_name_and_more.py @@ -0,0 +1,141 @@ +# Generated by Django 5.0.6 on 2024-05-25 05:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='AddContact', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('Company', models.CharField(max_length=100, null=True)), + ('Sub_company', models.CharField(max_length=100, null=True)), + ('location', models.CharField(max_length=50, null=True)), + ('Department', models.CharField(max_length=50, null=True)), + ('Designation', models.CharField(max_length=50, null=True)), + ('Phone_number', models.IntegerField(null=True)), + ('Email', models.EmailField(max_length=254, null=True)), + ], + ), + migrations.RenameField( + model_name='contact', + old_name='phone_no', + new_name='first_name', + ), + migrations.RemoveField( + model_name='clientdetails', + name='contacts', + ), + migrations.RemoveField( + model_name='contact', + name='email', + ), + migrations.RemoveField( + model_name='contact', + name='location', + ), + migrations.RemoveField( + model_name='contact', + name='name', + ), + migrations.RemoveField( + model_name='subcompanydetails', + name='contacts', + ), + migrations.AddField( + model_name='contact', + name='company_email', + field=models.EmailField(default='default_company_email@example.com', max_length=254, null=True), + ), + migrations.AddField( + model_name='contact', + name='last_name', + field=models.CharField(max_length=50, null=True), + ), + migrations.AddField( + model_name='contact', + name='phone_no1', + field=models.CharField(max_length=20, null=True), + ), + migrations.AddField( + model_name='contact', + name='phone_no2', + field=models.CharField(blank=True, max_length=20, null=True), + ), + migrations.AddField( + model_name='subcompanydetails', + name='department', + field=models.CharField(max_length=100, null=True), + ), + migrations.AlterField( + model_name='clientdetails', + name='address', + field=models.CharField(max_length=200, null=True), + ), + migrations.AlterField( + model_name='clientdetails', + name='department', + field=models.CharField(max_length=100, null=True), + ), + migrations.AlterField( + model_name='clientdetails', + name='gst_no', + field=models.CharField(max_length=50, null=True), + ), + migrations.AlterField( + model_name='clientdetails', + name='location', + field=models.CharField(max_length=100, null=True), + ), + migrations.AlterField( + model_name='clientdetails', + name='parent_company', + field=models.CharField(max_length=100, null=True), + ), + migrations.AlterField( + model_name='contact', + name='client_id', + field=models.CharField(max_length=20, null=True), + ), + migrations.AlterField( + model_name='contact', + name='department', + field=models.CharField(max_length=100, null=True), + ), + migrations.AlterField( + model_name='contact', + name='designation', + field=models.CharField(max_length=100, null=True), + ), + migrations.AlterField( + model_name='subcompanydetails', + name='address', + field=models.CharField(max_length=200, null=True), + ), + migrations.AlterField( + model_name='subcompanydetails', + name='gst_no', + field=models.CharField(max_length=50, null=True), + ), + migrations.AlterField( + model_name='subcompanydetails', + name='location', + field=models.CharField(max_length=100, null=True), + ), + migrations.AlterField( + model_name='subcompanydetails', + name='parent_company', + field=models.CharField(max_length=100, null=True), + ), + migrations.AlterField( + model_name='subcompanydetails', + name='sub_company', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0002_contact_subcompanydetails_clientdetails.py b/skyonnweb/skyonnadmin/migrations/0002_contact_subcompanydetails_clientdetails.py deleted file mode 100644 index 5b42375..0000000 --- a/skyonnweb/skyonnadmin/migrations/0002_contact_subcompanydetails_clientdetails.py +++ /dev/null @@ -1,75 +0,0 @@ -# Generated by Django 4.2.11 on 2024-03-18 07:10 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('skyonnadmin', '0001_initial'), - ] - - operations = [ - migrations.CreateModel( - name='Contact', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('first_name', models.CharField(max_length=50)), - ('last_name', models.CharField(max_length=50)), - ('phone_no1', models.CharField(max_length=20)), - ('phone_no2', models.CharField(blank=True, max_length=20, null=True)), - ('company_email', models.EmailField(max_length=254)), - ('designation', models.CharField(max_length=100)), - ('department', models.CharField(max_length=100)), - ], - ), - migrations.CreateModel( - name='SubcompanyDetails', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('parent_company', models.CharField(max_length=100)), - ('sub_company', models.CharField(max_length=100)), - ('location', models.CharField(max_length=100)), - ('department', models.CharField(max_length=100)), - ('gst_no', models.CharField(max_length=50)), - ('address', models.CharField(max_length=200)), - ('client_id', models.CharField(max_length=20, null=True)), - ('admin_first_name', models.CharField(max_length=50)), - ('admin_last_name', models.CharField(max_length=50)), - ('admin_phone_no1', models.CharField(max_length=20)), - ('admin_phone_no2', models.CharField(blank=True, max_length=20, null=True)), - ('admin_company_email', models.EmailField(max_length=254)), - ('admin_designation', models.CharField(max_length=100, null=True)), - ('admin_department', models.CharField(max_length=100, null=True)), - ('admin_location', models.CharField(max_length=100, null=True)), - ('accounts_contacts', models.ManyToManyField(related_name='subcompany_accounts_contacts', to='skyonnadmin.contact')), - ('admin_contacts', models.ManyToManyField(related_name='subcompany_admin_contacts', to='skyonnadmin.contact')), - ('hr_contacts', models.ManyToManyField(related_name='subcompany_hr_contacts', to='skyonnadmin.contact')), - ('recruiter_contacts', models.ManyToManyField(related_name='subcompany_recruiter_contacts', to='skyonnadmin.contact')), - ], - ), - migrations.CreateModel( - name='ClientDetails', - fields=[ - ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('parent_company', models.CharField(max_length=100)), - ('location', models.CharField(max_length=100)), - ('department', models.CharField(max_length=100)), - ('gst_no', models.CharField(max_length=50)), - ('address', models.CharField(max_length=200)), - ('client_id', models.CharField(max_length=20, null=True)), - ('admin_first_name', models.CharField(max_length=50)), - ('admin_last_name', models.CharField(max_length=50)), - ('admin_phone_no1', models.CharField(max_length=20)), - ('admin_phone_no2', models.CharField(blank=True, max_length=20, null=True)), - ('admin_company_email', models.EmailField(max_length=254)), - ('admin_designation', models.CharField(max_length=100, null=True)), - ('admin_department', models.CharField(max_length=100, null=True)), - ('admin_location', models.CharField(max_length=100, null=True)), - ('accounts_contacts', models.ManyToManyField(related_name='accounts_contacts', to='skyonnadmin.contact')), - ('admin_contacts', models.ManyToManyField(related_name='admin_contacts', to='skyonnadmin.contact')), - ('hr_contacts', models.ManyToManyField(related_name='hr_contacts', to='skyonnadmin.contact')), - ('recruiter_contacts', models.ManyToManyField(related_name='recruiter_contacts', to='skyonnadmin.contact')), - ], - ), - ] diff --git a/skyonnweb/skyonnadmin/migrations/0003_rename_address_clientdetails_street_and_more.py b/skyonnweb/skyonnadmin/migrations/0003_rename_address_clientdetails_street_and_more.py new file mode 100644 index 0000000..9bcbdde --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0003_rename_address_clientdetails_street_and_more.py @@ -0,0 +1,161 @@ +# Generated by Django 5.0.6 on 2024-05-25 06:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0002_addcontact_rename_phone_no_contact_first_name_and_more'), + ] + + operations = [ + migrations.RenameField( + model_name='clientdetails', + old_name='address', + new_name='Street', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='department', + new_name='location_Id', + ), + migrations.RenameField( + model_name='contact', + old_name='first_name', + new_name='phone_no', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='address', + new_name='State', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='department', + new_name='location_id', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='client_id', + new_name='sub_client_id', + ), + migrations.RemoveField( + model_name='clientdetails', + name='location', + ), + migrations.RemoveField( + model_name='contact', + name='client_id', + ), + migrations.RemoveField( + model_name='contact', + name='company_email', + ), + migrations.RemoveField( + model_name='contact', + name='last_name', + ), + migrations.RemoveField( + model_name='contact', + name='phone_no1', + ), + migrations.RemoveField( + model_name='contact', + name='phone_no2', + ), + migrations.RemoveField( + model_name='subcompanydetails', + name='location', + ), + migrations.AddField( + model_name='clientdetails', + name='Pincode', + field=models.IntegerField(max_length=200, null=True), + ), + migrations.AddField( + model_name='clientdetails', + name='address_1', + field=models.CharField(blank=True, max_length=300, null=True), + ), + migrations.AddField( + model_name='clientdetails', + name='address_2', + field=models.CharField(blank=True, max_length=200, null=True), + ), + migrations.AddField( + model_name='clientdetails', + name='contacts', + field=models.ManyToManyField(related_name='contacts', to='skyonnadmin.contact'), + ), + migrations.AddField( + model_name='clientdetails', + name='country', + field=models.CharField(max_length=200, null=True), + ), + migrations.AddField( + model_name='clientdetails', + name='state', + field=models.CharField(blank=True, max_length=300, null=True), + ), + migrations.AddField( + model_name='contact', + name='email', + field=models.EmailField(max_length=254, null=True), + ), + migrations.AddField( + model_name='contact', + name='location', + field=models.CharField(max_length=102, null=True), + ), + migrations.AddField( + model_name='contact', + name='name', + field=models.CharField(max_length=40, null=True), + ), + migrations.AddField( + model_name='subcompanydetails', + name='Pincode', + field=models.IntegerField(max_length=200, null=True), + ), + migrations.AddField( + model_name='subcompanydetails', + name='Street', + field=models.CharField(max_length=200, null=True), + ), + migrations.AddField( + model_name='subcompanydetails', + name='address_1', + field=models.CharField(max_length=200, null=True), + ), + migrations.AddField( + model_name='subcompanydetails', + name='address_2', + field=models.CharField(max_length=200, null=True), + ), + migrations.AddField( + model_name='subcompanydetails', + name='country', + field=models.CharField(max_length=200, null=True), + ), + migrations.AlterField( + model_name='addcontact', + name='Phone_number', + field=models.IntegerField(max_length=50, null=True), + ), + migrations.AlterField( + model_name='contact', + name='department', + field=models.CharField(max_length=50, null=True), + ), + migrations.AlterField( + model_name='contact', + name='designation', + field=models.CharField(max_length=50, null=True), + ), + migrations.AlterField( + model_name='subcompanydetails', + name='sub_company', + field=models.CharField(max_length=100, null=True, unique=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0004_remove_clientdetails_street_and_more.py b/skyonnweb/skyonnadmin/migrations/0004_remove_clientdetails_street_and_more.py new file mode 100644 index 0000000..7b8e971 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0004_remove_clientdetails_street_and_more.py @@ -0,0 +1,21 @@ +# Generated by Django 5.0.6 on 2024-05-27 06:10 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0003_rename_address_clientdetails_street_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='clientdetails', + name='Street', + ), + migrations.RemoveField( + model_name='subcompanydetails', + name='Street', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0005_subcompanydetails_city.py b/skyonnweb/skyonnadmin/migrations/0005_subcompanydetails_city.py new file mode 100644 index 0000000..8420403 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0005_subcompanydetails_city.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-05-27 06:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0004_remove_clientdetails_street_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='subcompanydetails', + name='City', + field=models.CharField(max_length=200, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0006_clientdetails_city.py b/skyonnweb/skyonnadmin/migrations/0006_clientdetails_city.py new file mode 100644 index 0000000..aa9da8f --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0006_clientdetails_city.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-05-27 07:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0005_subcompanydetails_city'), + ] + + operations = [ + migrations.AddField( + model_name='clientdetails', + name='City', + field=models.CharField(max_length=200, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0007_alter_clientdetails_parent_company.py b/skyonnweb/skyonnadmin/migrations/0007_alter_clientdetails_parent_company.py new file mode 100644 index 0000000..028e68c --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0007_alter_clientdetails_parent_company.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-05-27 07:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0006_clientdetails_city'), + ] + + operations = [ + migrations.AlterField( + model_name='clientdetails', + name='parent_company', + field=models.CharField(max_length=100, null=True, unique=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0008_alter_addcontact_phone_number.py b/skyonnweb/skyonnadmin/migrations/0008_alter_addcontact_phone_number.py new file mode 100644 index 0000000..cc2ec09 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0008_alter_addcontact_phone_number.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-05-28 08:17 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0007_alter_clientdetails_parent_company'), + ] + + operations = [ + migrations.AlterField( + model_name='addcontact', + name='Phone_number', + field=models.IntegerField(null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0009_alter_addcontact_phone_number_and_more.py b/skyonnweb/skyonnadmin/migrations/0009_alter_addcontact_phone_number_and_more.py new file mode 100644 index 0000000..49b1188 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0009_alter_addcontact_phone_number_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 5.0.6 on 2024-05-28 08:23 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0008_alter_addcontact_phone_number'), + ] + + operations = [ + migrations.AlterField( + model_name='addcontact', + name='Phone_number', + field=models.CharField(max_length=10, null=True), + ), + migrations.AlterField( + model_name='clientdetails', + name='Pincode', + field=models.IntegerField(null=True), + ), + migrations.AlterField( + model_name='subcompanydetails', + name='Pincode', + field=models.IntegerField(null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0010_addcontact_name.py b/skyonnweb/skyonnadmin/migrations/0010_addcontact_name.py new file mode 100644 index 0000000..3f48e31 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0010_addcontact_name.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-06-04 09:06 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0009_alter_addcontact_phone_number_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='Name', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0011_rename_address_1_subcompanydetails_address_1_and_more.py b/skyonnweb/skyonnadmin/migrations/0011_rename_address_1_subcompanydetails_address_1_and_more.py new file mode 100644 index 0000000..5b05329 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0011_rename_address_1_subcompanydetails_address_1_and_more.py @@ -0,0 +1,53 @@ +# Generated by Django 5.0.6 on 2024-06-07 06:34 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0010_addcontact_name'), + ] + + operations = [ + migrations.RenameField( + model_name='subcompanydetails', + old_name='address_1', + new_name='Address_1', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='address_2', + new_name='Address_2', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='country', + new_name='Country', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='gst_no', + new_name='GST_no', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='location_id', + new_name='Location_id', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='parent_company', + new_name='Parent_company', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='sub_client_id', + new_name='Sub_client_id', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='sub_company', + new_name='Sub_company', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0012_rename_address_1_clientdetails_address_1_and_more.py b/skyonnweb/skyonnadmin/migrations/0012_rename_address_1_clientdetails_address_1_and_more.py new file mode 100644 index 0000000..b858fe7 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0012_rename_address_1_clientdetails_address_1_and_more.py @@ -0,0 +1,48 @@ +# Generated by Django 5.0.6 on 2024-06-07 06:50 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0011_rename_address_1_subcompanydetails_address_1_and_more'), + ] + + operations = [ + migrations.RenameField( + model_name='clientdetails', + old_name='address_1', + new_name='Address_1', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='address_2', + new_name='Address_2', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='country', + new_name='Country', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='gst_no', + new_name='GST_no', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='location_Id', + new_name='Location_Id', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='parent_company', + new_name='Parent_company', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='state', + new_name='State', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0013_rename_address_1_clientdetails_address_1_and_more.py b/skyonnweb/skyonnadmin/migrations/0013_rename_address_1_clientdetails_address_1_and_more.py new file mode 100644 index 0000000..4479616 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0013_rename_address_1_clientdetails_address_1_and_more.py @@ -0,0 +1,88 @@ +# Generated by Django 5.0.6 on 2024-06-07 07:08 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0012_rename_address_1_clientdetails_address_1_and_more'), + ] + + operations = [ + migrations.RenameField( + model_name='clientdetails', + old_name='Address_1', + new_name='address_1', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='Address_2', + new_name='address_2', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='Country', + new_name='country', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='GST_no', + new_name='gst_no', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='Location_Id', + new_name='location_Id', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='Parent_company', + new_name='parent_company', + ), + migrations.RenameField( + model_name='clientdetails', + old_name='State', + new_name='state', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='Address_1', + new_name='address_1', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='Address_2', + new_name='address_2', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='Country', + new_name='country', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='GST_no', + new_name='gst_no', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='Location_id', + new_name='location_id', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='Parent_company', + new_name='parent_company', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='Sub_client_id', + new_name='sub_client_id', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='Sub_company', + new_name='sub_company', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0014_sublocationdetails_alter_addcontact_company_and_more.py b/skyonnweb/skyonnadmin/migrations/0014_sublocationdetails_alter_addcontact_company_and_more.py new file mode 100644 index 0000000..820f86e --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0014_sublocationdetails_alter_addcontact_company_and_more.py @@ -0,0 +1,69 @@ +# Generated by Django 5.0.6 on 2024-06-10 07:24 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0013_rename_address_1_clientdetails_address_1_and_more'), + ] + + operations = [ + migrations.CreateModel( + name='SublocationDetails', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('parent_company', models.CharField(max_length=100, null=True)), + ('department', models.CharField(max_length=100, null=True)), + ('Location', models.CharField(max_length=100, null=True)), + ('gst_no', models.CharField(max_length=50, null=True)), + ('address_1', models.CharField(blank=True, max_length=300, null=True)), + ('address_2', models.CharField(blank=True, max_length=200, null=True)), + ('City', models.CharField(max_length=200, null=True)), + ('state', models.CharField(blank=True, max_length=300, null=True)), + ('Pincode', models.IntegerField(null=True)), + ('country', models.CharField(max_length=200, null=True)), + ], + ), + migrations.AlterField( + model_name='addcontact', + name='Company', + field=models.CharField(blank=True, max_length=100, null=True), + ), + migrations.AlterField( + model_name='addcontact', + name='Department', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AlterField( + model_name='addcontact', + name='Designation', + field=models.CharField(blank=True, max_length=50, null=True), + ), + migrations.AlterField( + model_name='addcontact', + name='Email', + field=models.EmailField(max_length=254, null=True, unique=True), + ), + migrations.AlterField( + model_name='addcontact', + name='Name', + field=models.CharField(max_length=100, null=True, unique=True), + ), + migrations.AlterField( + model_name='addcontact', + name='Phone_number', + field=models.CharField(max_length=10, null=True, unique=True), + ), + migrations.AlterField( + model_name='addcontact', + name='Sub_company', + field=models.CharField(blank=True, max_length=100, null=True), + ), + migrations.AlterField( + model_name='addcontact', + name='location', + field=models.CharField(blank=True, max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0015_rename_state_sublocationdetails_state_and_more.py b/skyonnweb/skyonnadmin/migrations/0015_rename_state_sublocationdetails_state_and_more.py new file mode 100644 index 0000000..fe9d870 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0015_rename_state_sublocationdetails_state_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.6 on 2024-06-10 09:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0014_sublocationdetails_alter_addcontact_company_and_more'), + ] + + operations = [ + migrations.RenameField( + model_name='sublocationdetails', + old_name='state', + new_name='State', + ), + migrations.AlterField( + model_name='addcontact', + name='Name', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0016_rename_gst_no_clientdetails_gst_no_and_more.py b/skyonnweb/skyonnadmin/migrations/0016_rename_gst_no_clientdetails_gst_no_and_more.py new file mode 100644 index 0000000..0da34d9 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0016_rename_gst_no_clientdetails_gst_no_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 5.0.6 on 2024-06-10 10:30 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0015_rename_state_sublocationdetails_state_and_more'), + ] + + operations = [ + migrations.RenameField( + model_name='clientdetails', + old_name='gst_no', + new_name='GST_No', + ), + migrations.RenameField( + model_name='subcompanydetails', + old_name='gst_no', + new_name='GST_No', + ), + migrations.RenameField( + model_name='sublocationdetails', + old_name='gst_no', + new_name='GST_No', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0017_alter_clientdetails_gst_no_and_more.py b/skyonnweb/skyonnadmin/migrations/0017_alter_clientdetails_gst_no_and_more.py new file mode 100644 index 0000000..31fd2dc --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0017_alter_clientdetails_gst_no_and_more.py @@ -0,0 +1,28 @@ +# Generated by Django 5.0.6 on 2024-06-12 10:24 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0016_rename_gst_no_clientdetails_gst_no_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='clientdetails', + name='GST_No', + field=models.CharField(max_length=50, null=True, unique=True), + ), + migrations.AlterField( + model_name='subcompanydetails', + name='GST_No', + field=models.CharField(max_length=50, null=True, unique=True), + ), + migrations.AlterField( + model_name='sublocationdetails', + name='GST_No', + field=models.CharField(max_length=50, null=True, unique=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0018_alter_clientdetails_gst_no.py b/skyonnweb/skyonnadmin/migrations/0018_alter_clientdetails_gst_no.py new file mode 100644 index 0000000..6efa24a --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0018_alter_clientdetails_gst_no.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.11 on 2024-06-23 11:53 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0017_alter_clientdetails_gst_no_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='clientdetails', + name='GST_No', + field=models.CharField(max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0019_alter_subcompanydetails_gst_no_and_more.py b/skyonnweb/skyonnadmin/migrations/0019_alter_subcompanydetails_gst_no_and_more.py new file mode 100644 index 0000000..410c9b6 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0019_alter_subcompanydetails_gst_no_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.11 on 2024-06-27 18:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0018_alter_clientdetails_gst_no'), + ] + + operations = [ + migrations.AlterField( + model_name='subcompanydetails', + name='GST_No', + field=models.CharField(max_length=50, null=True), + ), + migrations.AlterField( + model_name='sublocationdetails', + name='GST_No', + field=models.CharField(max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0020_client_jobposting.py b/skyonnweb/skyonnadmin/migrations/0020_client_jobposting.py new file mode 100644 index 0000000..a8de62f --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0020_client_jobposting.py @@ -0,0 +1,43 @@ +# Generated by Django 5.0.6 on 2024-07-05 07:51 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0019_alter_subcompanydetails_gst_no_and_more'), + ] + + operations = [ + migrations.CreateModel( + name='Client', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('parent_company', models.CharField(max_length=255)), + ], + ), + migrations.CreateModel( + name='JobPosting', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('JobID', models.CharField(max_length=100, unique=True)), + ('Location', models.CharField(max_length=255)), + ('SPOC', models.CharField(max_length=255)), + ('SPOC2', models.CharField(blank=True, max_length=255, null=True)), + ('StartDate', models.DateField()), + ('CloseDate', models.DateField()), + ('BudgetMin', models.DecimalField(decimal_places=2, max_digits=10)), + ('BudgetMax', models.DecimalField(decimal_places=2, max_digits=10)), + ('Header', models.CharField(max_length=255)), + ('job_description', models.TextField()), + ('Type', models.CharField(max_length=50)), + ('Experience_in_Yrs', models.CharField(max_length=50)), + ('NoOfPosting', models.IntegerField()), + ('SpecialInstructions', models.TextField(blank=True, null=True)), + ('JD', models.FileField(upload_to='JD/')), + ('Client', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='skyonnadmin.client')), + ], + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0021_alter_jobposting_client.py b/skyonnweb/skyonnadmin/migrations/0021_alter_jobposting_client.py new file mode 100644 index 0000000..4977882 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0021_alter_jobposting_client.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-07-05 07:53 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0020_client_jobposting'), + ] + + operations = [ + migrations.AlterField( + model_name='jobposting', + name='Client', + field=models.CharField(blank=True, max_length=100, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0022_rename_job_description_jobposting_jobdescription_and_more.py b/skyonnweb/skyonnadmin/migrations/0022_rename_job_description_jobposting_jobdescription_and_more.py new file mode 100644 index 0000000..77ff8c6 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0022_rename_job_description_jobposting_jobdescription_and_more.py @@ -0,0 +1,24 @@ +# Generated by Django 5.0.6 on 2024-07-05 09:19 + +import skyonnadmin.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0021_alter_jobposting_client'), + ] + + operations = [ + migrations.RenameField( + model_name='jobposting', + old_name='job_description', + new_name='JobDescription', + ), + migrations.AlterField( + model_name='jobposting', + name='JD', + field=models.FileField(upload_to='JD/', validators=[skyonnadmin.models.validate_file_extension]), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0023_spoc_alter_jobposting_budgetmax_and_more.py b/skyonnweb/skyonnadmin/migrations/0023_spoc_alter_jobposting_budgetmax_and_more.py new file mode 100644 index 0000000..e83a3d8 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0023_spoc_alter_jobposting_budgetmax_and_more.py @@ -0,0 +1,40 @@ +# Generated by Django 5.0.6 on 2024-07-23 05:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0022_rename_job_description_jobposting_jobdescription_and_more'), + ] + + operations = [ + migrations.CreateModel( + name='SPOC', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255)), + ], + ), + migrations.AlterField( + model_name='jobposting', + name='BudgetMax', + field=models.DecimalField(decimal_places=2, max_digits=100), + ), + migrations.AlterField( + model_name='jobposting', + name='BudgetMin', + field=models.DecimalField(decimal_places=2, max_digits=100), + ), + migrations.AlterField( + model_name='jobposting', + name='JD', + field=models.FileField(null=True, upload_to='JD'), + ), + migrations.AlterField( + model_name='jobposting', + name='JobID', + field=models.CharField(max_length=100), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0024_alter_jobposting_budgetmax_and_more.py b/skyonnweb/skyonnadmin/migrations/0024_alter_jobposting_budgetmax_and_more.py new file mode 100644 index 0000000..9fc1b7e --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0024_alter_jobposting_budgetmax_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.6 on 2024-07-23 08:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0023_spoc_alter_jobposting_budgetmax_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='jobposting', + name='BudgetMax', + field=models.DecimalField(decimal_places=2, max_digits=10), + ), + migrations.AlterField( + model_name='jobposting', + name='BudgetMin', + field=models.DecimalField(decimal_places=2, max_digits=10), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0025_delete_jobposting_delete_spoc.py b/skyonnweb/skyonnadmin/migrations/0025_delete_jobposting_delete_spoc.py new file mode 100644 index 0000000..099d8b3 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0025_delete_jobposting_delete_spoc.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0.6 on 2024-07-23 09:59 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0024_alter_jobposting_budgetmax_and_more'), + ] + + operations = [ + migrations.DeleteModel( + name='JobPosting', + ), + migrations.DeleteModel( + name='SPOC', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0026_rename_name_addcontact_firstname_and_more.py b/skyonnweb/skyonnadmin/migrations/0026_rename_name_addcontact_firstname_and_more.py new file mode 100644 index 0000000..1b34447 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0026_rename_name_addcontact_firstname_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.6 on 2024-07-26 06:55 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0025_delete_jobposting_delete_spoc'), + ] + + operations = [ + migrations.RenameField( + model_name='addcontact', + old_name='Name', + new_name='FirstName', + ), + migrations.RenameField( + model_name='addcontact', + old_name='location', + new_name='LastName', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0027_remove_addcontact_firstname.py b/skyonnweb/skyonnadmin/migrations/0027_remove_addcontact_firstname.py new file mode 100644 index 0000000..c5e9e59 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0027_remove_addcontact_firstname.py @@ -0,0 +1,17 @@ +# Generated by Django 5.0.6 on 2024-07-26 07:09 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0026_rename_name_addcontact_firstname_and_more'), + ] + + operations = [ + migrations.RemoveField( + model_name='addcontact', + name='FirstName', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0028_addcontact_firstname.py b/skyonnweb/skyonnadmin/migrations/0028_addcontact_firstname.py new file mode 100644 index 0000000..06d6e27 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0028_addcontact_firstname.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.6 on 2024-07-26 07:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0027_remove_addcontact_firstname'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='FirstName', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0029_remove_addcontact_firstname_and_more.py b/skyonnweb/skyonnadmin/migrations/0029_remove_addcontact_firstname_and_more.py new file mode 100644 index 0000000..86b7bca --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0029_remove_addcontact_firstname_and_more.py @@ -0,0 +1,21 @@ +# Generated by Django 5.0.6 on 2024-07-26 07:11 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0028_addcontact_firstname'), + ] + + operations = [ + migrations.RemoveField( + model_name='addcontact', + name='FirstName', + ), + migrations.RemoveField( + model_name='addcontact', + name='LastName', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0030_addcontact_firstname_addcontact_lastname.py b/skyonnweb/skyonnadmin/migrations/0030_addcontact_firstname_addcontact_lastname.py new file mode 100644 index 0000000..3d8b964 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0030_addcontact_firstname_addcontact_lastname.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.6 on 2024-07-26 07:13 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0029_remove_addcontact_firstname_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='FirstName', + field=models.CharField(max_length=100, null=True), + ), + migrations.AddField( + model_name='addcontact', + name='LastName', + field=models.CharField(blank=True, max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0031_remove_addcontact_firstname_and_more.py b/skyonnweb/skyonnadmin/migrations/0031_remove_addcontact_firstname_and_more.py new file mode 100644 index 0000000..d8e052c --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0031_remove_addcontact_firstname_and_more.py @@ -0,0 +1,21 @@ +# Generated by Django 4.2.11 on 2024-07-30 10:06 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0030_addcontact_firstname_addcontact_lastname'), + ] + + operations = [ + migrations.RemoveField( + model_name='addcontact', + name='FirstName', + ), + migrations.RemoveField( + model_name='addcontact', + name='LastName', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0032_addcontact_firstname_addcontact_lastname.py b/skyonnweb/skyonnadmin/migrations/0032_addcontact_firstname_addcontact_lastname.py new file mode 100644 index 0000000..76d5b1a --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0032_addcontact_firstname_addcontact_lastname.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.11 on 2024-07-30 10:06 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0031_remove_addcontact_firstname_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='FirstName', + field=models.CharField(max_length=100, null=True), + ), + migrations.AddField( + model_name='addcontact', + name='LastName', + field=models.CharField(blank=True, max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0033_remove_addcontact_firstname_and_more.py b/skyonnweb/skyonnadmin/migrations/0033_remove_addcontact_firstname_and_more.py new file mode 100644 index 0000000..994a475 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0033_remove_addcontact_firstname_and_more.py @@ -0,0 +1,21 @@ +# Generated by Django 4.2.11 on 2024-07-30 10:08 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0032_addcontact_firstname_addcontact_lastname'), + ] + + operations = [ + migrations.RemoveField( + model_name='addcontact', + name='FirstName', + ), + migrations.RemoveField( + model_name='addcontact', + name='LastName', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0034_addcontact_firstname_addcontact_lastname.py b/skyonnweb/skyonnadmin/migrations/0034_addcontact_firstname_addcontact_lastname.py new file mode 100644 index 0000000..2a84f63 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0034_addcontact_firstname_addcontact_lastname.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.11 on 2024-07-30 10:08 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0033_remove_addcontact_firstname_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='FirstName', + field=models.CharField(max_length=100, null=True), + ), + migrations.AddField( + model_name='addcontact', + name='LastName', + field=models.CharField(blank=True, max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0035_addcontact_contact_id.py b/skyonnweb/skyonnadmin/migrations/0035_addcontact_contact_id.py new file mode 100644 index 0000000..bdbd7de --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0035_addcontact_contact_id.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.11 on 2024-08-01 06:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0034_addcontact_firstname_addcontact_lastname'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='Contact_id', + field=models.CharField(max_length=20, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0036_remove_addcontact_contact_id.py b/skyonnweb/skyonnadmin/migrations/0036_remove_addcontact_contact_id.py new file mode 100644 index 0000000..94a7cfa --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0036_remove_addcontact_contact_id.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.11 on 2024-08-09 10:32 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0035_addcontact_contact_id'), + ] + + operations = [ + migrations.RemoveField( + model_name='addcontact', + name='Contact_id', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0037_addcontact_contact_id.py b/skyonnweb/skyonnadmin/migrations/0037_addcontact_contact_id.py new file mode 100644 index 0000000..b2e070c --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0037_addcontact_contact_id.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.11 on 2024-08-09 10:32 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0036_remove_addcontact_contact_id'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='Contact_id', + field=models.CharField(max_length=20, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0038_remove_addcontact_firstname_and_more.py b/skyonnweb/skyonnadmin/migrations/0038_remove_addcontact_firstname_and_more.py new file mode 100644 index 0000000..0680e4c --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0038_remove_addcontact_firstname_and_more.py @@ -0,0 +1,21 @@ +# Generated by Django 4.2.11 on 2024-08-09 10:33 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0037_addcontact_contact_id'), + ] + + operations = [ + migrations.RemoveField( + model_name='addcontact', + name='FirstName', + ), + migrations.RemoveField( + model_name='addcontact', + name='LastName', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0039_addcontact_firstname_addcontact_lastname.py b/skyonnweb/skyonnadmin/migrations/0039_addcontact_firstname_addcontact_lastname.py new file mode 100644 index 0000000..482789d --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0039_addcontact_firstname_addcontact_lastname.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.11 on 2024-08-09 10:34 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0038_remove_addcontact_firstname_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='FirstName', + field=models.CharField(max_length=100, null=True), + ), + migrations.AddField( + model_name='addcontact', + name='LastName', + field=models.CharField(blank=True, max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0040_internalteam.py b/skyonnweb/skyonnadmin/migrations/0040_internalteam.py new file mode 100644 index 0000000..48df0f4 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0040_internalteam.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.11 on 2024-08-13 09:57 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0039_addcontact_firstname_addcontact_lastname'), + ] + + operations = [ + migrations.CreateModel( + name='InternalTeam', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('FirstName', models.CharField(max_length=100, null=True)), + ('LastName', models.CharField(max_length=100, null=True)), + ('Designation', models.CharField(max_length=100, null=True)), + ('Department', models.CharField(max_length=100, null=True)), + ('Address_1', models.CharField(max_length=255, null=True)), + ('Address_2', models.CharField(blank=True, max_length=255, null=True)), + ('City', models.CharField(max_length=100)), + ('State', models.CharField(max_length=100, null=True)), + ('Pincode', models.CharField(max_length=6, null=True)), + ('Country', models.CharField(max_length=100, null=True)), + ('PhoneNo1', models.CharField(max_length=15, null=True)), + ('PhoneNo2', models.CharField(blank=True, max_length=15, null=True)), + ('Email1', models.EmailField(max_length=254, null=True)), + ('Email2', models.EmailField(max_length=254, null=True)), + ], + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0041_internalteam_band.py b/skyonnweb/skyonnadmin/migrations/0041_internalteam_band.py new file mode 100644 index 0000000..8850485 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0041_internalteam_band.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.11 on 2024-08-30 09:41 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0040_internalteam'), + ] + + operations = [ + migrations.AddField( + model_name='internalteam', + name='Band', + field=models.CharField(max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0042_internalteam_login_internalteam_password.py b/skyonnweb/skyonnadmin/migrations/0042_internalteam_login_internalteam_password.py new file mode 100644 index 0000000..12f646a --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0042_internalteam_login_internalteam_password.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.11 on 2024-08-30 10:21 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0041_internalteam_band'), + ] + + operations = [ + migrations.AddField( + model_name='internalteam', + name='Login', + field=models.EmailField(max_length=254, null=True), + ), + migrations.AddField( + model_name='internalteam', + name='Password', + field=models.CharField(max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0043_internalteam_user_id.py b/skyonnweb/skyonnadmin/migrations/0043_internalteam_user_id.py new file mode 100644 index 0000000..53ab57c --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0043_internalteam_user_id.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.11 on 2024-09-02 06:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0042_internalteam_login_internalteam_password'), + ] + + operations = [ + migrations.AddField( + model_name='internalteam', + name='user_id', + field=models.CharField(max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0044_alter_internalteam_email2.py b/skyonnweb/skyonnadmin/migrations/0044_alter_internalteam_email2.py new file mode 100644 index 0000000..e8bf8c7 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0044_alter_internalteam_email2.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1.1 on 2024-09-16 07:50 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0043_internalteam_user_id'), + ] + + operations = [ + migrations.AlterField( + model_name='internalteam', + name='Email2', + field=models.EmailField(max_length=40, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0045_alter_internalteam_email2.py b/skyonnweb/skyonnadmin/migrations/0045_alter_internalteam_email2.py new file mode 100644 index 0000000..fdf89cd --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0045_alter_internalteam_email2.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1.1 on 2024-09-16 07:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0044_alter_internalteam_email2'), + ] + + operations = [ + migrations.AlterField( + model_name='internalteam', + name='Email2', + field=models.EmailField(max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0046_spoc.py b/skyonnweb/skyonnadmin/migrations/0046_spoc.py new file mode 100644 index 0000000..bd12d85 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0046_spoc.py @@ -0,0 +1,20 @@ +# Generated by Django 5.1.1 on 2024-09-16 07:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0045_alter_internalteam_email2'), + ] + + operations = [ + migrations.CreateModel( + name='SPOC', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=255, null=True)), + ], + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0047_delete_internalteam.py b/skyonnweb/skyonnadmin/migrations/0047_delete_internalteam.py new file mode 100644 index 0000000..9e5dfc5 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0047_delete_internalteam.py @@ -0,0 +1,16 @@ +# Generated by Django 5.1.1 on 2024-09-16 07:59 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0046_spoc'), + ] + + operations = [ + migrations.DeleteModel( + name='InternalTeam', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0048_internalteam.py b/skyonnweb/skyonnadmin/migrations/0048_internalteam.py new file mode 100644 index 0000000..1ff22aa --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0048_internalteam.py @@ -0,0 +1,37 @@ +# Generated by Django 5.1.1 on 2024-09-16 07:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0047_delete_internalteam'), + ] + + operations = [ + migrations.CreateModel( + name='InternalTeam', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('FirstName', models.CharField(max_length=100, null=True)), + ('LastName', models.CharField(max_length=100, null=True)), + ('Designation', models.CharField(max_length=100, null=True)), + ('Department', models.CharField(max_length=100, null=True)), + ('Address_1', models.CharField(max_length=255, null=True)), + ('Address_2', models.CharField(blank=True, max_length=255, null=True)), + ('City', models.CharField(max_length=100)), + ('State', models.CharField(max_length=100, null=True)), + ('Pincode', models.CharField(max_length=6, null=True)), + ('Country', models.CharField(max_length=100, null=True)), + ('PhoneNo1', models.CharField(max_length=15, null=True)), + ('PhoneNo2', models.CharField(blank=True, max_length=15, null=True)), + ('Email1', models.EmailField(max_length=254, null=True)), + ('Email2', models.EmailField(max_length=50, null=True)), + ('Band', models.CharField(max_length=50, null=True)), + ('Login', models.EmailField(max_length=254, null=True)), + ('Password', models.CharField(max_length=50, null=True)), + ('user_id', models.CharField(max_length=50, null=True)), + ], + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0049_delete_addcontact.py b/skyonnweb/skyonnadmin/migrations/0049_delete_addcontact.py new file mode 100644 index 0000000..9938ce9 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0049_delete_addcontact.py @@ -0,0 +1,16 @@ +# Generated by Django 5.1.1 on 2024-09-16 08:39 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0048_internalteam'), + ] + + operations = [ + migrations.DeleteModel( + name='AddContact', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0050_addcontact.py b/skyonnweb/skyonnadmin/migrations/0050_addcontact.py new file mode 100644 index 0000000..e4c530b --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0050_addcontact.py @@ -0,0 +1,28 @@ +# Generated by Django 5.1.1 on 2024-09-16 08:40 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0049_delete_addcontact'), + ] + + operations = [ + migrations.CreateModel( + name='AddContact', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('Contact_id', models.CharField(max_length=20, null=True)), + ('Company', models.CharField(blank=True, max_length=100, null=True)), + ('Sub_company', models.CharField(blank=True, max_length=100, null=True)), + ('FirstName', models.CharField(max_length=100, null=True)), + ('LastName', models.CharField(blank=True, max_length=50, null=True)), + ('Department', models.CharField(blank=True, max_length=50, null=True)), + ('Designation', models.CharField(blank=True, max_length=50, null=True)), + ('Phone_number', models.CharField(max_length=10, null=True, unique=True)), + ('Email', models.EmailField(max_length=254, null=True, unique=True)), + ], + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0051_alter_addcontact_contact_id.py b/skyonnweb/skyonnadmin/migrations/0051_alter_addcontact_contact_id.py new file mode 100644 index 0000000..2540843 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0051_alter_addcontact_contact_id.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1.1 on 2024-09-16 08:40 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0050_addcontact'), + ] + + operations = [ + migrations.AlterField( + model_name='addcontact', + name='Contact_id', + field=models.CharField(max_length=30, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0052_remove_addcontact_contact_id.py b/skyonnweb/skyonnadmin/migrations/0052_remove_addcontact_contact_id.py new file mode 100644 index 0000000..dd307c9 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0052_remove_addcontact_contact_id.py @@ -0,0 +1,17 @@ +# Generated by Django 5.1.1 on 2024-09-16 08:41 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0051_alter_addcontact_contact_id'), + ] + + operations = [ + migrations.RemoveField( + model_name='addcontact', + name='Contact_id', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0053_addcontact_contact_id.py b/skyonnweb/skyonnadmin/migrations/0053_addcontact_contact_id.py new file mode 100644 index 0000000..03a17e8 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0053_addcontact_contact_id.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1.1 on 2024-09-16 08:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0052_remove_addcontact_contact_id'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='Contact_id', + field=models.CharField(max_length=30, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0054_remove_addcontact_firstname_and_more.py b/skyonnweb/skyonnadmin/migrations/0054_remove_addcontact_firstname_and_more.py new file mode 100644 index 0000000..133978f --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0054_remove_addcontact_firstname_and_more.py @@ -0,0 +1,21 @@ +# Generated by Django 5.1.1 on 2024-09-16 08:43 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0053_addcontact_contact_id'), + ] + + operations = [ + migrations.RemoveField( + model_name='addcontact', + name='FirstName', + ), + migrations.RemoveField( + model_name='addcontact', + name='LastName', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0055_addcontact_firstname_addcontact_lastname.py b/skyonnweb/skyonnadmin/migrations/0055_addcontact_firstname_addcontact_lastname.py new file mode 100644 index 0000000..f734639 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0055_addcontact_firstname_addcontact_lastname.py @@ -0,0 +1,23 @@ +# Generated by Django 5.1.1 on 2024-09-16 08:43 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0054_remove_addcontact_firstname_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='FirstName', + field=models.CharField(max_length=100, null=True), + ), + migrations.AddField( + model_name='addcontact', + name='LastName', + field=models.CharField(blank=True, max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0056_delete_internalteam.py b/skyonnweb/skyonnadmin/migrations/0056_delete_internalteam.py new file mode 100644 index 0000000..8f2d36e --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0056_delete_internalteam.py @@ -0,0 +1,16 @@ +# Generated by Django 5.1.1 on 2024-09-19 10:27 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0055_addcontact_firstname_addcontact_lastname'), + ] + + operations = [ + migrations.DeleteModel( + name='InternalTeam', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0057_internalteam.py b/skyonnweb/skyonnadmin/migrations/0057_internalteam.py new file mode 100644 index 0000000..4c98504 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0057_internalteam.py @@ -0,0 +1,37 @@ +# Generated by Django 5.1.1 on 2024-09-19 10:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0056_delete_internalteam'), + ] + + operations = [ + migrations.CreateModel( + name='InternalTeam', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('FirstName', models.CharField(max_length=100, null=True)), + ('LastName', models.CharField(max_length=100, null=True)), + ('Designation', models.CharField(max_length=100, null=True)), + ('Department', models.CharField(max_length=100, null=True)), + ('Address_1', models.CharField(max_length=255, null=True)), + ('Address_2', models.CharField(blank=True, max_length=255, null=True)), + ('City', models.CharField(max_length=100)), + ('State', models.CharField(max_length=100, null=True)), + ('Pincode', models.CharField(max_length=6, null=True)), + ('Country', models.CharField(max_length=100, null=True)), + ('PhoneNo1', models.CharField(max_length=15, null=True)), + ('PhoneNo2', models.CharField(blank=True, max_length=15, null=True)), + ('Email1', models.EmailField(max_length=254, null=True)), + ('Email2', models.EmailField(max_length=50, null=True)), + ('Band', models.CharField(max_length=50, null=True)), + ('Login', models.EmailField(max_length=254, null=True)), + ('Password', models.CharField(max_length=50, null=True)), + ('user_id', models.CharField(max_length=50, null=True)), + ], + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0058_remove_addcontact_contact_id.py b/skyonnweb/skyonnadmin/migrations/0058_remove_addcontact_contact_id.py new file mode 100644 index 0000000..4fc569a --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0058_remove_addcontact_contact_id.py @@ -0,0 +1,17 @@ +# Generated by Django 5.1.1 on 2024-09-19 10:38 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0057_internalteam'), + ] + + operations = [ + migrations.RemoveField( + model_name='addcontact', + name='Contact_id', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0059_addcontact_contact_id.py b/skyonnweb/skyonnadmin/migrations/0059_addcontact_contact_id.py new file mode 100644 index 0000000..96b15a2 --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0059_addcontact_contact_id.py @@ -0,0 +1,18 @@ +# Generated by Django 5.1.1 on 2024-09-19 10:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0058_remove_addcontact_contact_id'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='Contact_id', + field=models.CharField(max_length=30, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0060_remove_addcontact_firstname_and_more.py b/skyonnweb/skyonnadmin/migrations/0060_remove_addcontact_firstname_and_more.py new file mode 100644 index 0000000..f5b4e1f --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0060_remove_addcontact_firstname_and_more.py @@ -0,0 +1,21 @@ +# Generated by Django 5.1.1 on 2024-09-19 10:40 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0059_addcontact_contact_id'), + ] + + operations = [ + migrations.RemoveField( + model_name='addcontact', + name='FirstName', + ), + migrations.RemoveField( + model_name='addcontact', + name='LastName', + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0061_addcontact_firstname_addcontact_lastname.py b/skyonnweb/skyonnadmin/migrations/0061_addcontact_firstname_addcontact_lastname.py new file mode 100644 index 0000000..303a2ea --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0061_addcontact_firstname_addcontact_lastname.py @@ -0,0 +1,23 @@ +# Generated by Django 5.1.1 on 2024-09-19 10:40 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0060_remove_addcontact_firstname_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='addcontact', + name='FirstName', + field=models.CharField(max_length=100, null=True), + ), + migrations.AddField( + model_name='addcontact', + name='LastName', + field=models.CharField(blank=True, max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0062_remove_internalteam_phoneno2_internalteam_landnumber.py b/skyonnweb/skyonnadmin/migrations/0062_remove_internalteam_phoneno2_internalteam_landnumber.py new file mode 100644 index 0000000..7e084ed --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0062_remove_internalteam_phoneno2_internalteam_landnumber.py @@ -0,0 +1,22 @@ +# Generated by Django 4.2.11 on 2024-12-03 10:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0061_addcontact_firstname_addcontact_lastname'), + ] + + operations = [ + migrations.RemoveField( + model_name='internalteam', + name='PhoneNo2', + ), + migrations.AddField( + model_name='internalteam', + name='LandNumber', + field=models.CharField(blank=True, max_length=25, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/migrations/0063_remove_internalteam_band_internalteam_level.py b/skyonnweb/skyonnadmin/migrations/0063_remove_internalteam_band_internalteam_level.py new file mode 100644 index 0000000..3f6a39f --- /dev/null +++ b/skyonnweb/skyonnadmin/migrations/0063_remove_internalteam_band_internalteam_level.py @@ -0,0 +1,22 @@ +# Generated by Django 4.2.11 on 2024-12-03 10:57 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('skyonnadmin', '0062_remove_internalteam_phoneno2_internalteam_landnumber'), + ] + + operations = [ + migrations.RemoveField( + model_name='internalteam', + name='Band', + ), + migrations.AddField( + model_name='internalteam', + name='Level', + field=models.CharField(max_length=50, null=True), + ), + ] diff --git a/skyonnweb/skyonnadmin/models.py b/skyonnweb/skyonnadmin/models.py index 0ed76a1..74f66aa 100644 --- a/skyonnweb/skyonnadmin/models.py +++ b/skyonnweb/skyonnadmin/models.py @@ -1,5 +1,7 @@ from django.contrib.auth.models import AbstractBaseUser, BaseUserManager from django.db import models +from django.core.exceptions import ValidationError +import os class CustomUserManager(BaseUserManager): @@ -56,68 +58,129 @@ class skyonnAdmin(AbstractBaseUser): self.admin_id = f'{self.ADMIN_ID_PREFIX}{new_id:03d}' super().save(*args, **kwargs) - def __str__(self): + def _str_(self): return self.phone +class SubcompanyDetails(models.Model): + sub_client_id = models.CharField(max_length=20, null=True) + parent_company = models.CharField(max_length=100,null=True) + sub_company = models.CharField(max_length=100,unique=True,null=True) + GST_No = models.CharField(max_length=50, null=True) + location_id = models.CharField(max_length=100,null=True) + address_1 = models.CharField(max_length=200,null=True) + address_2 = models.CharField(max_length=200,null=True) + # Street = models.CharField(max_length=200,null=True) + City = models.CharField(max_length=200, null=True) + State = models.CharField(max_length=200,null=True) + Pincode =models.IntegerField(null=True) + country = models.CharField(max_length=200,null=True) + + + def _str_(self): + return f"{self.parent_company}" + + class Contact(models.Model): - client_id = models.CharField(max_length=20, null=True) - first_name = models.CharField(max_length=50) - last_name = models.CharField(max_length=50) - phone_no1 = models.CharField(max_length=20) - phone_no2 = models.CharField(max_length=20, blank=True, null=True) - company_email = models.EmailField() - designation = models.CharField(max_length=100) - department = models.CharField(max_length=100) - def __str__(self): - return f"{self.first_name} {self.last_name} - {self.company_email}" + # sub_client_id = models.ForeignKey(SubcompanyDetails,on_delete=models.CASCADE) + name = models.CharField(max_length=40,null=True) + designation = models.CharField(max_length=50,null=True) + department = models.CharField(max_length=50,null=True) + phone_no = models.CharField(max_length=50, null=True) + email = models.EmailField(null=True) + location = models.CharField(max_length=102,null=True) + def _str_(self): + return f"{self.name} - {self.department}" class ClientDetails(models.Model): - parent_company = models.CharField(max_length=100) - location = models.CharField(max_length=100) - department = models.CharField(max_length=100) - gst_no = models.CharField(max_length=50) - address = models.CharField(max_length=200) + # STATE_CHOICES =(('Andhra Pradesh','andhra Pradesh'),('Arunachal Pradesh','arunachal Pradesh'),('assam','Assam'), + # ('Bihar','bihar'),('Chhattisgarh','chhattisgarh'),('Goa','goa'),('Gujarat','Gujarat'),('Haryana','haryana'), + # ('Himachal Pradesh','himachal Pradesh'),('Jharkhand','jharkhand'),('Karnataka','karnataka'), + # ('Kerala','kerala'),) + client_id = models.CharField(max_length=20, null=True) - admin_first_name = models.CharField(max_length=50) - admin_last_name = models.CharField(max_length=50) - admin_phone_no1 = models.CharField(max_length=20) - admin_phone_no2 = models.CharField(max_length=20, blank=True, null=True) - admin_company_email = models.EmailField() - admin_designation = models.CharField(max_length=100, null=True) - admin_department = models.CharField(max_length=100, null=True) - admin_location = models.CharField(max_length=100, null=True) - admin_contacts = models.ManyToManyField(Contact, related_name='admin_contacts') - hr_contacts = models.ManyToManyField(Contact, related_name='hr_contacts') - accounts_contacts = models.ManyToManyField(Contact, related_name='accounts_contacts') - recruiter_contacts = models.ManyToManyField(Contact, related_name='recruiter_contacts') + parent_company = models.CharField(max_length=100,null=True, unique=True) + GST_No = models.CharField(max_length=50, null=True) + location_Id = models.CharField(max_length=100,null=True) + address_1 = models.CharField(max_length=300,blank=True,null=True) + address_2 = models.CharField(max_length=200,null=True,blank=True) + # Street=models.CharField(max_length=200,null=True) + City = models.CharField(max_length=200, null=True) + state = models.CharField(max_length=300, blank=True, null=True) + Pincode = models.IntegerField(null=True) + country = models.CharField(max_length=200,null=True) + + contacts = models.ManyToManyField(Contact, related_name='contacts') + + def _str_(self): + return f"{self.parent_company} - {self.location_Id}" + +class SublocationDetails(models.Model): + parent_company = models.CharField(max_length=100, null=True) + department = models.CharField(max_length=100, null=True) + GST_No = models.CharField(max_length=50, null=True) + Location = models.CharField(max_length=100, null=True) + address_1 = models.CharField(max_length=300, blank=True, null=True) + address_2 = models.CharField(max_length=200, null=True, blank=True) + City = models.CharField(max_length=200, null=True) + State = models.CharField(max_length=300, blank=True, null=True) + Pincode = models.IntegerField(null=True) + country = models.CharField(max_length=200, null=True) + + +class Locations(models.Model): + location = models.CharField(null=True, max_length=50) + + +class AddContact(models.Model): + Contact_id = models.CharField(max_length=30, null=True) + Company = models.CharField(max_length=100, null=True, blank=True) + Sub_company = models.CharField(max_length=100, null=True, blank=True) + FirstName = models.CharField(max_length=100, null=True) + LastName = models.CharField(max_length=50, null=True, blank=True) + Department = models.CharField(max_length=50, null=True, blank=True) + Designation = models.CharField(max_length=50, null=True, blank=True) + Phone_number = models.CharField(max_length=10, unique=True, null=True) + Email = models.EmailField(unique=True, null=True) + +class Client(models.Model): + parent_company = models.CharField(max_length=255) def __str__(self): - return f"{self.parent_company} - {self.location}" - - -class SubcompanyDetails(models.Model): - parent_company = models.CharField(max_length=100) - sub_company = models.CharField(max_length=100) - location = models.CharField(max_length=100) - department = models.CharField(max_length=100) - gst_no = models.CharField(max_length=50) - address = models.CharField(max_length=200) - client_id = models.CharField(max_length=20, null=True) - admin_first_name = models.CharField(max_length=50) - admin_last_name = models.CharField(max_length=50) - admin_phone_no1 = models.CharField(max_length=20) - admin_phone_no2 = models.CharField(max_length=20, blank=True, null=True) - admin_company_email = models.EmailField() - admin_designation = models.CharField(max_length=100, null=True) - admin_department = models.CharField(max_length=100, null=True) - admin_location = models.CharField(max_length=100, null=True) - admin_contacts = models.ManyToManyField(Contact, related_name='subcompany_admin_contacts') - hr_contacts = models.ManyToManyField(Contact, related_name='subcompany_hr_contacts') - accounts_contacts = models.ManyToManyField(Contact, related_name='subcompany_accounts_contacts') - recruiter_contacts = models.ManyToManyField(Contact, related_name='subcompany_recruiter_contacts') + return self.parent_company + +def validate_file_extension(value): + ext = os.path.splitext(value.name)[1] # Get file extension + valid_extensions = ['.pdf', '.jpg', '.jpeg'] + if not ext.lower() in valid_extensions: + raise ValidationError('Unsupported file extension. Allowed extensions are: .pdf, .jpg, .jpeg') + +class SPOC(models.Model): + name = models.CharField(max_length=255,null=True) + +class InternalTeam(models.Model): + FirstName = models.CharField(max_length=100, null=True) + LastName = models.CharField(max_length=100, null=True) + Designation = models.CharField(max_length=100, null=True) + Department = models.CharField(max_length=100, null=True) + Address_1 = models.CharField(max_length=255, null=True) + Address_2 = models.CharField(max_length=255, blank=True, null=True) + City = models.CharField(max_length=100) + State = models.CharField(max_length=100, null=True) + Pincode = models.CharField(max_length=6, null=True) + Country = models.CharField(max_length=100, null=True) + PhoneNo1 = models.CharField(max_length=15, null=True) + LandNumber = models.CharField(max_length=25, blank=True, null=True) + Email1 = models.EmailField(null=True) + Email2 = models.EmailField(max_length=50,null=True) + Level = models.CharField(max_length=50, null=True) + + Login = models.EmailField(null=True) + Password = models.CharField(max_length=50, null=True) + user_id = models.CharField(max_length=50, null=True) def __str__(self): - return f"{self.parent_company} - {self.location}" + return f"{self.FirstName} {self.LastName}" + diff --git a/skyonnweb/skyonnadmin/serializers.py b/skyonnweb/skyonnadmin/serializers.py new file mode 100644 index 0000000..953a451 --- /dev/null +++ b/skyonnweb/skyonnadmin/serializers.py @@ -0,0 +1,10 @@ +from rest_framework import serializers +from .models import SubcompanyDetails + +class DetailsSerializer(serializers.Serializer): + client_details= serializers.ListField(child=serializers.DictField()) + sub_company_details = serializers.ListField(child=serializers.DictField()) + + class Meta: + model = SubcompanyDetails + fields = '__all__' diff --git a/skyonnweb/skyonnadmin/urls.py b/skyonnweb/skyonnadmin/urls.py index f8d3c3f..18fd45e 100644 --- a/skyonnweb/skyonnadmin/urls.py +++ b/skyonnweb/skyonnadmin/urls.py @@ -4,7 +4,9 @@ from . import views urlpatterns = [ path('', views.home, name='admin_home'), path('create_admin/', views.create_admin, name='create_admin'), - path('admin-login/', views.login, name='admin-login'), # URL for login + path('admin_login/', views.admin_login, name='admin_login'), # URL for login + path('validate_admin/', views.validate_admin, name='validate_admin'), + path('get_admin_details/', views.get_admin_details, name='get_admin_details'), path('admin/dashboard//', views.admin_dashboard, name='dashboard'), path('admin_logout/', views.logout_view, name='admin_logout'), # path('client_details/', views.client_details, name='client_details'), @@ -16,12 +18,50 @@ urlpatterns = [ path('add_subclient/', views.add_subclient, name='add_subclient'), path('add_client/', views.add_client, name='add_client'), path('existing_client/', views.existing_client, name='existing_client'), - path('get_contacts/', views.get_contacts, name='get_contacts'), + + path('new_job_postings/', views.new_job_posting, name='new_job_postings'), + + # path('get_contacts/', views.get_contacts, name='get_contacts'), path('save-details/', views.save_details, name='save_details'), + path('get_GSTNo/', views.get_GSTNo, name='get_GSTNo'), path('save-details-subcompany/', views.save_details_subcompany, name='save-details-subcompany'), + path('get_parentCompany/', views.get_parentCompany, name='get_parentCompany'), + path('save_sublocation/', views.save_sublocation, name='save_sublocation'), path('api/get_subcompanies/', views.get_locations, name='get_subcompanies'), path('get_subcompany_details/', views.get_combined_details, name='get_subcompany_details'), + path('add_new_contact/', views.add_new_contact, name='add_new_contact'), + path('add_location/', views.add_locations, name='add_location'), + path('get_subclients/', views.get_subclients, name='get_subclients'), + path('get_filtered_data/', views.get_filtered_data, name='get_filtered_data'), + path('save_new_entry/', views.save_new_entry, name='save_new_entry'), path('add_contact/', views.add_contact, name='add_contact'), + path('get_team_details/', views.get_team_details, name='get_team_details'), + path('get_department/', views.get_department, name='get_department'), + path('get_SearchData/', views.get_SearchData, name='get_SearchData'), + path('check_parent_company/', views.check_parent_company, name='check_parent_company'), + path('check_sub_company/', views.check_sub_company, name='check_sub_company'), + # path('save_job_posting/', views.save_job_posting, name='save_job_posting'), + + path('edit_CompanyDetails/', views.edit_CompanyDetails, name='edit_CompanyDetails'), + path('delete_CompanyDetails/', views.delete_CompanyDetails, name='delete_CompanyDetails'), + path('edit_teamDetails/', views.edit_teamDetails, name='edit_teamDetails'), + path('delete_teamDetails/', views.delete_teamDetails, name='delete_teamDetails'), + path('validate_field/', views.validate_field, name='validate_field'), + path('validate_cell_field/', views.validate_cell_field, name='validate_cell_field'), + path('Internal_team_details/', views.Internal_team_details, name='Internal_team_details'), + path('save_Internal_team_Details/', views.save_Internal_team_Details, name='save_Internal_team_Details'), + path('validate_internal_team/', views.validate_internal_team, name='validate_internal_team'), + path('validate_internal_team/', views.validate_internal_team, name='validate_internal_team'), + path('existing_employee/', views.existing_employee, name='existing_employee'), + path('validate_existingEmployee/', views.validate_existingEmployee, name='validate_existingEmployee'), + path('delete_internalTeam/', views.delete_internalTeam, name='delete_internalTeam'), + path('edit_internalTeam/', views.edit_internalTeam, name='edit_internalTeam'), + path('print_internalTeam/', views.print_internalTeam, name='print_internalTeam'), + + path('get_row_count/', views.get_row_count, name='get_row_count'), + path('load_excel_data/', views.load_excel_data, name='load_excel_data'), + path('get_employee/', views.get_employee, name='get_employee'), ] + diff --git a/skyonnweb/skyonnadmin/views.py b/skyonnweb/skyonnadmin/views.py index 8da3288..542e3d9 100644 --- a/skyonnweb/skyonnadmin/views.py +++ b/skyonnweb/skyonnadmin/views.py @@ -1,7 +1,7 @@ from django.contrib import messages from django.contrib.auth import authenticate, login as auth_login, logout from django.shortcuts import render, redirect, get_object_or_404 -from .models import skyonnAdmin, ClientDetails, SubcompanyDetails, Contact +from .models import skyonnAdmin, ClientDetails, SubcompanyDetails, Contact, Locations, AddContact, SublocationDetails,InternalTeam from django.contrib.auth.hashers import make_password from django.http import HttpResponse import random @@ -11,6 +11,16 @@ import json from django.core.serializers.json import DjangoJSONEncoder from django.views.decorators.csrf import csrf_exempt from django.views.decorators.http import require_http_methods +from django.core.exceptions import ObjectDoesNotExist +from .serializers import DetailsSerializer +from django.core.validators import validate_email +from django.core.exceptions import ValidationError +import re +from django.http import JsonResponse +from django.db.models import Q +from django.core.mail import send_mail +import threading +import pandas as pd def home(request): return render(request, 'skyonnadmin/home.html') @@ -18,11 +28,10 @@ def home(request): def create_admin(request): if request.method == 'POST': - # Retrieve data from the form first_name = request.POST['first_name'] last_name = request.POST['last_name'] phone_number = request.POST['phone'] - phone_number_2 = request.POST.get('phone_number_2') + phone_number_2 = request.POST.get('phone_2') company_email = request.POST['company_email'] personal_email = request.POST.get('personal_email') address = request.POST['address'] @@ -31,6 +40,8 @@ def create_admin(request): password = request.POST['password'] # Assuming there's a password field in the form hashed_password = make_password(password) + picture = request.FILES.get('picture') + # Generate admin ID based on the last ID in the database last_admin = skyonnAdmin.objects.order_by('-id').first() if last_admin: @@ -52,45 +63,70 @@ def create_admin(request): work_location=work_location, role=role, admin_id=admin_id, - password=hashed_password + password=hashed_password, + picture= picture ) + print((admin.first_name, admin.last_name)) admin.backend = 'user.backend.PhoneAuthenticationBackend' auth_login(request, admin) - return redirect('dashboard', admin_id=admin.admin_id) + return JsonResponse( + {'success': 'Login successful', 'redirect_url': f'/skyonnadmin/admin/dashboard/{admin.admin_id}'}) else: return render(request, 'skyonnadmin/home.html') - # # Redirect to the admin signup page - # return redirect('home') - # - # return render(request, 'skyonnadmin/home.html') + +def validate_admin(request): + if request.method == 'GET': + email1 = request.GET.get('company_email') + email2 = request.GET.get('personal_email') + phone_number1 = request.GET.get('phone') + phone_number2 = request.GET.get('phone_2') + response = { + 'exists': False + } + if email1 and (skyonnAdmin.objects.filter(company_email=email1).exists() or + skyonnAdmin.objects.filter(personal_email=email1).exists()): + response['exists'] = True + + if email2 and (skyonnAdmin.objects.filter(company_email=email2).exists() or + skyonnAdmin.objects.filter(personal_email=email2).exists()): + response['exists'] = True + + if phone_number1 and (skyonnAdmin.objects.filter(phone=phone_number1).exists() or + skyonnAdmin.objects.filter(phone_number_2=phone_number1).exists()): + response['exists'] = True + + if phone_number2 and (skyonnAdmin.objects.filter(phone=phone_number2).exists() or + skyonnAdmin.objects.filter(phone_number_2=phone_number2).exists()): + response['exists'] = True + + return JsonResponse(response) -def login(request): +def admin_login(request): if request.method == 'POST': phone = request.POST.get('phone') password = request.POST.get('password') - print("Phone:", phone) - # Retrieve the admin object based on the provided phone number + if not phone and 'phone' in request.POST: + return JsonResponse({'error': 'Please fill the phone number field.'}, status=400) + if not password and 'password' in request.POST: # Validate password if it's present + return JsonResponse({'error': 'Please fill the password field.'}, status=400) + admin = skyonnAdmin.objects.filter(phone=phone).first() - print(admin) - - if admin is not None: - # Check if the provided password matches the stored password - if admin.check_password(password): - # Password is correct, login successful - # You can implement your login logic here - print("Admin ID:", admin.admin_id) - return redirect('dashboard', admin_id=admin.admin_id) - else: - # Password is incorrect - messages.error(request, 'Invalid password.') - else: - # Admin with the provided phone number does not exist - messages.error(request, 'No admin found for the provided phone number.') + if admin is None: + return JsonResponse({'error': 'Incorrect phone number.'}, status=404) - return render(request, 'skyonnadmin/home.html') + if password: + if not admin.check_password(password): + return JsonResponse({'error': 'Incorrect password.'}, status=401) + + return JsonResponse( + {'success': 'Login successful', 'redirect_url': f'/skyonnadmin/admin/dashboard/{admin.admin_id}'}) + + return JsonResponse({'success': 'Phone number is valid.'}, status=200) + + return JsonResponse({'error': 'Invalid request method.'}, status=405) def admin_dashboard(request, admin_id): @@ -101,7 +137,7 @@ def admin_dashboard(request, admin_id): full_name = f"{first_name}" print(full_name) - return render(request, 'skyonnadmin/admin_dashboard.html', {'first_name': full_name, 'admin_id': admin_id}) + return render(request, 'skyonnadmin/admin_dashboard.html', {'first_name': full_name, 'admin_id': admin_id,'picture': admin.picture}) # Admin dashboard logic goes here @@ -109,66 +145,102 @@ def logout_view(request): logout(request) return redirect('admin_home') +def get_admin_details(request): + admin_id = request.GET.get('admin_id', None) + print(admin_id) + admin = get_object_or_404(skyonnAdmin, admin_id=admin_id) + print('admin:', admin) + + admin_picture = admin.picture.url + + admin_data = { + 'first_name': admin.first_name, + 'last_name': admin.last_name, + 'phone': admin.phone, + 'phone_number_2': admin.phone_number_2, + 'company_email': admin.company_email, + 'personal_email': admin.personal_email, + 'address': admin.address, + 'work_location': admin.work_location, + 'admin_picture': admin_picture + } + return JsonResponse({'admin_data': admin_data}) -def client_details(request): +def client_details(request): return render(request, 'skyonnadmin/client_details.html') def add_subclient(request): admin_id = request.GET.get('admin_id', None) clients = ClientDetails.objects.all() - return render(request, 'skyonnadmin/add_subclient.html', {'clients': clients,'admin_id': admin_id}) + return render(request, 'skyonnadmin/add_subclient.html', {'clients': clients, 'admin_id': admin_id}) def add_client(request): admin_id = request.GET.get('admin_id', None) print(admin_id) clients = ClientDetails.objects.all() - return render(request, 'skyonnadmin/add_client.html', {'clients': clients,'admin_id': admin_id}) + return render(request, 'skyonnadmin/add_client.html', {'clients': clients, 'admin_id': admin_id}) def existing_client(request): - return render(request, 'skyonnadmin/existing_client.html') + clients = ClientDetails.objects.all() + return render(request, 'skyonnadmin/existing_client.html', {'clients': clients}) + +def new_job_posting(request): + admin_id = request.GET.get('admin_id', None) + return render(request, 'skyonnadmin/new_job_posting.html', {'admin_id': admin_id}) + +def add_new_contact(request): + clients = ClientDetails.objects.all() + sub_clients = SubcompanyDetails.objects.all() + return render(request, 'skyonnadmin/add_new_contact.html',{'clients': clients,'sub_clients': sub_clients}) +@csrf_exempt def save_details(request): if request.method == 'POST': + # Extract data from the first form parent_company = request.POST.get('ParentCompany', '') - location = request.POST.get('Location', '') - department = request.POST.get('Department', '') - gst_no = request.POST.get('GSTNo', '') - address = request.POST.get('Address', '') - - # Extract data from the second form - first_name = request.POST.get('Admin_FirstName', '') - last_name = request.POST.get('Admin_LastName', '') - phone_no1 = request.POST.get('Admin_PhoneNo1', '') - phone_no2 = request.POST.get('Admin_PhoneNo2', '') - company_email = request.POST.get('Admin_CompanyEmail', '') - designation = request.POST.get('Admin_Designation', '') - admin_department = request.POST.get('Admin_Department', '') - admin_location = request.POST.get('Admin_Location', '') - print(admin_location) + locationId = request.POST.get('Location_Id', '') + GST_No = request.POST.get('GSTNo', '') + address_1 = request.POST.get('Address_1', '') + state = request.POST.get('State', '') + # Street = request.POST.get('Street', '') + City = request.POST.get('City', '') + country = request.POST.get('country', '') + address_2 = request.POST.get('Address_2', '') + Pincode = request.POST.get('Pincode', '') + client_id = generate_client_id(parent_company) + print(client_id) + if not parent_company or not locationId or not GST_No or not address_1 or not state or not City or not country or not Pincode: + return JsonResponse({'status': 'error','message': 'Error while saving client.Please fill required fields'}, + status=400) + # if ClientDetails.objects.filter(parent_company=parent_company.upper()).exists(): + # return JsonResponse({'status': 'error','field': 'ParentCompany', 'message': 'Parent Company already exists'}, status=400) + # # Save data into the database + parent_company_proper = parent_company.title() + + # Check for duplicate ParentCompany + if ClientDetails.objects.filter(parent_company=parent_company_proper).exists(): + return JsonResponse( + {'status': 'error', 'field': 'ParentCompany', 'message': 'Parent Company already exists'}, status=400) - # Save data into the database job_details = ClientDetails( - parent_company=parent_company, - location=location, - department=department, - gst_no=gst_no, - address=address, + parent_company=parent_company_proper, + location_Id=locationId, + GST_No=GST_No, + address_1=address_1, + state=state, + # Street= Street, + City=City, + country=country, + address_2=address_2, + Pincode=Pincode, client_id=client_id, - admin_first_name=first_name, - admin_last_name=last_name, - admin_phone_no1=phone_no1, - admin_phone_no2=phone_no2, - admin_company_email=company_email, - admin_designation=designation, - admin_department=admin_department, - admin_location=admin_location ) job_details.save() admin_id = request.GET.get('admin_id', None) @@ -178,56 +250,123 @@ def save_details(request): return HttpResponse('Invalid request method') +def check_parent_company(request): + if request.method == 'GET': + parent_company = request.GET.get('ParentCompany', '').strip().upper() + print(parent_company) + exists = ClientDetails.objects.filter(parent_company=parent_company).exists() + return JsonResponse({'exists': exists}) + return JsonResponse({'error': 'Invalid request method'}, status=400) + +def get_parentCompany(request): + clients = ClientDetails.objects.values('parent_company') + print(clients) + return JsonResponse(list(clients), safe=False) + +def save_sublocation(request): + if request.method == 'POST': + parent_company = request.POST.get('ParentCompany', '') + department = request.POST.get('Department', '') + Location = request.POST.get('Location', '') + GST_No = request.POST.get('GSTNo', '') + address_1 = request.POST.get('Address_1', '') + address_2 = request.POST.get('Address_2', '') + # Street = request.POST.get('Street', '') + City = request.POST.get('City', '') + State = request.POST.get('State', '') + Pincode = request.POST.get('Pincode', '') + country = request.POST.get('country', '') + + if not parent_company or not department or not Location or not GST_No or not address_1 or not State or not City or not country or not Pincode: + return JsonResponse({'status': 'error', 'message': 'Error while saving Sub_Location.Please fill required fields'}, + status=400) + + # Save data into the database + job_details = SublocationDetails( + parent_company=parent_company, + department= department, + Location=Location, + GST_No=GST_No, + address_1=address_1, + address_2=address_2, + # Street = Street, + City=City, + State=State, + Pincode=Pincode, + country=country, ) + job_details.save() + admin_id = request.GET.get('admin_id', None) + print(admin_id) + return JsonResponse({'status': 'success', 'message': 'sublocation saved successfully.'}) + else: + return JsonResponse({'status': 'error', 'message': 'Invalid request method'}, status=400) + +def get_GSTNo(request): + if request.method == 'GET': + parent_company = request.GET.get('ParentCompany') + gst_no = ClientDetails.objects.filter(parent_company=parent_company).values('GST_No') + gst = list(gst_no) + print(gst) + return JsonResponse(gst[0],safe=False) + else: + return JsonResponse({'error': 'Invalid request'}) + + @csrf_exempt def save_details_subcompany(request): print("00came") if request.method == 'POST': # Extract data from the first form parent_company = request.POST.get('ParentCompany', '') - location = request.POST.get('Location', '') - department = request.POST.get('Department', '') - gst_no = request.POST.get('GSTNo', '') - address = request.POST.get('Address', '') sub_company = request.POST.get('SubCompany', '') + location_id = request.POST.get('Location_Id', '') + GST_No = request.POST.get('GSTNo', '') + address_1 = request.POST.get('Address_1', '') + address_2 = request.POST.get('Address_2', '') + # Street = request.POST.get('Street', '') + City = request.POST.get('City', '') + State = request.POST.get('State', '') + Pincode = request.POST.get('Pincode', '') + country = request.POST.get('country', '') - # Extract data from the second form - first_name = request.POST.get('Admin_FirstName', '') - last_name = request.POST.get('Admin_LastName', '') - phone_no1 = request.POST.get('Admin_PhoneNo1', '') - phone_no2 = request.POST.get('Admin_PhoneNo2', '') - company_email = request.POST.get('Admin_CompanyEmail', '') - designation = request.POST.get('Admin_Designation', '') - admin_department = request.POST.get('Admin_Department', '') - admin_location = request.POST.get('Admin_Location', '') - print(admin_location) - client_id = generate_client_id(parent_company) - + sub_client_id = generate_client_id(parent_company) + print(sub_client_id) + if not parent_company or not sub_company or not location_id or not address_1 or not State or not City or not country or not Pincode: + return JsonResponse({'status': 'error', 'message': 'Error while saving Sub_client.Please fill required fields'}, + status=400) + if SubcompanyDetails.objects.filter(sub_company=sub_company.title()).exists(): + return JsonResponse({'status': 'error','field': 'SubCompany', 'message': 'Sub_Company already exists'}, status=400) # Save data into the database job_details = SubcompanyDetails( parent_company=parent_company, - sub_company=sub_company, - location=location, - department=department, - gst_no=gst_no, - address=address, - client_id=client_id, - admin_first_name=first_name, - admin_last_name=last_name, - admin_phone_no1=phone_no1, - admin_phone_no2=phone_no2, - admin_company_email=company_email, - admin_designation=designation, - admin_department=admin_department, - admin_location=admin_location + sub_company=sub_company.title(), + location_id=location_id, + GST_No=GST_No , + address_1=address_1, + address_2=address_2, + # Street = Street, + City = City, + State = State, + Pincode = Pincode, + country= country, + sub_client_id=sub_client_id, + ) job_details.save() admin_id = request.GET.get('admin_id', None) + print(admin_id) return JsonResponse({'status': 'success', 'message': 'subclient saved successfully.'}) - else: return JsonResponse({'status': 'error', 'message': 'Invalid request method'}, status=400) +def check_sub_company(request): + if request.method == 'GET': + sub_company = request.GET.get('SubCompany', '').strip().upper() + print(sub_company) + exists = SubcompanyDetails.objects.filter(sub_company=sub_company).exists() + return JsonResponse({'exists': exists}) + return JsonResponse({'error': 'Invalid request method'}, status=400) def get_combined_details(request): parent_company = request.GET.get('parent_company') @@ -249,15 +388,7 @@ def get_combined_details(request): 'gst_no': detail.gst_no, 'address': detail.address, 'client_id': detail.client_id, - 'admin_first_name': detail.admin_first_name, - 'admin_last_name': detail.admin_last_name, - 'admin_phone_no1': detail.admin_phone_no1, - 'admin_phone_no2': detail.admin_phone_no2, - 'admin_company_email': detail.admin_company_email, - 'admin_designation': detail.admin_designation, - 'admin_department': detail.admin_department, - 'admin_location': detail.admin_location, - # Add contacts data if needed + }) # Add subcompany details to combined_data @@ -266,19 +397,11 @@ def get_combined_details(request): 'parent_company': detail.parent_company, 'sub_company': detail.sub_company, 'location': detail.location, - 'department': detail.department, + # 'department': detail.department, 'gst_no': detail.gst_no, 'address': detail.address, 'client_id': detail.client_id, - 'admin_first_name': detail.admin_first_name, - 'admin_last_name': detail.admin_last_name, - 'admin_phone_no1': detail.admin_phone_no1, - 'admin_phone_no2': detail.admin_phone_no2, - 'admin_company_email': detail.admin_company_email, - 'admin_designation': detail.admin_designation, - 'admin_department': detail.admin_department, - 'admin_location': detail.admin_location, - # Add contacts data if needed + }) print(combined_data) return JsonResponse(combined_data, safe=False) @@ -306,55 +429,858 @@ def generate_client_id(parent_company): return client_id -def get_contacts(request): - client_id = request.GET.get('client_id') - department = request.GET.get('department') - client_details = ClientDetails.objects.filter(client_id=client_id).first() +# def get_contacts(request): +# if request.method == 'GET': +# client = request.GET.get('Client') +# print(client) +# SPOC_Details = AddContact.objects.filter(Company=client).values('FirstName','Department') +# +# SPOC_Details_list = list(SPOC_Details) +# return JsonResponse(SPOC_Details_list, safe=False) +# else: +# return JsonResponse({'error': 'Invalid request'}) + + +def add_locations(request): + locations_list = ['Hyderabad', 'Pune', 'Chennai', 'Mumbai', 'Cochin', 'Ahmedabad', 'Bangalore'] + for location in locations_list: + try: + Locations.objects.get(location=location) + print(f"Location '{location}' already exists.") + except ObjectDoesNotExist: + Locations.objects.create(location=location) + print(f"Added location '{location}' to the database.") + + +def get_subclients(request): + if request.method == 'GET' and 'parent_company' in request.GET: + parent_company = request.GET['parent_company'] + # Query SubcompanyDetails table to filter sub-clients by parent company + sub_clients = SubcompanyDetails.objects.filter(parent_company=parent_company).values_list('sub_company', + flat=True) + # Convert queryset to list + sub_clients_list = list(sub_clients) + return JsonResponse(sub_clients_list, safe=False) + else: + return JsonResponse({'error': 'Invalid request'}) + + +def get_filtered_data(request): + if request.method == 'GET': + client = request.GET.get('client') + sub_client = request.GET.get('subClient') + + client_details = ClientDetails.objects.filter(parent_company=client) + client_id = [data.client_id for data in client_details] + print(client_id) + # Filter SubcompanyDetails based on client and sub-client + if sub_client == 'All Sub Clients': + sub_company_details = SubcompanyDetails.objects.filter(parent_company=client) + else: + sub_company_details = SubcompanyDetails.objects.filter(parent_company=client, sub_company=sub_client) + sub_client_id=[data.sub_client_id for data in sub_company_details] + print(sub_client_id) - if department == 'hiring_managers': - contacts = client_details.hiring_manager_contacts.all() - elif department == 'accounts': - contacts = client_details.accounts_contacts.all() - elif department == 'human_resources': - contacts = client_details.hr_contacts.all() - elif department == 'administration': - contacts = client_details.admin_contacts.all() + filtered_data = { + 'client_details':list(client_details.values()), + 'sub_company_details': list(sub_company_details.values()) + } + + # # Serialize the filtered data + serializer = DetailsSerializer(filtered_data) + print(serializer.data) + + return JsonResponse(serializer.data, safe=False) else: - contacts = [] + return JsonResponse({'error': 'Invalid request method'}, status=400) - contacts_data = [{ - "name": f"{contact.first_name} {contact.last_name}", - "designation": contact.designation, - "department": contact.department, - "phone": contact.phone_no1, - "email": contact.company_email, - "location": contact.client_id.location, # Adjust based on your model relationships - } for contact in contacts] +def save_new_entry(request): + if request.method == 'POST': + data = json.loads(request.body) + rowData = data.get('rowData') + department = data.get('department') - return JsonResponse({"contacts": contacts_data}) + # Retrieve the SubcompanyDetails instance based on the department + subcompany_instance = get_object_or_404(SubcompanyDetails, department=department) + + # Save the new contact data to the appropriate contact field + if subcompany_instance: + new_contact = Contact.objects.create(**rowData) + getattr(subcompany_instance, 'admin_contacts').add(new_contact) + return JsonResponse({'message': 'New entry saved successfully.'}, status=200) + else: + return JsonResponse({'message': f'No SubcompanyDetails instance found for department: {department}'}, status=404) + else: + return JsonResponse({'message': 'Invalid request method.'}, status=400) -@csrf_exempt -@require_http_methods(["POST"]) def add_contact(request): - print("hii") - # Extract information from the request - department = request.POST.get('department') - # Assume 'sub_company_id' is passed to identify which SubcompanyDetails to update - sub_company_id = request.POST.get('sub_company_id') - # Create the Contact instance (simplified, add validation and error handling) - contact = Contact( - first_name=request.POST.get('first_name'), - last_name=request.POST.get('last_name'), - # Add other fields as necessary - ) - contact.save() - - # Add the contact to the appropriate department of the SubcompanyDetails instance - sub_company = SubcompanyDetails.objects.get(id=sub_company_id) - if department == 'HR': - sub_company.hr_contacts.add(contact) - elif department == 'Accounts': - sub_company.accounts_contacts.add(contact) - # Add conditions for other departments as needed - - return JsonResponse({"success": True, "message": "Contact added successfully."}) \ No newline at end of file + print("00came") + if request.method == 'POST': + # Extract data from the form + Company = request.POST.get('Company', '') + Sub_company = request.POST.get('Sub_Company') or Company + LastName = request.POST.get('LastName', '') + FirstName = request.POST.get('FirstName', '') + Department = request.POST.get('Department', '') + Designation = request.POST.get('Designation', '') + Phone_number = request.POST.get('Phone_number', '') + Email = request.POST.get('Email', '') + + contact_id = generate_client_id(Company) + print(contact_id) + if not Company or not FirstName or not Department or not Designation or not Phone_number or not Email: + return JsonResponse({'status': 'error', 'message': 'Error while saving Sub_client.Please fill required fields'}, + status=400) + + # Save data into the database + add_contact = AddContact( + Company=Company, + Sub_company=Sub_company, + FirstName=FirstName, + LastName=LastName, + Department=Department, + Designation=Designation, + Phone_number=Phone_number, + Email=Email, + Contact_id=contact_id + ) + add_contact.save() + + admin_id = request.GET.get('admin_id', None) + print(admin_id) + + return JsonResponse({'status': 'success', 'message': 'Contact saved successfully.'}) + + else: + return JsonResponse({'status': 'error', 'message': 'Invalid request method'}, status=400) + +def validate_field(request): + if request.method == 'GET': + email = request.GET.get('Email') + phone_number = request.GET.get('Phone_number') + response = { + 'exists': False + } + if email and AddContact.objects.filter(Email=email).exists(): + response['exists'] = True + elif phone_number and AddContact.objects.filter(Phone_number=phone_number).exists(): + response['exists'] = True + return JsonResponse(response) + + +def validate_cell_field(request): + if request.method == 'GET': + email = request.GET.get('Email') + phone_number = request.GET.get('Phone_number') + contact_id = request.GET.get('Contact_id') + print('contact_id:',contact_id) + + response = { + 'email_exists': False, + 'phone_exists': False + } + if email: + existing_email_contact = AddContact.objects.filter(Email=email).first() + if existing_email_contact and existing_email_contact.Contact_id != contact_id: + response['email_exists'] = True + + # Check for existing phone number but ignore if it's the same contact + if phone_number: + existing_phone_contact = AddContact.objects.filter(Phone_number=phone_number).first() + if existing_phone_contact and existing_phone_contact.Contact_id != contact_id: + response['phone_exists'] = True + + return JsonResponse(response) + + + +# def save_job_posting(request): +# if request.method == 'POST': +# # Extract data from the form +# Client = request.POST.get('Client', '') +# JobID = request.POST.get('JobID', '') +# Location = request.POST.get('Location', '') +# SPOC = request.POST.get('SPOC', '') +# SPOC2 = request.POST.get('SPOC2', '') +# StartDate = request.POST.get('StartDate', '') +# CloseDate = request.POST.get('CloseDate', '') +# BudgetMin = request.POST.get('BudgetMin', '') +# BudgetMax = request.POST.get('BudgetMax', '') +# Header = request.POST.get('Header', '') +# JobDescription = request.POST.get('JobDescription', '') +# Experience_in_Yrs = request.POST.get('Experience_in_Yrs', '') +# NoOfPosting = request.POST.get('NoOfPosting', '') +# Type = request.POST.get('Type', '') +# SpecialInstructions = request.POST.get('SpecialInstructions', '') +# JD = request.POST.get('JD', '' ) +# +# jobposting = JobPosting( +# Client=Client, +# JobID=JobID, +# Location=Location, +# SPOC=SPOC, +# SPOC2=SPOC2, +# StartDate=StartDate, +# CloseDate=CloseDate, +# BudgetMin=BudgetMin, +# BudgetMax=BudgetMax, +# Header=Header, +# JobDescription=JobDescription, +# Experience_in_Yrs=Experience_in_Yrs, +# NoOfPosting=NoOfPosting, +# Type=Type, +# SpecialInstructions=SpecialInstructions, +# JD=JD, +# ) +# jobposting.save() +# print(jobposting) +# +# admin_id = request.GET.get('admin_id', None) +# print(admin_id) +# +# return JsonResponse({'status': 'success', 'message': 'Job_posting saved successfully.'}) +# +# else: +# return JsonResponse({'status': 'error', 'message': 'Invalid request method'}, status=400) + +def get_team_details(request): + if request.method == 'GET': + client = request.GET.get('client') + sub_client = request.GET.get('subClient') + + if not sub_client: + contacts = AddContact.objects.filter(Company=client, Sub_company='') + elif sub_client == 'All Sub Clients': + contacts = AddContact.objects.filter(Company=client) + else: + contacts = AddContact.objects.filter(Company=client, Sub_company=sub_client) + + filtered_data = { + 'contacts': list(contacts.values()), + } + # Return serialized data as JSON response + return JsonResponse(filtered_data, safe=False) + # return JsonResponse({"success": True, "message": "Contact added successfully."}) + + else: + return JsonResponse({'error': 'Invalid request method'}, status=400) + + +def get_department(request): + if request.method == 'GET': + department = request.GET.get('Department') + client = request.GET.get('client') + sub_client = request.GET.get('subClient') + + if not sub_client: + departments = AddContact.objects.filter(Department=department, Company=client, Sub_company='').distinct() + elif sub_client == 'All Sub Clients': + departments = AddContact.objects.filter(Department=department, Company=client).distinct() + else: + departments = AddContact.objects.filter(Department=department, Company=client, + Sub_company=sub_client).distinct() + # Convert queryset to list + department_list = list(departments.values()) + + return JsonResponse(department_list, safe=False) + # return JsonResponse({"success": True, "message": "Contact added successfully."}) + else: + return JsonResponse({'error': 'Invalid request method'}, status=400) + + +def get_SearchData(request): + if request.method == 'GET': + client = request.GET.get('client') + sub_client = request.GET.get('subClient') + searchKeyword = request.GET.get('searchKeyword') + + query1 = Q() + query2 = Q() + query3 = Q() + + if client: + query1 &= Q(Company__icontains=client) + query2 &= Q(parent_company__icontains=client) + query3 &= Q(parent_company__icontains=client) + + if sub_client and sub_client != 'All Sub Clients': + query1 &= Q(Sub_company__icontains=sub_client) + query2 &= Q(parent_company__icontains=sub_client) + query3 &= Q(sub_company__icontains=sub_client) + + if searchKeyword: + keywords = searchKeyword.split() + search_query1 = Q() + + search_query1 |= ( + Q(Sub_company__icontains=searchKeyword) | + Q(Company__icontains=searchKeyword) | + Q(FirstName__icontains=searchKeyword) | + Q(LastName__icontains=searchKeyword) | + Q(Designation__icontains=searchKeyword) | + Q(Department__icontains=searchKeyword) | + Q(Phone_number__icontains=searchKeyword) | + Q(Email__icontains=searchKeyword) + ) + + # Handle case for multiple words in keyword (e.g., "account department") + for word in keywords: + search_query1 |= ( + Q(Sub_company__icontains=word) | + Q(Company__icontains=word) | + Q(FirstName__icontains=word) | + Q(LastName__icontains=word) | + Q(Designation__icontains=word) | + Q(Department__icontains=word) | + Q(Phone_number__icontains=word) | + Q(Email__icontains=word) + ) + + # Handle concatenated names (e.g., "JohnDoe") + if len(keywords) == 1: # Check for single-word input + for i in range(1, len(searchKeyword)): + possible_first_name = searchKeyword[:i] + possible_last_name = searchKeyword[i:] + search_query1 |= ( + Q(FirstName__icontains=possible_first_name) & + Q(LastName__icontains=possible_last_name) + ) + elif len(keywords) == 2: # If two parts exist, treat as FirstName and LastName + first_name, last_name = keywords + search_query1 |= ( + Q(FirstName__icontains=first_name) & Q(LastName__icontains=last_name) + ) + + query1 &= search_query1 + + search_query2 = ( + Q(parent_company__icontains=searchKeyword) | Q(GST_No__icontains=searchKeyword) | + Q(location_Id__icontains=searchKeyword)) + query2 &= search_query2 + + search_query3 = ( + Q(sub_company__icontains=searchKeyword) | Q(parent_company__icontains=searchKeyword) | + Q(GST_No__icontains=searchKeyword) | Q(location_id__icontains=searchKeyword)) + query3 &= search_query3 + + contacts = AddContact.objects.filter(query1).values() + client_details = ClientDetails.objects.filter(query2).values() + sub_company_details = SubcompanyDetails.objects.filter(query3).values() + + filtered_data = { + 'contacts': list(contacts), + 'client_details': list(client_details), + 'sub_company_details': list(sub_company_details) + } + + return JsonResponse(filtered_data, safe=False) + else: + return JsonResponse({'error': 'Invalid request method'}, status=400) + + +def edit_CompanyDetails(request): + if request.method == 'POST': + try: + data = json.loads(request.body) + id = data.get('client_id') or data.get('sub_client_id') + print(id) + + if not id: + return JsonResponse({'error': 'ID parameter missing'}, status=400) + + if 'client_id' in data: + client = ClientDetails.objects.filter(client_id=id).first() + if client: + client.parent_company = data.get('parent_company', client.parent_company) + client.GST_No = data.get('GST_No', client.GST_No) + client.location_Id = data.get('location_Id', client.location_Id) + client.address_1 = data.get('address_1', client.address_1) + client.address_2 = data.get('address_2', client.address_2) + client.City = data.get('City', client.City) + client.state = data.get('state', client.state) + client.Pincode = data.get('Pincode', client.Pincode) + client.country = data.get('country', client.country) + client.save() + print(client) + return JsonResponse({'message': 'Client details updated successfully.'}, status=200) + + if 'sub_client_id' in data: + sub_client = SubcompanyDetails.objects.filter(sub_client_id=id).first() + if sub_client: + sub_client.parent_company = data.get('parent_company', sub_client.parent_company) + sub_client.sub_company = data.get('sub_company', sub_client.sub_company) + sub_client.GST_No = data.get('GST_No', sub_client.GST_No) + sub_client.location_id = data.get('location_id', sub_client.location_id) + sub_client.address_1 = data.get('address_1', sub_client.address_1) + sub_client.address_2 = data.get('address_2', sub_client.address_2) + sub_client.City = data.get('City', sub_client.City) + sub_client.State = data.get('State', sub_client.State) + sub_client.Pincode = data.get('Pincode', sub_client.Pincode) + sub_client.country = data.get('country', sub_client.country) + sub_client.save() + print(sub_client) + return JsonResponse({'message': 'Sub-client details updated successfully.'}, status=200) + + return JsonResponse({'error': 'Company details not found.'}, status=404) + + except json.JSONDecodeError: + return JsonResponse({'error': 'Invalid JSON'}, status=400) + except Exception as e: + return JsonResponse({'error': str(e)}, status=500) + + return JsonResponse({'error': 'Invalid request method'}, status=405) + + +def delete_CompanyDetails(request): + if request.method != 'DELETE': + return JsonResponse({'error': 'Invalid HTTP method. Only DELETE is allowed.'}, status=405) + + try: + data = json.loads(request.body) + client_id = data.get('client_id') + sub_client_id = data.get('sub_client_id') + parent_company = data.get('parent_company') + + if sub_client_id: + # Delete only the specific subclient + sub_clients_deleted, _ = SubcompanyDetails.objects.filter(sub_client_id=sub_client_id).delete() + response = { + 'message': 'Subclient deleted successfully.', + 'sub_clients_deleted': sub_clients_deleted + } + return JsonResponse(response, status=200) + + if client_id and parent_company: + # Delete related sub-clients and contacts + sub_clients_deleted, _ = SubcompanyDetails.objects.filter(parent_company=parent_company).delete() + contacts_deleted, _ = AddContact.objects.filter(Company=parent_company).delete() + + # Delete the main client + client = ClientDetails.objects.get(client_id=client_id, parent_company=parent_company) + client.delete() + + response = { + 'message': 'Client and related data deleted successfully.', + 'client_deleted': 1, + 'sub_clients_deleted': sub_clients_deleted, + 'contacts_deleted': contacts_deleted + } + return JsonResponse(response, status=200) + + return JsonResponse({'error': 'Insufficient data provided to delete any record.'}, status=400) + + except ClientDetails.DoesNotExist: + return JsonResponse({'error': 'Client with the given ID and Parent Company does not exist'}, status=404) + except Exception as e: + return JsonResponse({'error': f'An error occurred: {str(e)}'}, status=500) + + + +@csrf_exempt +def edit_teamDetails(request): + if request.method == 'POST': + data = json.loads(request.body) + id = data.get('Contact_id', None) + print(id) + + if id: + try: + contact = AddContact.objects.get(Contact_id=id) + print(contact) + + contact.Company = data.get('Company', contact.Company) + contact.Sub_company = data.get('Sub_company', contact.Sub_company) + contact.FirstName = data.get('FirstName', contact.FirstName) + contact.LastName = data.get('LastName', contact.LastName) + contact.Department = data.get('Department', contact.Department) + contact.Designation = data.get('Designation', contact.Designation) + contact.Phone_number = data.get('Phone_number', contact.Phone_number) + contact.Email = data.get('Email', contact.Email) + contact.save() + print(contact) + return JsonResponse({'message': 'Contact updated successfully.'}, status=200) + except AddContact.DoesNotExist: + return JsonResponse({'error': 'Contact not found.'}, status=404) + except Exception as e: + return JsonResponse({'error': str(e)}, status=500) + else: + return JsonResponse({'error': 'Email not provided.'}, status=400) + else: + return JsonResponse({'error': 'Invalid request method.'}, status=405) + + +def delete_teamDetails(request): + try: + # Get the contact_id from the query parameters instead of the request body + contact_id = request.GET.get('Contact_id') + print('contact_id:', contact_id) + + if contact_id is None: + return JsonResponse({'error': 'Contact ID not provided'}, status=400) + + # Try to get the contact and delete it + contact = AddContact.objects.get(Contact_id=contact_id) + contact.delete() + + return JsonResponse({'success': f'Contact with id {contact_id} deleted successfully'}) + + except AddContact.DoesNotExist: + return JsonResponse({'error': 'Contact does not exist'}, status=404) + + except Exception as e: + # Log the error and return a 500 status + print(f'Error deleting contact: {e}') + return JsonResponse({'error': str(e)}, status=500) + + +def edit_internalTeam(request): + if request.method == 'POST': + data = json.loads(request.body) + email = data.get('Email1', None) + print(email) + + if email: + try: + employee = InternalTeam.objects.get(Email1=email) + + employee.FirstName = data.get('FirstName', employee.FirstName) + employee.LastName = data.get('LastName', employee.LastName) + employee.Designation = data.get('Designation', employee.Designation) + employee.Department = data.get('Department', employee.Department) + employee.PhoneNo1 = data.get('PhoneNo1', employee.PhoneNo1) + employee.LandNumber = data.get('LandNumber', employee.LandNumber) + employee.Email2 = data.get('Email2', employee.Email2) + employee.Level = data.get('Level', employee.Level) + employee.save() + print(employee) + return JsonResponse({'message': 'Internal Team updated successfully.'}, status=200) + except AddContact.DoesNotExist: + return JsonResponse({'error': 'Contact not found.'}, status=404) + except Exception as e: + return JsonResponse({'error': str(e)}, status=500) + else: + return JsonResponse({'error': 'Email not provided.'}, status=400) + else: + return JsonResponse({'error': 'Invalid request method.'}, status=405) + + +def delete_internalTeam(request): + try: + email = request.GET.get('Email1') + print(email) + + employee = InternalTeam.objects.get(Email1=email) + print(employee) + employee.delete() + return JsonResponse({'success':f'Data with Email {email} deleted successfully'}) + except InternalTeam.DoesNotExist: + return JsonResponse({'error': 'Employee does not exist'}, status=404) + + except Exception as e: + # Log the error and return a 500 status + print(f'Error deleting Internal Team Details: {e}') + return JsonResponse({'error': str(e)}, status=500) + + +def print_internalTeam(request): + email = request.GET.get('Email1') + print(email) + + if email: + try: + employee = InternalTeam.objects.get(Email1=email) + + data = { + 'FirstName': employee.FirstName, + 'LastName': employee.LastName, + 'Designation': employee.Designation, + 'Department': employee.Department, + 'PhoneNo1': employee.PhoneNo1, + 'LandNumber': employee.LandNumber, + 'Email1': employee.Email1, + 'Email2': employee.Email2, + 'Level': employee.Level + } + print(employee) + return JsonResponse(data, status=200) + except AddContact.DoesNotExist: + return JsonResponse({'error': 'Contact not found.'}, status=404) + except Exception as e: + return JsonResponse({'error': str(e)}, status=500) + else: + return JsonResponse({'error': 'Email not provided.'}, status=400) + + +def validate_existingEmployee(request): + if request.method == 'GET': + email1 = request.GET.get('Email1') + email2 = request.GET.get('Email2') + phone_number1 = request.GET.get('PhoneNo1') + phone_number2 = request.GET.get('PhoneNo2') + + response = { + 'email_exists': False, + 'phone_exists': False, + + } + if email2: + existing_phone_contact1 = InternalTeam.objects.filter(Email1=email2).first() + existing_phone_contact2 = InternalTeam.objects.filter(Email2=email2).first() + if (existing_phone_contact1 and existing_phone_contact1.Email1 != email1) or \ + (existing_phone_contact2 and existing_phone_contact2.Email1 != email1): + response['email_exists'] = True + + # Check for existing phone number but ignore if it's the same contact + if phone_number1: + existing_phone_contact1 = InternalTeam.objects.filter(PhoneNo1=phone_number1).first() + existing_phone_contact2 = InternalTeam.objects.filter(LandNumber=phone_number1).first() + if (existing_phone_contact1 and existing_phone_contact1.Email1 != email1) or \ + (existing_phone_contact2 and existing_phone_contact2.Email1 != email1): + response['phone_exists'] = True + + if phone_number2: + existing_phone_contact1 = InternalTeam.objects.filter(PhoneNo1=phone_number2).first() + existing_phone_contact2 = InternalTeam.objects.filter(LandNumber=phone_number2).first() + if (existing_phone_contact1 and existing_phone_contact1.Email1 != email1) or \ + (existing_phone_contact2 and existing_phone_contact2.Email1 != email1): + response['phone_exists'] = True + + return JsonResponse(response) + + + +def Internal_team_details(request): + admin_id = request.GET.get('admin_id', None) + print(admin_id) + return render(request, 'skyonnadmin/Internal_team_details.html',{'admin_id': admin_id}) + + +def save_Internal_team_Details(request): + if request.method == 'POST': + FirstName = request.POST.get('FirstName').strip() + LastName = request.POST.get('LastName') + Designation = request.POST.get('Designation') + Department = request.POST.get('Department') + Address_1 = request.POST.get('Address_1') + Address_2 = request.POST.get('Address_2') + City = request.POST.get('City') + State = request.POST.get('State') + Country = request.POST.get('Country') + Pincode = request.POST.get('Pincode') + PhoneNo1 = request.POST.get('PhoneNo1') + LandNumber = request.POST.get('LandNumber') + Email1 = request.POST.get('Email1') + Email2 = request.POST.get('Email2') + Level = request.POST.get('Level') + + Login = Email1 + Password = FirstName + '@123' + user_id = FirstName.upper()[:3] + PhoneNo1[:4] + + internal_team = InternalTeam( + FirstName=FirstName, + LastName=LastName, + Designation=Designation, + Department=Department, + Address_1=Address_1, + Address_2=Address_2, + City=City, + State=State, + Pincode=Pincode, + Country=Country, + PhoneNo1=PhoneNo1, + LandNumber=LandNumber, + Email1=Email1, + Email2=Email2, + Level=Level, + Login=Login, + Password=Password, + user_id=user_id + ) + internal_team.save() + + # email_thread= threading.Thread(target=send_login_credentials, args=(FirstName, Login, Password, Email1)) + # email_thread.start() + + # Return JSON response + return JsonResponse({'status': 'success', 'message': 'Internal team details saved successfully.'}) + else: + return HttpResponse('Invalid request method', status=405) + +# def send_login_credentials(FirstName, Login, Password, Email1): +# subject = 'Your Login Credentials' +# message = f'Hi {FirstName}, \n\n Your Login Credentials are: \n Login_id : {Login} \n Password : {Password}' +# from_email = 'subramanyajithendra@gmail.com' +# recipient_list = [Email1] +# send_mail(subject, message, from_email, recipient_list) + + +def validate_internal_team(request): + if request.method == 'GET': + email1 = request.GET.get('Email1') + email2 = request.GET.get('Email2') + phone_number1 = request.GET.get('PhoneNo1') + phone_number2 = request.GET.get('LandNumber') + response = { + 'exists': False + } + if email1 and (InternalTeam.objects.filter(Email1=email1).exists() or InternalTeam.objects.filter(Email2=email1).exists()): + response['exists'] = True + if email2 and (InternalTeam.objects.filter(Email1=email2).exists() or InternalTeam.objects.filter(Email2=email2).exists()): + response['exists'] = True + if phone_number1 and (InternalTeam.objects.filter(PhoneNo1=phone_number1).exists() or InternalTeam.objects.filter(LandNumber=phone_number1).exists()): + response['exists'] = True + elif phone_number2 and (InternalTeam.objects.filter(PhoneNo1=phone_number2).exists() or InternalTeam.objects.filter(LandNumber=phone_number2).exists()): + response['exists'] = True + return JsonResponse(response) + + +# def existing_employee(request): +# employees = InternalTeam.objects.all() +# +# employees_data = [] +# for employee in employees: +# employees_data.append({ +# 'FirstName': employee.FirstName, +# 'LastName': employee.LastName, +# 'Designation': employee.Designation, +# 'Department': employee.Department, +# 'Address_1': employee.Address_1, +# 'Address_2': employee.Address_2, +# 'City': employee.City, +# 'State': employee.State, +# 'Pincode': employee.Pincode, +# 'Country': employee.Country, +# 'PhoneNo1': employee.PhoneNo1, +# 'PhoneNo2': employee.PhoneNo2, +# 'Email1': employee.Email1, +# 'Email2': employee.Email2, +# 'Band': employee.Band +# }) +# +# return JsonResponse({'employees': employees_data}) + + +def get_row_count(request): + if request.method == 'POST' and request.FILES['excelFile']: + try: + excel_file = request.FILES['excelFile'] + df = pd.read_excel(excel_file) # Requires pandas and openpyxl + row_count = len(df.index) # Count the rows in the DataFrame + return JsonResponse({'row_count': row_count}) + except Exception as e: + return JsonResponse({'error': str(e)}, status=400) + return JsonResponse({'error': 'Invalid request'}, status=400) + +def load_excel_data(request): + if request.method == 'POST' and request.FILES.get('excelFile'): + excel_file = request.FILES['excelFile'] + data = pd.read_excel(excel_file) + + required_columns = ['FirstName', 'LastName', 'Designation', 'Department', 'Address_1', 'City', + 'State', 'Pincode', 'Country', 'PhoneNo1','LandNumber', 'Email1', 'Level'] + + data[['PhoneNo1', 'LandNumber']] = data[['PhoneNo1', 'LandNumber']].fillna('') + + empty_fields = {} + + for column in required_columns: + if column not in ['PhoneNo1','LandNumber'] and data[column].isnull().any(): + empty_fields[column] = data[data[column].isnull()].index.tolist() + + missing_contact = data[(data['PhoneNo1'] == '') & (data['LandNumber'] == '')].index.tolist() + + if missing_contact: + empty_fields['Contact'] = missing_contact + + if empty_fields: + return JsonResponse({'error': True, + 'message': 'Some fields are empty in the provided Excel sheet.','empty_fields': empty_fields}, status=400) + + valid_data = data[(data['PhoneNo1'] != '') | (data['LandNumber'] != '')] + print(valid_data) + + return JsonResponse({'error': False,'data': valid_data.to_dict(orient='records')}, safe=False) + + return JsonResponse({'error': True,'message': "No file uploaded"}, status=400) + + +def process_row(request): + if request.method == 'POST': + try: + row_data = json.load(request.body) + print(row_data) + + FirstName = row_data.get('FirstName') + LastName = row_data.get('LastName') + Designation = row_data.get('Designation') + Department = row_data.get('Department') + Address_1 = row_data.get('Address_1') + Address_2 = row_data.get('Address_2') + City = row_data.get('City') + State = row_data.get('State') + Pincode = row_data.get('Pincode') + PhoneNo1 = row_data.get('PhoneNo1') + LandNumber = row_data.get('LandNumber') + Email1 = row_data.get('Email1') + Email2 = row_data.get('Email2') + Level = row_data.get('Level') + + return JsonResponse({"message": "Row processed successfully", "data": row_data}, status=200) + + except Exception as e: + return JsonResponse({"error": f"Failed to process row: {str(e)}"}, status=400) + + return JsonResponse({"error": "Invalid request method"}, status=400) + + +def existing_employee(request): + employees = InternalTeam.objects.all() + + employees_data = [] + for employee in employees: + employees_data.append({ + 'FirstName': employee.FirstName, + 'LastName': employee.LastName, + 'Designation': employee.Designation, + 'Department': employee.Department, + 'PhoneNo1': employee.PhoneNo1, + 'LandNumber': employee.LandNumber, + 'Email1': employee.Email1, + 'Email2': employee.Email2, + 'Level': employee.Level + }) + + return JsonResponse({'employees': employees_data}) + +def get_employee(request): + if request.method == 'GET': + firstName = request.GET.get('firstName') + lastName = request.GET.get('lastName') + email = request.GET.get('Email1') + print('email:',email) + try: + + emp_obj = InternalTeam.objects.filter((Q(FirstName=firstName) | Q(LastName=lastName)) & Q(Email1=email)).first() + emp_data = { + 'FirstName': emp_obj.FirstName, + 'LastName': emp_obj.LastName, + 'Designation': emp_obj.Designation, + 'Department': emp_obj.Department, + 'Address_1': emp_obj.Address_1, + 'Address_2': emp_obj.Address_2, + 'City': emp_obj.City, + 'State': emp_obj.State, + 'Pincode': emp_obj.Pincode, + 'Country': emp_obj.Country, + 'PhoneNo1': emp_obj.PhoneNo1, + 'LandNumber': emp_obj.LandNumber, + 'Email1': emp_obj.Email1, + 'Email2': emp_obj.Email2, + 'Level': emp_obj.Level, + } + return JsonResponse(emp_data) + except InternalTeam.DoesNotExist: + return JsonResponse({'error': 'Client not found'}, status=404) + else: + return JsonResponse({'error': 'Invalid request method'}, status=400) diff --git a/skyonnweb/skyonnweb/settings.py b/skyonnweb/skyonnweb/settings.py index 17435cf..eab7435 100644 --- a/skyonnweb/skyonnweb/settings.py +++ b/skyonnweb/skyonnweb/settings.py @@ -37,8 +37,8 @@ INSTALLED_APPS = [ 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', + 'skyonnadmin', 'user', - 'skyonnadmin' ] MIDDLEWARE = [ @@ -79,7 +79,7 @@ WSGI_APPLICATION = 'skyonnweb.wsgi.application' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', - 'NAME': 'skyonn', + 'NAME': 'skyonn4', 'USER': 'root', 'PASSWORD': '', 'HOST': 'localhost', @@ -127,6 +127,14 @@ USE_TZ = True STATIC_URL = 'static/' +# STATICFILES_DIRS = [ +# BASE_DIR / "static", +# ] +STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] + +MEDIA_URL = '/media/' +MEDIA_ROOT = os.path.join(BASE_DIR,'media') + # Default primary key field type # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field @@ -136,3 +144,13 @@ AUTHENTICATION_BACKENDS = [ 'user.backend.PhoneAuthenticationBackend', 'django.contrib.auth.backends.ModelBackend', # Keep the default backend as a fallback ] + +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' #settings to send mail +EMAIL_HOST = 'smtp.gmail.com' # Replace with your SMTP server +EMAIL_PORT = 587 +EMAIL_USE_TLS = True +EMAIL_HOST_USER = 'subramanyajithendra@gmail.com' +EMAIL_HOST_PASSWORD = 'grdwevagtfmfqosb' + +TIME_ZONE = 'Asia/Kolkata' +USE_TZ = True \ No newline at end of file diff --git a/skyonnweb/skyonnweb/urls.py b/skyonnweb/skyonnweb/urls.py index 5ece3c2..a81a03b 100644 --- a/skyonnweb/skyonnweb/urls.py +++ b/skyonnweb/skyonnweb/urls.py @@ -2,9 +2,12 @@ from django.contrib import admin from django.urls import path from django.contrib import admin from django.urls import path, include # Make sure to import include here +from django.conf import settings +from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), - path('', include('user.urls')), # Include your users app URLs path('skyonnadmin/', include('skyonnadmin.urls')), -] \ No newline at end of file + path('', include('user.urls')), # Include your users app URLs + +] + static(settings.MEDIA_URL,document_root = settings.MEDIA_ROOT) diff --git a/skyonnweb/static/images/Activity Report.svg b/skyonnweb/static/images/Activity Report.svg new file mode 100644 index 0000000..62df0fb --- /dev/null +++ b/skyonnweb/static/images/Activity Report.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/skyonnweb/static/images/Add A New SPOC.svg b/skyonnweb/static/images/Add A New SPOC.svg new file mode 100644 index 0000000..8b9150a --- /dev/null +++ b/skyonnweb/static/images/Add A New SPOC.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/skyonnweb/static/images/All job post.svg b/skyonnweb/static/images/All job post.svg new file mode 100644 index 0000000..928a777 --- /dev/null +++ b/skyonnweb/static/images/All job post.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/skyonnweb/static/images/Arminta_Logo.svg b/skyonnweb/static/images/Arminta_Logo.svg new file mode 100644 index 0000000..1ba0472 --- /dev/null +++ b/skyonnweb/static/images/Arminta_Logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/skyonnweb/static/images/Arminta_Logo_1.svg b/skyonnweb/static/images/Arminta_Logo_1.svg new file mode 100644 index 0000000..9b78446 --- /dev/null +++ b/skyonnweb/static/images/Arminta_Logo_1.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/skyonnweb/static/images/Client Details (3).svg b/skyonnweb/static/images/Client Details (3).svg new file mode 100644 index 0000000..ebaed3a --- /dev/null +++ b/skyonnweb/static/images/Client Details (3).svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/skyonnweb/static/images/Close_Button.svg b/skyonnweb/static/images/Close_Button.svg new file mode 100644 index 0000000..29b81cf --- /dev/null +++ b/skyonnweb/static/images/Close_Button.svg @@ -0,0 +1,4 @@ + + + + diff --git a/skyonnweb/static/images/Internal team Details (1).svg b/skyonnweb/static/images/Internal team Details (1).svg new file mode 100644 index 0000000..76ebf38 --- /dev/null +++ b/skyonnweb/static/images/Internal team Details (1).svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/skyonnweb/static/images/Messages.svg b/skyonnweb/static/images/Messages.svg new file mode 100644 index 0000000..243aed0 --- /dev/null +++ b/skyonnweb/static/images/Messages.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/skyonnweb/static/images/New job post (1).svg b/skyonnweb/static/images/New job post (1).svg new file mode 100644 index 0000000..9fa7a38 --- /dev/null +++ b/skyonnweb/static/images/New job post (1).svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/skyonnweb/static/images/Pending process.svg b/skyonnweb/static/images/Pending process.svg new file mode 100644 index 0000000..28df225 --- /dev/null +++ b/skyonnweb/static/images/Pending process.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/skyonnweb/static/images/Save_Button (1).svg b/skyonnweb/static/images/Save_Button (1).svg new file mode 100644 index 0000000..56cfa33 --- /dev/null +++ b/skyonnweb/static/images/Save_Button (1).svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/skyonnweb/static/images/logo (2).png b/skyonnweb/static/images/logo (2).png new file mode 100644 index 0000000..f7f2c02 Binary files /dev/null and b/skyonnweb/static/images/logo (2).png differ diff --git a/skyonnweb/static/images/submited Resumes.svg b/skyonnweb/static/images/submited Resumes.svg new file mode 100644 index 0000000..79e7dc6 --- /dev/null +++ b/skyonnweb/static/images/submited Resumes.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/skyonnweb/templates/skyonnadmin/Internal_team_details.html b/skyonnweb/templates/skyonnadmin/Internal_team_details.html new file mode 100644 index 0000000..9a3864e --- /dev/null +++ b/skyonnweb/templates/skyonnadmin/Internal_team_details.html @@ -0,0 +1,405 @@ + + + + + + + New Job Posting + + + + + +
+
+ + Skyonn Technologies: +   Internal Team_Details + +
+ + + + + + + diff --git a/skyonnweb/templates/skyonnadmin/add_client.html b/skyonnweb/templates/skyonnadmin/add_client.html index 08ce1e2..ef5a19e 100644 --- a/skyonnweb/templates/skyonnadmin/add_client.html +++ b/skyonnweb/templates/skyonnadmin/add_client.html @@ -35,7 +35,7 @@ width: calc(100% - 50px); padding: 10px; border-radius: 10px; - border: 1px solid #ccc; + border: 1px solid black; } label.required::after { content: "*"; @@ -90,188 +90,224 @@ margin-left: 500px; width: 900px; } - .add p { - margin-left: 470px; - margin-top: 3px; - } - .add a { - text-decoration: none; - } + .add-sublocation-link { + display: inline-flex; /* Use inline-flex to keep the link inline */ + align-items: center; /* Vertically center the icon and text */ + text-decoration: none; /* Remove underline */ + color: black; /* Text color */ + margin: 600; + } + + .sublocation-icon { + margin-right: 7px; + margin-top:-200px;/* Space between the icon and the text */ + } + + .sublocation-text { + margin-left:-90px; + margin-top:-150px; + } .container1 input[type="text"] { width: calc(100% - 20px); margin-right: 10px; } - .add span { - display: inline-block; - width: 25px; - height: 25px; - border: 2px solid black; /* Add border property */ - border-radius: 50%; - text-align: center; - line-height: 30px; - margin-left: 530px; - color: black; - }} + + + + + + + + + + + + h3 { + text-decoration: underline; + margin-left:30px; +}}
-
-
- {% csrf_token %} -
-
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
+
+ + {% csrf_token %} +
+
+
+ +
- -

Admin Department Contact person Name for the Above office location*

-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
+
+ + +
+
+ + +
+
+ +
- - -
- - -

Add New sub location

-
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + + + + + + -