Spaces:
Sleeping
Sleeping
Upload 145 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +94 -70
- Dockerfile +6 -6
- README.md +11 -11
- api/__pycache__/admin.cpython-313.pyc +0 -0
- api/__pycache__/models.cpython-313.pyc +0 -0
- api/__pycache__/urls.cpython-313.pyc +0 -0
- api/__pycache__/views.cpython-313.pyc +0 -0
- api/admin.py +21 -0
- api/models.py +213 -161
- api/urls.py +8 -0
- api/views.py +103 -0
- db.sqlite3 +0 -0
- extra/bhajanData.json +0 -0
- extra/dataMaker.py +132 -0
- extra/swamiNiVato/prakaran_1_data.json +0 -0
- extra/swamiNiVato/prakaran_2_data.json +0 -0
- extra/swamiNiVato/prakaran_3_data.json +0 -0
- extra/swamiNiVato/prakaran_4_data.json +0 -0
- extra/swamiNiVato/prakaran_5_data.json +0 -0
- extra/swamiNiVato/prakaran_6_data.json +0 -0
- extra/swamiNiVato/prakaran_7_data.json +0 -0
- frontend/urls.py +17 -17
- frontend/views.py +4 -4
- hsapssconnect/__pycache__/settings.cpython-313.pyc +0 -0
- hsapssconnect/__pycache__/urls.cpython-313.pyc +0 -0
- hsapssconnect/settings.py +180 -177
- hsapssconnect/urls.py +11 -5
- notification/admin.py +3 -3
- notification/apps.py +6 -6
- notification/consumers.py +32 -32
- notification/models.py +3 -3
- notification/routing.py +5 -5
- notification/tests.py +3 -3
- notification/urls.py +6 -6
- notification/views.py +3 -3
- requirements.txt +9 -9
- static/CalendarData.csv +0 -0
- static/books/pdf/vachnamrut-gujarati.pdf +3 -0
- static/books/posters/swami-ni-vato.jpg +3 -0
- static/books/posters/swami-ni-vato_KrDvdpe.jpg +3 -0
- static/books/posters/vachanamrut.jpg +3 -0
- static/books/posters/vachanamrut_eP1PSm5.jpg +3 -0
- static/data.json +1666 -0
- static/fonts/AestheticRomance-Regular.woff +0 -0
- static/fonts/AestheticRomance-Regular.woff2 +0 -0
- static/fonts/S0728810.TTF +3 -0
- static/fonts/S0728810.otf +3 -0
- static/images/AYMLogo.png +3 -0
- static/images/GunatitSwami.png +3 -0
- static/images/SHA_logo.png +3 -0
.gitattributes
CHANGED
@@ -1,70 +1,94 @@
|
|
1 |
-
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
-
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
-
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
-
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
-
downloads/1.jpg filter=lfs diff=lfs merge=lfs -text
|
37 |
-
downloads/100.png filter=lfs diff=lfs merge=lfs -text
|
38 |
-
downloads/101.png filter=lfs diff=lfs merge=lfs -text
|
39 |
-
downloads/102.png filter=lfs diff=lfs merge=lfs -text
|
40 |
-
downloads/103.png filter=lfs diff=lfs merge=lfs -text
|
41 |
-
downloads/104.png filter=lfs diff=lfs merge=lfs -text
|
42 |
-
downloads/105.png filter=lfs diff=lfs merge=lfs -text
|
43 |
-
downloads/106.png filter=lfs diff=lfs merge=lfs -text
|
44 |
-
downloads/107.png filter=lfs diff=lfs merge=lfs -text
|
45 |
-
downloads/108.png filter=lfs diff=lfs merge=lfs -text
|
46 |
-
downloads/11.png filter=lfs diff=lfs merge=lfs -text
|
47 |
-
downloads/110.jpg filter=lfs diff=lfs merge=lfs -text
|
48 |
-
downloads/112.jpg filter=lfs diff=lfs merge=lfs -text
|
49 |
-
downloads/116.jpg filter=lfs diff=lfs merge=lfs -text
|
50 |
-
downloads/125.jpg filter=lfs diff=lfs merge=lfs -text
|
51 |
-
downloads/127.jpg filter=lfs diff=lfs merge=lfs -text
|
52 |
-
downloads/13.png filter=lfs diff=lfs merge=lfs -text
|
53 |
-
downloads/130.jpg filter=lfs diff=lfs merge=lfs -text
|
54 |
-
downloads/134.jpg filter=lfs diff=lfs merge=lfs -text
|
55 |
-
downloads/136.jpg filter=lfs diff=lfs merge=lfs -text
|
56 |
-
downloads/139.jpg filter=lfs diff=lfs merge=lfs -text
|
57 |
-
downloads/150.jpg filter=lfs diff=lfs merge=lfs -text
|
58 |
-
downloads/151.jpg filter=lfs diff=lfs merge=lfs -text
|
59 |
-
downloads/157.jpg filter=lfs diff=lfs merge=lfs -text
|
60 |
-
downloads/160.jpg filter=lfs diff=lfs merge=lfs -text
|
61 |
-
downloads/166.jpg filter=lfs diff=lfs merge=lfs -text
|
62 |
-
downloads/168.jpg filter=lfs diff=lfs merge=lfs -text
|
63 |
-
downloads/169.jpg filter=lfs diff=lfs merge=lfs -text
|
64 |
-
downloads/173.jpg filter=lfs diff=lfs merge=lfs -text
|
65 |
-
downloads/177.jpg filter=lfs diff=lfs merge=lfs -text
|
66 |
-
downloads/18.png filter=lfs diff=lfs merge=lfs -text
|
67 |
-
downloads/183.jpg filter=lfs diff=lfs merge=lfs -text
|
68 |
-
downloads/186.jpg filter=lfs diff=lfs merge=lfs -text
|
69 |
-
downloads/187.jpg filter=lfs diff=lfs merge=lfs -text
|
70 |
-
downloads/189.jpg filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
downloads/1.jpg filter=lfs diff=lfs merge=lfs -text
|
37 |
+
downloads/100.png filter=lfs diff=lfs merge=lfs -text
|
38 |
+
downloads/101.png filter=lfs diff=lfs merge=lfs -text
|
39 |
+
downloads/102.png filter=lfs diff=lfs merge=lfs -text
|
40 |
+
downloads/103.png filter=lfs diff=lfs merge=lfs -text
|
41 |
+
downloads/104.png filter=lfs diff=lfs merge=lfs -text
|
42 |
+
downloads/105.png filter=lfs diff=lfs merge=lfs -text
|
43 |
+
downloads/106.png filter=lfs diff=lfs merge=lfs -text
|
44 |
+
downloads/107.png filter=lfs diff=lfs merge=lfs -text
|
45 |
+
downloads/108.png filter=lfs diff=lfs merge=lfs -text
|
46 |
+
downloads/11.png filter=lfs diff=lfs merge=lfs -text
|
47 |
+
downloads/110.jpg filter=lfs diff=lfs merge=lfs -text
|
48 |
+
downloads/112.jpg filter=lfs diff=lfs merge=lfs -text
|
49 |
+
downloads/116.jpg filter=lfs diff=lfs merge=lfs -text
|
50 |
+
downloads/125.jpg filter=lfs diff=lfs merge=lfs -text
|
51 |
+
downloads/127.jpg filter=lfs diff=lfs merge=lfs -text
|
52 |
+
downloads/13.png filter=lfs diff=lfs merge=lfs -text
|
53 |
+
downloads/130.jpg filter=lfs diff=lfs merge=lfs -text
|
54 |
+
downloads/134.jpg filter=lfs diff=lfs merge=lfs -text
|
55 |
+
downloads/136.jpg filter=lfs diff=lfs merge=lfs -text
|
56 |
+
downloads/139.jpg filter=lfs diff=lfs merge=lfs -text
|
57 |
+
downloads/150.jpg filter=lfs diff=lfs merge=lfs -text
|
58 |
+
downloads/151.jpg filter=lfs diff=lfs merge=lfs -text
|
59 |
+
downloads/157.jpg filter=lfs diff=lfs merge=lfs -text
|
60 |
+
downloads/160.jpg filter=lfs diff=lfs merge=lfs -text
|
61 |
+
downloads/166.jpg filter=lfs diff=lfs merge=lfs -text
|
62 |
+
downloads/168.jpg filter=lfs diff=lfs merge=lfs -text
|
63 |
+
downloads/169.jpg filter=lfs diff=lfs merge=lfs -text
|
64 |
+
downloads/173.jpg filter=lfs diff=lfs merge=lfs -text
|
65 |
+
downloads/177.jpg filter=lfs diff=lfs merge=lfs -text
|
66 |
+
downloads/18.png filter=lfs diff=lfs merge=lfs -text
|
67 |
+
downloads/183.jpg filter=lfs diff=lfs merge=lfs -text
|
68 |
+
downloads/186.jpg filter=lfs diff=lfs merge=lfs -text
|
69 |
+
downloads/187.jpg filter=lfs diff=lfs merge=lfs -text
|
70 |
+
downloads/189.jpg filter=lfs diff=lfs merge=lfs -text
|
71 |
+
db.sqlite3 filter=lfs diff=lfs merge=lfs -text
|
72 |
+
static/books/pdf/vachnamrut-gujarati.pdf filter=lfs diff=lfs merge=lfs -text
|
73 |
+
static/books/posters/swami-ni-vato_KrDvdpe.jpg filter=lfs diff=lfs merge=lfs -text
|
74 |
+
static/books/posters/swami-ni-vato.jpg filter=lfs diff=lfs merge=lfs -text
|
75 |
+
static/books/posters/vachanamrut_eP1PSm5.jpg filter=lfs diff=lfs merge=lfs -text
|
76 |
+
static/books/posters/vachanamrut.jpg filter=lfs diff=lfs merge=lfs -text
|
77 |
+
static/fonts/S0728810.otf filter=lfs diff=lfs merge=lfs -text
|
78 |
+
static/fonts/S0728810.TTF filter=lfs diff=lfs merge=lfs -text
|
79 |
+
static/images/AYMLogo.png filter=lfs diff=lfs merge=lfs -text
|
80 |
+
static/images/gswami-banner.jpg filter=lfs diff=lfs merge=lfs -text
|
81 |
+
static/images/GunatitSwami.png filter=lfs diff=lfs merge=lfs -text
|
82 |
+
static/images/kite.png filter=lfs diff=lfs merge=lfs -text
|
83 |
+
static/images/logo.png filter=lfs diff=lfs merge=lfs -text
|
84 |
+
static/images/logoMain.png filter=lfs diff=lfs merge=lfs -text
|
85 |
+
static/images/maharaj-banner.jpg filter=lfs diff=lfs merge=lfs -text
|
86 |
+
static/images/maharaj.png filter=lfs diff=lfs merge=lfs -text
|
87 |
+
static/images/manifest-icon-512.maskable.png filter=lfs diff=lfs merge=lfs -text
|
88 |
+
static/images/SHA_logo.png filter=lfs diff=lfs merge=lfs -text
|
89 |
+
static/images/shastrijiMaharaj.png filter=lfs diff=lfs merge=lfs -text
|
90 |
+
static/images/sm-banner.jpg filter=lfs diff=lfs merge=lfs -text
|
91 |
+
static/images/swamiji-banner.jpg filter=lfs diff=lfs merge=lfs -text
|
92 |
+
static/images/Swamiji.png filter=lfs diff=lfs merge=lfs -text
|
93 |
+
static/images/ym-banner.jpg filter=lfs diff=lfs merge=lfs -text
|
94 |
+
static/images/yogijiMaharaj.png filter=lfs diff=lfs merge=lfs -text
|
Dockerfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
-
FROM python:3
|
2 |
-
WORKDIR /usr/src/app
|
3 |
-
COPY requirements.txt ./
|
4 |
-
RUN pip install -r requirements.txt
|
5 |
-
COPY . .
|
6 |
-
EXPOSE 7860
|
7 |
CMD ["python","./manage.py","runserver","0.0.0.0:7860"]
|
|
|
1 |
+
FROM python:3
|
2 |
+
WORKDIR /usr/src/app
|
3 |
+
COPY requirements.txt ./
|
4 |
+
RUN pip install -r requirements.txt
|
5 |
+
COPY . .
|
6 |
+
EXPOSE 7860
|
7 |
CMD ["python","./manage.py","runserver","0.0.0.0:7860"]
|
README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1 |
-
---
|
2 |
-
title: Connect
|
3 |
-
emoji: ⚡
|
4 |
-
colorFrom: green
|
5 |
-
colorTo: pink
|
6 |
-
sdk: docker
|
7 |
-
pinned: false
|
8 |
-
license: apache-2.0
|
9 |
-
---
|
10 |
-
|
11 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
1 |
+
---
|
2 |
+
title: Connect
|
3 |
+
emoji: ⚡
|
4 |
+
colorFrom: green
|
5 |
+
colorTo: pink
|
6 |
+
sdk: docker
|
7 |
+
pinned: false
|
8 |
+
license: apache-2.0
|
9 |
+
---
|
10 |
+
|
11 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
api/__pycache__/admin.cpython-313.pyc
CHANGED
Binary files a/api/__pycache__/admin.cpython-313.pyc and b/api/__pycache__/admin.cpython-313.pyc differ
|
|
api/__pycache__/models.cpython-313.pyc
CHANGED
Binary files a/api/__pycache__/models.cpython-313.pyc and b/api/__pycache__/models.cpython-313.pyc differ
|
|
api/__pycache__/urls.cpython-313.pyc
CHANGED
Binary files a/api/__pycache__/urls.cpython-313.pyc and b/api/__pycache__/urls.cpython-313.pyc differ
|
|
api/__pycache__/views.cpython-313.pyc
CHANGED
Binary files a/api/__pycache__/views.cpython-313.pyc and b/api/__pycache__/views.cpython-313.pyc differ
|
|
api/admin.py
CHANGED
@@ -10,6 +10,9 @@ from .models import (
|
|
10 |
PushSubscription,
|
11 |
OptionPoll,
|
12 |
Poll,
|
|
|
|
|
|
|
13 |
)
|
14 |
from import_export.admin import ImportExportModelAdmin
|
15 |
|
@@ -77,6 +80,21 @@ class PollAdmin(ImportExportModelAdmin):
|
|
77 |
search_fields = ("question", "created_by")
|
78 |
|
79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
admin.site.register(Bhagat, BhagatAdmin)
|
81 |
admin.site.register(Region, RegionAdmin)
|
82 |
admin.site.register(BhajanCategory, BhajanCategoryAdmin)
|
@@ -86,3 +104,6 @@ admin.site.register(Notification, NotificationAdmin)
|
|
86 |
admin.site.register(PushSubscription, PushSubscriptionAdmin)
|
87 |
admin.site.register(OptionPoll, OptionPollAdmin)
|
88 |
admin.site.register(Poll, PollAdmin)
|
|
|
|
|
|
|
|
10 |
PushSubscription,
|
11 |
OptionPoll,
|
12 |
Poll,
|
13 |
+
Books,
|
14 |
+
Sections,
|
15 |
+
Chapters,
|
16 |
)
|
17 |
from import_export.admin import ImportExportModelAdmin
|
18 |
|
|
|
80 |
search_fields = ("question", "created_by")
|
81 |
|
82 |
|
83 |
+
class BooksAdmin(ImportExportModelAdmin):
|
84 |
+
list_display = ("title", "isPdf", "hasSections", "urlId")
|
85 |
+
search_fields = ("title", "isPdf", "hasSections", "urlId")
|
86 |
+
|
87 |
+
|
88 |
+
class SectionsAdmin(ImportExportModelAdmin):
|
89 |
+
list_display = ("title", "isPdf", "hasChapters", "urlId","book__title")
|
90 |
+
search_fields = ("title", "isPdf", "hasChapters", "urlId","book__title")
|
91 |
+
|
92 |
+
|
93 |
+
class ChaptersAdmin(ImportExportModelAdmin):
|
94 |
+
list_display = ("title", "isPdf", "urlId","book__title", "section__title")
|
95 |
+
search_fields = ("title", "isPdf", "urlId","book__title", "section__title")
|
96 |
+
|
97 |
+
|
98 |
admin.site.register(Bhagat, BhagatAdmin)
|
99 |
admin.site.register(Region, RegionAdmin)
|
100 |
admin.site.register(BhajanCategory, BhajanCategoryAdmin)
|
|
|
104 |
admin.site.register(PushSubscription, PushSubscriptionAdmin)
|
105 |
admin.site.register(OptionPoll, OptionPollAdmin)
|
106 |
admin.site.register(Poll, PollAdmin)
|
107 |
+
admin.site.register(Books, BooksAdmin)
|
108 |
+
admin.site.register(Sections, SectionsAdmin)
|
109 |
+
admin.site.register(Chapters, ChaptersAdmin)
|
api/models.py
CHANGED
@@ -1,161 +1,213 @@
|
|
1 |
-
from django.db import models
|
2 |
-
from django.contrib.auth.models import AbstractUser
|
3 |
-
import datetime as DateTime
|
4 |
-
from django.utils.html import mark_safe
|
5 |
-
|
6 |
-
class Bhagat(AbstractUser):
|
7 |
-
USER_TYPES = (
|
8 |
-
('superadmin', 'Super Admin'),
|
9 |
-
('regionadmin', 'Region Admin'),
|
10 |
-
('karyakarta', 'Karyakarta'),
|
11 |
-
('user', 'User'),
|
12 |
-
)
|
13 |
-
MEMBER_TYPES = (
|
14 |
-
('ambrish', 'Ambrish'),
|
15 |
-
('sadbhav', 'Sadbhav'),
|
16 |
-
('vip', 'VIP'),
|
17 |
-
('youvak', 'Youvak'),
|
18 |
-
)
|
19 |
-
user_type = models.CharField(max_length=20, choices=USER_TYPES, default="user")
|
20 |
-
phone = models.CharField(max_length=20, null=True)
|
21 |
-
member_type = models.CharField(max_length=20, choices=MEMBER_TYPES, default="youvak")
|
22 |
-
region = models.ForeignKey('Region', on_delete=models.SET_NULL, null=True)
|
23 |
-
birthday = models.DateField(default=DateTime.date.today, null=True)
|
24 |
-
streetName = models.TextField(null=True)
|
25 |
-
city = models.CharField(max_length=100, null=True)
|
26 |
-
state = models.CharField(max_length=100, null=True)
|
27 |
-
country = models.CharField(max_length=100, null=True)
|
28 |
-
pincode = models.CharField(max_length=10, null=True)
|
29 |
-
assigned_to = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True, related_name='assigned_users')
|
30 |
-
profile_image = models.URLField(blank=True)
|
31 |
-
|
32 |
-
def __str__(self):
|
33 |
-
return self.first_name + ' ' + self.last_name
|
34 |
-
|
35 |
-
def save(self, *args, **kwargs):
|
36 |
-
if not self.password.startswith("pbkdf2_sha256"):
|
37 |
-
self.set_password(self.password)
|
38 |
-
super().save(*args, **kwargs)
|
39 |
-
|
40 |
-
def profileImage(self):
|
41 |
-
return mark_safe('<img src="%s" width="50" height="50" />' % self.profile_image)
|
42 |
-
|
43 |
-
def get_full_name(self):
|
44 |
-
return super().get_full_name()
|
45 |
-
|
46 |
-
|
47 |
-
class Region(models.Model):
|
48 |
-
name = models.CharField(max_length=100)
|
49 |
-
|
50 |
-
def __str__(self):
|
51 |
-
return self.name
|
52 |
-
|
53 |
-
|
54 |
-
class Event(models.Model):
|
55 |
-
COLOR_CHOICES = (("orange","Shabha"), ("green","Activity"), ("blue","Birthday"), ("red","Important"), ("purple","Gathering"), ("yellow","Festival"), ("pink","Special"))
|
56 |
-
title = models.CharField(max_length=200)
|
57 |
-
description = models.TextField()
|
58 |
-
date = models.DateTimeField()
|
59 |
-
time = models.TimeField(default='00:00')
|
60 |
-
created_by = models.ForeignKey(Bhagat, on_delete=models.CASCADE, related_name='created_events',blank=True,null=True)
|
61 |
-
region = models.ForeignKey(Region, on_delete=models.CASCADE, blank=True,null=True)
|
62 |
-
is_approved = models.BooleanField(default=False)
|
63 |
-
color = models.CharField(max_length=15, default='orange',choices=COLOR_CHOICES)
|
64 |
-
|
65 |
-
def __str__(self):
|
66 |
-
return self.title
|
67 |
-
|
68 |
-
|
69 |
-
class Attendance(models.Model):
|
70 |
-
user = models.ForeignKey(Bhagat, on_delete=models.CASCADE)
|
71 |
-
event = models.ForeignKey(Event, on_delete=models.CASCADE)
|
72 |
-
status = models.CharField(max_length=20, choices=(('attending', 'Attending'), ('not_attending', 'Not Attending'), ('maybe', 'Maybe')))
|
73 |
-
|
74 |
-
class Notification(models.Model):
|
75 |
-
sender = models.ForeignKey(Bhagat, on_delete=models.CASCADE, related_name='sent_notifications')
|
76 |
-
recipients = models.ManyToManyField(Bhagat, related_name='received_notifications')
|
77 |
-
title = models.CharField(max_length=200, blank=True, null=True)
|
78 |
-
content = models.TextField()
|
79 |
-
timestamp = models.DateTimeField(auto_now_add=True)
|
80 |
-
notification_type = models.CharField(max_length=20, choices=(("orange", "Shabha"), ("green", "Activity"), ("blue", "Birthday"), ("red", "Important"), ("purple", "Gathering"), ("yellow", "Festival"), ("pink", "Custom")))
|
81 |
-
|
82 |
-
class BhajanCategory(models.Model):
|
83 |
-
name = models.CharField(max_length=100)
|
84 |
-
link = models.CharField(max_length=100)
|
85 |
-
icon = models.URLField(blank=True)
|
86 |
-
|
87 |
-
def __str__(self):
|
88 |
-
return self.name
|
89 |
-
|
90 |
-
def icon_image(self):
|
91 |
-
return mark_safe('<img src="%s" width="50" height="50" />' % self.icon)
|
92 |
-
|
93 |
-
|
94 |
-
class Bhajan(models.Model):
|
95 |
-
bhajanId = models.IntegerField(blank=True, default=0)
|
96 |
-
title = models.CharField(max_length=500, blank=True)
|
97 |
-
title_guj = models.CharField(max_length=500, blank=True)
|
98 |
-
category = models.ForeignKey(BhajanCategory, on_delete=models.CASCADE)
|
99 |
-
lyrics = models.CharField(max_length=50, blank=True)
|
100 |
-
audio_url = models.CharField(max_length=500, blank=True)
|
101 |
-
isEng = models.BooleanField(default=False)
|
102 |
-
isHnd = models.BooleanField(default=False)
|
103 |
-
isGer = models.BooleanField(default=False)
|
104 |
-
isAudio = models.BooleanField(default=False)
|
105 |
-
|
106 |
-
def __str__(self):
|
107 |
-
return self.title
|
108 |
-
|
109 |
-
def musicPreivew(self):
|
110 |
-
if self.isAudio:
|
111 |
-
return mark_safe('<audio controls><source src="https://huggingface.co/spaces/thejagstudio/MusicStore/resolve/main/Bhajan Audio/%s" type="audio/mpeg"></audio>' % self.audio_url)
|
112 |
-
else:
|
113 |
-
return 'No Audio Available'
|
114 |
-
|
115 |
-
def lyricsBtn(self):
|
116 |
-
# i have four languages in my bhajan so add them all as buttons and show them on click
|
117 |
-
languages = [["","GUJ"]]
|
118 |
-
if self.isEng:
|
119 |
-
languages.append(['E','ENG'])
|
120 |
-
if self.isHnd:
|
121 |
-
languages.append(['H','HND'])
|
122 |
-
if self.isGer:
|
123 |
-
languages.append(['G','GER'])
|
124 |
-
html = '<ul class="object-tools" style="margin-top:0">'
|
125 |
-
for lang in languages:
|
126 |
-
html += '<li style="padding-bottom:12px"><a href="https://huggingface.co/spaces/thejagstudio/MusicStore/raw/main/HTML Files/'+lang[0] + self.lyrics+'" target="_blank" class="import_link">'+(lang[1])+'</a></li>'
|
127 |
-
html += '</ul>'
|
128 |
-
return mark_safe(html)
|
129 |
-
|
130 |
-
|
131 |
-
class PushSubscription(models.Model):
|
132 |
-
user = models.ForeignKey(Bhagat, on_delete=models.CASCADE, null=True)
|
133 |
-
endpoint = models.URLField(max_length=500)
|
134 |
-
p256dh = models.CharField(max_length=200)
|
135 |
-
auth = models.CharField(max_length=100)
|
136 |
-
created_at = models.DateTimeField(auto_now_add=True)
|
137 |
-
|
138 |
-
|
139 |
-
class OptionPoll(models.Model):
|
140 |
-
optionText = models.TextField()
|
141 |
-
voters = models.ManyToManyField(Bhagat, related_name="options_voters", blank=True)
|
142 |
-
|
143 |
-
def __str__(self):
|
144 |
-
return self.optionText
|
145 |
-
|
146 |
-
|
147 |
-
class Poll(models.Model):
|
148 |
-
question = models.TextField()
|
149 |
-
options = models.ManyToManyField(
|
150 |
-
OptionPoll, related_name="polls_options", blank=True
|
151 |
-
)
|
152 |
-
participants = models.ManyToManyField(
|
153 |
-
Bhagat, related_name="polls_participant", blank=True
|
154 |
-
)
|
155 |
-
created_by = models.ForeignKey(
|
156 |
-
Bhagat, on_delete=models.CASCADE, related_name="polls_creator"
|
157 |
-
)
|
158 |
-
created_at = models.DateTimeField(auto_now_add=True)
|
159 |
-
|
160 |
-
def __str__(self):
|
161 |
-
return self.question
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from django.db import models
|
2 |
+
from django.contrib.auth.models import AbstractUser
|
3 |
+
import datetime as DateTime
|
4 |
+
from django.utils.html import mark_safe
|
5 |
+
|
6 |
+
class Bhagat(AbstractUser):
|
7 |
+
USER_TYPES = (
|
8 |
+
('superadmin', 'Super Admin'),
|
9 |
+
('regionadmin', 'Region Admin'),
|
10 |
+
('karyakarta', 'Karyakarta'),
|
11 |
+
('user', 'User'),
|
12 |
+
)
|
13 |
+
MEMBER_TYPES = (
|
14 |
+
('ambrish', 'Ambrish'),
|
15 |
+
('sadbhav', 'Sadbhav'),
|
16 |
+
('vip', 'VIP'),
|
17 |
+
('youvak', 'Youvak'),
|
18 |
+
)
|
19 |
+
user_type = models.CharField(max_length=20, choices=USER_TYPES, default="user")
|
20 |
+
phone = models.CharField(max_length=20, null=True)
|
21 |
+
member_type = models.CharField(max_length=20, choices=MEMBER_TYPES, default="youvak")
|
22 |
+
region = models.ForeignKey('Region', on_delete=models.SET_NULL, null=True)
|
23 |
+
birthday = models.DateField(default=DateTime.date.today, null=True)
|
24 |
+
streetName = models.TextField(null=True)
|
25 |
+
city = models.CharField(max_length=100, null=True)
|
26 |
+
state = models.CharField(max_length=100, null=True)
|
27 |
+
country = models.CharField(max_length=100, null=True)
|
28 |
+
pincode = models.CharField(max_length=10, null=True)
|
29 |
+
assigned_to = models.ForeignKey('self', on_delete=models.SET_NULL, null=True, blank=True, related_name='assigned_users')
|
30 |
+
profile_image = models.URLField(blank=True)
|
31 |
+
|
32 |
+
def __str__(self):
|
33 |
+
return self.first_name + ' ' + self.last_name
|
34 |
+
|
35 |
+
def save(self, *args, **kwargs):
|
36 |
+
if not self.password.startswith("pbkdf2_sha256"):
|
37 |
+
self.set_password(self.password)
|
38 |
+
super().save(*args, **kwargs)
|
39 |
+
|
40 |
+
def profileImage(self):
|
41 |
+
return mark_safe('<img src="%s" width="50" height="50" />' % self.profile_image)
|
42 |
+
|
43 |
+
def get_full_name(self):
|
44 |
+
return super().get_full_name()
|
45 |
+
|
46 |
+
|
47 |
+
class Region(models.Model):
|
48 |
+
name = models.CharField(max_length=100)
|
49 |
+
|
50 |
+
def __str__(self):
|
51 |
+
return self.name
|
52 |
+
|
53 |
+
|
54 |
+
class Event(models.Model):
|
55 |
+
COLOR_CHOICES = (("orange","Shabha"), ("green","Activity"), ("blue","Birthday"), ("red","Important"), ("purple","Gathering"), ("yellow","Festival"), ("pink","Special"))
|
56 |
+
title = models.CharField(max_length=200)
|
57 |
+
description = models.TextField()
|
58 |
+
date = models.DateTimeField()
|
59 |
+
time = models.TimeField(default='00:00')
|
60 |
+
created_by = models.ForeignKey(Bhagat, on_delete=models.CASCADE, related_name='created_events',blank=True,null=True)
|
61 |
+
region = models.ForeignKey(Region, on_delete=models.CASCADE, blank=True,null=True)
|
62 |
+
is_approved = models.BooleanField(default=False)
|
63 |
+
color = models.CharField(max_length=15, default='orange',choices=COLOR_CHOICES)
|
64 |
+
|
65 |
+
def __str__(self):
|
66 |
+
return self.title
|
67 |
+
|
68 |
+
|
69 |
+
class Attendance(models.Model):
|
70 |
+
user = models.ForeignKey(Bhagat, on_delete=models.CASCADE)
|
71 |
+
event = models.ForeignKey(Event, on_delete=models.CASCADE)
|
72 |
+
status = models.CharField(max_length=20, choices=(('attending', 'Attending'), ('not_attending', 'Not Attending'), ('maybe', 'Maybe')))
|
73 |
+
|
74 |
+
class Notification(models.Model):
|
75 |
+
sender = models.ForeignKey(Bhagat, on_delete=models.CASCADE, related_name='sent_notifications')
|
76 |
+
recipients = models.ManyToManyField(Bhagat, related_name='received_notifications')
|
77 |
+
title = models.CharField(max_length=200, blank=True, null=True)
|
78 |
+
content = models.TextField()
|
79 |
+
timestamp = models.DateTimeField(auto_now_add=True)
|
80 |
+
notification_type = models.CharField(max_length=20, choices=(("orange", "Shabha"), ("green", "Activity"), ("blue", "Birthday"), ("red", "Important"), ("purple", "Gathering"), ("yellow", "Festival"), ("pink", "Custom")))
|
81 |
+
|
82 |
+
class BhajanCategory(models.Model):
|
83 |
+
name = models.CharField(max_length=100)
|
84 |
+
link = models.CharField(max_length=100)
|
85 |
+
icon = models.URLField(blank=True)
|
86 |
+
|
87 |
+
def __str__(self):
|
88 |
+
return self.name
|
89 |
+
|
90 |
+
def icon_image(self):
|
91 |
+
return mark_safe('<img src="%s" width="50" height="50" />' % self.icon)
|
92 |
+
|
93 |
+
|
94 |
+
class Bhajan(models.Model):
|
95 |
+
bhajanId = models.IntegerField(blank=True, default=0)
|
96 |
+
title = models.CharField(max_length=500, blank=True)
|
97 |
+
title_guj = models.CharField(max_length=500, blank=True)
|
98 |
+
category = models.ForeignKey(BhajanCategory, on_delete=models.CASCADE)
|
99 |
+
lyrics = models.CharField(max_length=50, blank=True)
|
100 |
+
audio_url = models.CharField(max_length=500, blank=True)
|
101 |
+
isEng = models.BooleanField(default=False)
|
102 |
+
isHnd = models.BooleanField(default=False)
|
103 |
+
isGer = models.BooleanField(default=False)
|
104 |
+
isAudio = models.BooleanField(default=False)
|
105 |
+
|
106 |
+
def __str__(self):
|
107 |
+
return self.title
|
108 |
+
|
109 |
+
def musicPreivew(self):
|
110 |
+
if self.isAudio:
|
111 |
+
return mark_safe('<audio controls><source src="https://huggingface.co/spaces/thejagstudio/MusicStore/resolve/main/Bhajan Audio/%s" type="audio/mpeg"></audio>' % self.audio_url)
|
112 |
+
else:
|
113 |
+
return 'No Audio Available'
|
114 |
+
|
115 |
+
def lyricsBtn(self):
|
116 |
+
# i have four languages in my bhajan so add them all as buttons and show them on click
|
117 |
+
languages = [["","GUJ"]]
|
118 |
+
if self.isEng:
|
119 |
+
languages.append(['E','ENG'])
|
120 |
+
if self.isHnd:
|
121 |
+
languages.append(['H','HND'])
|
122 |
+
if self.isGer:
|
123 |
+
languages.append(['G','GER'])
|
124 |
+
html = '<ul class="object-tools" style="margin-top:0">'
|
125 |
+
for lang in languages:
|
126 |
+
html += '<li style="padding-bottom:12px"><a href="https://huggingface.co/spaces/thejagstudio/MusicStore/raw/main/HTML Files/'+lang[0] + self.lyrics+'" target="_blank" class="import_link">'+(lang[1])+'</a></li>'
|
127 |
+
html += '</ul>'
|
128 |
+
return mark_safe(html)
|
129 |
+
|
130 |
+
|
131 |
+
class PushSubscription(models.Model):
|
132 |
+
user = models.ForeignKey(Bhagat, on_delete=models.CASCADE, null=True)
|
133 |
+
endpoint = models.URLField(max_length=500)
|
134 |
+
p256dh = models.CharField(max_length=200)
|
135 |
+
auth = models.CharField(max_length=100)
|
136 |
+
created_at = models.DateTimeField(auto_now_add=True)
|
137 |
+
|
138 |
+
|
139 |
+
class OptionPoll(models.Model):
|
140 |
+
optionText = models.TextField()
|
141 |
+
voters = models.ManyToManyField(Bhagat, related_name="options_voters", blank=True)
|
142 |
+
|
143 |
+
def __str__(self):
|
144 |
+
return self.optionText
|
145 |
+
|
146 |
+
|
147 |
+
class Poll(models.Model):
|
148 |
+
question = models.TextField()
|
149 |
+
options = models.ManyToManyField(
|
150 |
+
OptionPoll, related_name="polls_options", blank=True
|
151 |
+
)
|
152 |
+
participants = models.ManyToManyField(
|
153 |
+
Bhagat, related_name="polls_participant", blank=True
|
154 |
+
)
|
155 |
+
created_by = models.ForeignKey(
|
156 |
+
Bhagat, on_delete=models.CASCADE, related_name="polls_creator"
|
157 |
+
)
|
158 |
+
created_at = models.DateTimeField(auto_now_add=True)
|
159 |
+
|
160 |
+
def __str__(self):
|
161 |
+
return self.question
|
162 |
+
|
163 |
+
|
164 |
+
class Books(models.Model):
|
165 |
+
title = models.CharField(max_length=200)
|
166 |
+
urlId = models.CharField(max_length=200, blank=True)
|
167 |
+
author = models.CharField(max_length=200)
|
168 |
+
description = models.TextField()
|
169 |
+
poster = models.FileField(upload_to="static/books/posters/", blank=True)
|
170 |
+
pdf = models.FileField(upload_to="static/books/pdf/", blank=True)
|
171 |
+
isPdf = models.BooleanField(default=False)
|
172 |
+
hasSections = models.BooleanField(default=False)
|
173 |
+
|
174 |
+
def __str__(self):
|
175 |
+
return self.title
|
176 |
+
|
177 |
+
def image_tag(self):
|
178 |
+
return mark_safe('<img src="%s" width="50" height="50" />' % self.poster)
|
179 |
+
|
180 |
+
|
181 |
+
class Sections(models.Model):
|
182 |
+
title = models.CharField(max_length=200)
|
183 |
+
urlId = models.CharField(max_length=200, blank=True)
|
184 |
+
pdf = models.FileField(upload_to="static/books/sections/pdf/", blank=True)
|
185 |
+
isPdf = models.BooleanField(default=False)
|
186 |
+
hasChapters = models.BooleanField(default=False)
|
187 |
+
book = models.ForeignKey(
|
188 |
+
Books, on_delete=models.CASCADE, related_name="sections", null=True, blank=True
|
189 |
+
)
|
190 |
+
|
191 |
+
def __str__(self):
|
192 |
+
return self.title
|
193 |
+
|
194 |
+
|
195 |
+
class Chapters(models.Model):
|
196 |
+
title = models.CharField(max_length=200)
|
197 |
+
urlId = models.CharField(max_length=200, blank=True)
|
198 |
+
pdf = models.FileField(upload_to="static/books/chapters/pdf/", blank=True)
|
199 |
+
isPdf = models.BooleanField(default=False)
|
200 |
+
section = models.ForeignKey(
|
201 |
+
Sections,
|
202 |
+
on_delete=models.CASCADE,
|
203 |
+
related_name="chapters",
|
204 |
+
null=True,
|
205 |
+
blank=True,
|
206 |
+
)
|
207 |
+
book = models.ForeignKey(
|
208 |
+
Books, on_delete=models.CASCADE, related_name="chapters", null=True, blank=True
|
209 |
+
)
|
210 |
+
data = models.JSONField(blank=True, null=True,default=dict)
|
211 |
+
|
212 |
+
def __str__(self):
|
213 |
+
return self.title
|
api/urls.py
CHANGED
@@ -26,4 +26,12 @@ urlpatterns = [
|
|
26 |
path("change-password/", views.change_password, name="change_password"),
|
27 |
path("polls/", views.polls, name="polls"),
|
28 |
path("poll-voters/<int:id>", views.voterList, name="voterList"),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
]
|
|
|
26 |
path("change-password/", views.change_password, name="change_password"),
|
27 |
path("polls/", views.polls, name="polls"),
|
28 |
path("poll-voters/<int:id>", views.voterList, name="voterList"),
|
29 |
+
path("bookList/", views.bookList, name="bookList"),
|
30 |
+
path("book/<str:urlId>", views.bookDetail, name="bookDetail"),
|
31 |
+
path(
|
32 |
+
"book/<str:urlId>/<str:chapterId>",
|
33 |
+
views.bookChapterDetail,
|
34 |
+
name="bookChapterDetail",
|
35 |
+
),
|
36 |
+
path("data", views.data, name="data"),
|
37 |
]
|
api/views.py
CHANGED
@@ -16,6 +16,9 @@ from .models import (
|
|
16 |
Bhajan,
|
17 |
OptionPoll,
|
18 |
Poll,
|
|
|
|
|
|
|
19 |
)
|
20 |
from django.conf import settings
|
21 |
from django.core import serializers
|
@@ -373,6 +376,7 @@ def profile_updater(request):
|
|
373 |
except Exception as e:
|
374 |
return JsonResponse({"status": "error", "error": str(e)})
|
375 |
else:
|
|
|
376 |
user = request.user
|
377 |
regions = Region.objects.all()
|
378 |
data = {
|
@@ -630,3 +634,102 @@ def voterList(request, id):
|
|
630 |
}
|
631 |
)
|
632 |
return JsonResponse({"data": optionsList})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
Bhajan,
|
17 |
OptionPoll,
|
18 |
Poll,
|
19 |
+
Books,
|
20 |
+
Sections,
|
21 |
+
Chapters,
|
22 |
)
|
23 |
from django.conf import settings
|
24 |
from django.core import serializers
|
|
|
376 |
except Exception as e:
|
377 |
return JsonResponse({"status": "error", "error": str(e)})
|
378 |
else:
|
379 |
+
|
380 |
user = request.user
|
381 |
regions = Region.objects.all()
|
382 |
data = {
|
|
|
634 |
}
|
635 |
)
|
636 |
return JsonResponse({"data": optionsList})
|
637 |
+
|
638 |
+
|
639 |
+
@api_view(["GET"])
|
640 |
+
@permission_classes([AllowAny])
|
641 |
+
def bookList(request):
|
642 |
+
books = Books.objects.all()
|
643 |
+
bookArr = []
|
644 |
+
for book in books:
|
645 |
+
bookArr.append(
|
646 |
+
{
|
647 |
+
"id": book.id,
|
648 |
+
"urlId": book.urlId,
|
649 |
+
"title": book.title,
|
650 |
+
"author": book.author,
|
651 |
+
"description": book.description,
|
652 |
+
"poster": book.poster.url if book.poster else None,
|
653 |
+
"pdf": book.pdf.url if book.pdf else None,
|
654 |
+
"isPdf": book.isPdf,
|
655 |
+
"hasSections": book.hasSections,
|
656 |
+
}
|
657 |
+
)
|
658 |
+
return JsonResponse({"books": bookArr})
|
659 |
+
|
660 |
+
|
661 |
+
@api_view(["GET"])
|
662 |
+
@permission_classes([AllowAny])
|
663 |
+
def bookDetail(request, urlId):
|
664 |
+
book = Books.objects.filter(urlId=urlId).first()
|
665 |
+
if not book:
|
666 |
+
return JsonResponse({"error": "Book not found"}, status=404)
|
667 |
+
|
668 |
+
sections = []
|
669 |
+
if book.hasSections:
|
670 |
+
bookSections = Sections.objects.filter(book=book)
|
671 |
+
for section in bookSections:
|
672 |
+
chapters = []
|
673 |
+
bookChapters = Chapters.objects.filter(section=section)
|
674 |
+
for chapter in bookChapters:
|
675 |
+
chapters.append(
|
676 |
+
{
|
677 |
+
"id": chapter.id,
|
678 |
+
"urlId": chapter.urlId,
|
679 |
+
"data": chapter.data,
|
680 |
+
"title": chapter.title,
|
681 |
+
}
|
682 |
+
)
|
683 |
+
sections.append(
|
684 |
+
{"id": section.id, "title": section.title, "chapters": chapters}
|
685 |
+
)
|
686 |
+
|
687 |
+
return JsonResponse(
|
688 |
+
{
|
689 |
+
"book": {
|
690 |
+
"id": book.id,
|
691 |
+
"urlId": book.urlId,
|
692 |
+
"title": book.title,
|
693 |
+
"author": book.author,
|
694 |
+
"description": book.description,
|
695 |
+
"poster": book.poster.url if book.poster else None,
|
696 |
+
"pdf": book.pdf.url if book.pdf else None,
|
697 |
+
"isPdf": book.isPdf,
|
698 |
+
"hasSections": book.hasSections,
|
699 |
+
"sections": sections if book.hasSections else None,
|
700 |
+
}
|
701 |
+
}
|
702 |
+
)
|
703 |
+
|
704 |
+
|
705 |
+
@api_view(["GET"])
|
706 |
+
@permission_classes([AllowAny])
|
707 |
+
def bookChapterDetail(request, urlId, chapterId):
|
708 |
+
book = Books.objects.filter(urlId=urlId).first()
|
709 |
+
chapter = Chapters.objects.filter(urlId=chapterId, book=book).first()
|
710 |
+
if not chapter:
|
711 |
+
return JsonResponse({"error": "Chapter not found"}, status=404)
|
712 |
+
|
713 |
+
return JsonResponse(
|
714 |
+
{
|
715 |
+
"chapter": {
|
716 |
+
"id": chapter.id,
|
717 |
+
"urlId": chapter.urlId,
|
718 |
+
"title": chapter.title,
|
719 |
+
"data": chapter.data,
|
720 |
+
"book": {
|
721 |
+
"id": chapter.book.id,
|
722 |
+
"title": chapter.book.title,
|
723 |
+
"author": chapter.book.author,
|
724 |
+
"poster": chapter.book.poster.url if chapter.book.poster else None,
|
725 |
+
"pdf": chapter.book.pdf.url if chapter.book.pdf else None,
|
726 |
+
},
|
727 |
+
}
|
728 |
+
}
|
729 |
+
)
|
730 |
+
|
731 |
+
|
732 |
+
@api_view(["GET"])
|
733 |
+
def data(request):
|
734 |
+
|
735 |
+
return JsonResponse({"data": ""})
|
db.sqlite3
CHANGED
Binary files a/db.sqlite3 and b/db.sqlite3 differ
|
|
extra/bhajanData.json
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
extra/dataMaker.py
CHANGED
@@ -76,3 +76,135 @@ for bhajan in bhajan_audios:
|
|
76 |
data.append(metadata)
|
77 |
with open("./metadata.json", "w") as f:
|
78 |
json.dump(data, f, indent=4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
76 |
data.append(metadata)
|
77 |
with open("./metadata.json", "w") as f:
|
78 |
json.dump(data, f, indent=4)
|
79 |
+
|
80 |
+
|
81 |
+
def swamiNiVato():
|
82 |
+
prakaran1Data = json.loads(
|
83 |
+
open("./extra/swamiNiVato/prakaran_1_data.json", "r", encoding="utf-8").read()
|
84 |
+
)
|
85 |
+
prakaran2Data = json.loads(
|
86 |
+
open("./extra/swamiNiVato/prakaran_2_data.json", "r", encoding="utf-8").read()
|
87 |
+
)
|
88 |
+
prakaran3Data = json.loads(
|
89 |
+
open("./extra/swamiNiVato/prakaran_3_data.json", "r", encoding="utf-8").read()
|
90 |
+
)
|
91 |
+
prakaran4Data = json.loads(
|
92 |
+
open("./extra/swamiNiVato/prakaran_4_data.json", "r", encoding="utf-8").read()
|
93 |
+
)
|
94 |
+
prakaran5Data = json.loads(
|
95 |
+
open("./extra/swamiNiVato/prakaran_5_data.json", "r", encoding="utf-8").read()
|
96 |
+
)
|
97 |
+
prakaran6Data = json.loads(
|
98 |
+
open("./extra/swamiNiVato/prakaran_6_data.json", "r", encoding="utf-8").read()
|
99 |
+
)
|
100 |
+
prakaran7Data = json.loads(
|
101 |
+
open("./extra/swamiNiVato/prakaran_7_data.json", "r", encoding="utf-8").read()
|
102 |
+
)
|
103 |
+
|
104 |
+
swamiNiVato = Books.objects.filter(title="Swami Ni Vato").first()
|
105 |
+
# create 7 new sections in the book
|
106 |
+
for i in range(1, 8):
|
107 |
+
section = Sections.objects.create(
|
108 |
+
book=swamiNiVato,
|
109 |
+
title=f"Prakaran {i}",
|
110 |
+
urlId=f"prakaran-{i}",
|
111 |
+
isPdf=False,
|
112 |
+
hasChapters=True,
|
113 |
+
)
|
114 |
+
# each prakaran {
|
115 |
+
# "contentGuj": "અનાદિ મૂળ અક્ષરમૂર્તિ શ્રી ગુણાતીતાનંદ સ્વામીએ વાત કરી જે, ભગવાન ને સાધુના મહિમાની વાતું નિરંતર કરવી ને સાંભળવી. ને મહારજ તો પોતાનું અક્ષરધામ ને પાર્ષદ ને પોતાનું સમગ્ર ઐશ્વર્ય તે લઈને આંહી પધાર્યા છે. તે એવા ને એવા જ છે. ને દેહ મૂકીને જેને પામવા છે, તે આજ દેહ છતાં મળ્યા છે, કાંઈ બાકી નથી; ને એમ ન સમજાય તેથી જીવમાં દુર્બળતા રહે છે, ને એમ સમજાય ત્યારે કોઈ દિવસ જીવમાં દુર્બળતા મનાય જ નહિ; ને જીવ બીજી રીતનો થઈ જાય છે. ને મહિમા સમજવા જેવું બીજું કોઈ મોટું સાધન પણ નથી ને મહિમા વિના બીજાં ગમે એટલાં સાધન કરે, તો પણ જીવ બળને પામે નહિ. ને એવો મહિમા સમજવાનું કારણ તો એવા ભગવદીનો પ્રસંગ છે, પણ તે વિના એવો મહિમા સમજાતો નથી.",
|
116 |
+
# "footnoteGuj": "",
|
117 |
+
# "mp3": "https://ia903107.us.archive.org/9/items/vato_20191108/1.mp3",
|
118 |
+
# "contentEng": "One should continuously engage in delivering and listening to talks on the glory of God and his Sadhu. Maharaj has come here (to earth) with his Akshardham,parshadsand all his powers. He is exactly the same (today).1He whom we wish to attain after death, we have attained during this life; there is nothing more left to attain. If this truth is not understood properly, thejivaremains weak. Once this is understood, thejivawill no longer consider itself weak and will acquire a different mettle. Also, there is no greater endeavour than to understand the glory of God. Without understanding the glory, even countless other endeavours will not enable thejivato attain spiritual strength. The means to understanding this glory is profound association with such a holy Sadhu, and without it the true glory of God cannot be understood.",
|
119 |
+
# "footnoteEng": "1. Meaning, the human form on earth is the same as the divine form in Akshardham.",
|
120 |
+
# "prakaran": 1,
|
121 |
+
# "vato": 1
|
122 |
+
# }
|
123 |
+
# data
|
124 |
+
for data in prakaran1Data:
|
125 |
+
section = Sections.objects.filter(
|
126 |
+
book=swamiNiVato, urlId=f"prakaran-{data["prakaran"]}"
|
127 |
+
).first()
|
128 |
+
Chapters.objects.create(
|
129 |
+
title=f'Vat {data["vato"]}',
|
130 |
+
urlId=f'vat-{data["vato"]}',
|
131 |
+
data=data,
|
132 |
+
section=section,
|
133 |
+
book=swamiNiVato,
|
134 |
+
isPdf=False,
|
135 |
+
)
|
136 |
+
for data in prakaran2Data:
|
137 |
+
section = Sections.objects.filter(
|
138 |
+
book=swamiNiVato, urlId=f"prakaran-{data['prakaran']}"
|
139 |
+
).first()
|
140 |
+
Chapters.objects.create(
|
141 |
+
title=f'Vat {data["vato"]}',
|
142 |
+
urlId=f'vat-{data["vato"]}',
|
143 |
+
data=data,
|
144 |
+
section=section,
|
145 |
+
book=swamiNiVato,
|
146 |
+
isPdf=False,
|
147 |
+
)
|
148 |
+
for data in prakaran3Data:
|
149 |
+
section = Sections.objects.filter(
|
150 |
+
book=swamiNiVato, urlId=f"prakaran-{data['prakaran']}"
|
151 |
+
).first()
|
152 |
+
Chapters.objects.create(
|
153 |
+
title=f'Vat {data["vato"]}',
|
154 |
+
urlId=f'vat-{data["vato"]}',
|
155 |
+
data=data,
|
156 |
+
section=section,
|
157 |
+
book=swamiNiVato,
|
158 |
+
isPdf=False,
|
159 |
+
)
|
160 |
+
for data in prakaran4Data:
|
161 |
+
section = Sections.objects.filter(
|
162 |
+
book=swamiNiVato, urlId=f"prakaran-{data['prakaran']}"
|
163 |
+
).first()
|
164 |
+
Chapters.objects.create(
|
165 |
+
title=f'Vat {data["vato"]}',
|
166 |
+
urlId=f'vat-{data["vato"]}',
|
167 |
+
data=data,
|
168 |
+
section=section,
|
169 |
+
book=swamiNiVato,
|
170 |
+
isPdf=False,
|
171 |
+
)
|
172 |
+
for data in prakaran5Data:
|
173 |
+
section = Sections.objects.filter(
|
174 |
+
book=swamiNiVato, urlId=f"prakaran-{data['prakaran']}"
|
175 |
+
).first()
|
176 |
+
Chapters.objects.create(
|
177 |
+
title=f'Vat {data["vato"]}',
|
178 |
+
urlId=f'vat-{data["vato"]}',
|
179 |
+
data=data,
|
180 |
+
section=section,
|
181 |
+
book=swamiNiVato,
|
182 |
+
isPdf=False,
|
183 |
+
)
|
184 |
+
|
185 |
+
for data in prakaran6Data:
|
186 |
+
section = Sections.objects.filter(
|
187 |
+
book=swamiNiVato, urlId=f"prakaran-{data['prakaran']}"
|
188 |
+
).first()
|
189 |
+
Chapters.objects.create(
|
190 |
+
title=f'Vat {data["vato"]}',
|
191 |
+
urlId=f'vat-{data["vato"]}',
|
192 |
+
data=data,
|
193 |
+
section=section,
|
194 |
+
book=swamiNiVato,
|
195 |
+
isPdf=False,
|
196 |
+
)
|
197 |
+
|
198 |
+
for data in prakaran7Data:
|
199 |
+
section = Sections.objects.filter(
|
200 |
+
book=swamiNiVato, urlId=f"prakaran-{data['prakaran']}"
|
201 |
+
).first()
|
202 |
+
Chapters.objects.create(
|
203 |
+
title=f'Vat {data["vato"]}',
|
204 |
+
urlId=f'vat-{data["vato"]}',
|
205 |
+
data=data,
|
206 |
+
section=section,
|
207 |
+
book=swamiNiVato,
|
208 |
+
isPdf=False,
|
209 |
+
)
|
210 |
+
|
extra/swamiNiVato/prakaran_1_data.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
extra/swamiNiVato/prakaran_2_data.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
extra/swamiNiVato/prakaran_3_data.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
extra/swamiNiVato/prakaran_4_data.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
extra/swamiNiVato/prakaran_5_data.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
extra/swamiNiVato/prakaran_6_data.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
extra/swamiNiVato/prakaran_7_data.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
frontend/urls.py
CHANGED
@@ -1,18 +1,18 @@
|
|
1 |
-
from django.urls import path
|
2 |
-
from . import views
|
3 |
-
|
4 |
-
urlpatterns = [
|
5 |
-
path('', views.index, name='index'),
|
6 |
-
path('calendar/', views.index, name='calendar'),
|
7 |
-
path('bhajan/', views.index, name='bhajan'),
|
8 |
-
path('bhajan/<str:id>/', views.index, name='bhajan_detail'),
|
9 |
-
path('setting/', views.index, name='setting'),
|
10 |
-
path('books/', views.index, name='books'),
|
11 |
-
path('change-password/', views.index, name='change_password'),
|
12 |
-
path('notification/', views.index, name='notification'),
|
13 |
-
path('notification-setting/', views.index, name='notification_setting'),
|
14 |
-
path('profile/', views.index, name='profile'),
|
15 |
-
path('login/', views.index, name='login'),
|
16 |
-
path('logout/', views.index, name='logout'),
|
17 |
-
path('register/', views.index, name='register'),
|
18 |
]
|
|
|
1 |
+
from django.urls import path
|
2 |
+
from . import views
|
3 |
+
|
4 |
+
urlpatterns = [
|
5 |
+
path('', views.index, name='index'),
|
6 |
+
path('calendar/', views.index, name='calendar'),
|
7 |
+
path('bhajan/', views.index, name='bhajan'),
|
8 |
+
path('bhajan/<str:id>/', views.index, name='bhajan_detail'),
|
9 |
+
path('setting/', views.index, name='setting'),
|
10 |
+
path('books/', views.index, name='books'),
|
11 |
+
path('change-password/', views.index, name='change_password'),
|
12 |
+
path('notification/', views.index, name='notification'),
|
13 |
+
path('notification-setting/', views.index, name='notification_setting'),
|
14 |
+
path('profile/', views.index, name='profile'),
|
15 |
+
path('login/', views.index, name='login'),
|
16 |
+
path('logout/', views.index, name='logout'),
|
17 |
+
path('register/', views.index, name='register'),
|
18 |
]
|
frontend/views.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
from django.shortcuts import render
|
2 |
-
|
3 |
-
def index(request, id=None):
|
4 |
-
return render(request, 'index.html')
|
|
|
1 |
+
from django.shortcuts import render
|
2 |
+
|
3 |
+
def index(request, id=None):
|
4 |
+
return render(request, 'index.html')
|
hsapssconnect/__pycache__/settings.cpython-313.pyc
CHANGED
Binary files a/hsapssconnect/__pycache__/settings.cpython-313.pyc and b/hsapssconnect/__pycache__/settings.cpython-313.pyc differ
|
|
hsapssconnect/__pycache__/urls.cpython-313.pyc
CHANGED
Binary files a/hsapssconnect/__pycache__/urls.cpython-313.pyc and b/hsapssconnect/__pycache__/urls.cpython-313.pyc differ
|
|
hsapssconnect/settings.py
CHANGED
@@ -1,177 +1,180 @@
|
|
1 |
-
"""
|
2 |
-
Django settings for hsapssconnect project.
|
3 |
-
|
4 |
-
Generated by 'django-admin startproject' using Django 5.0.6.
|
5 |
-
|
6 |
-
For more information on this file, see
|
7 |
-
https://docs.djangoproject.com/en/5.0/topics/settings/
|
8 |
-
|
9 |
-
For the full list of settings and their values, see
|
10 |
-
https://docs.djangoproject.com/en/5.0/ref/settings/
|
11 |
-
"""
|
12 |
-
|
13 |
-
from pathlib import Path
|
14 |
-
from datetime import timedelta
|
15 |
-
|
16 |
-
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
17 |
-
BASE_DIR = Path(__file__).resolve().parent.parent
|
18 |
-
|
19 |
-
|
20 |
-
# Quick-start development settings - unsuitable for production
|
21 |
-
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
|
22 |
-
|
23 |
-
# SECURITY WARNING: keep the secret key used in production secret!
|
24 |
-
SECRET_KEY = "django-insecure-lde0hgz*y9#h@sbz_u6&=&=i9cef23em^sax91iqb_)1#2s*qd"
|
25 |
-
|
26 |
-
# SECURITY WARNING: don't run with debug turned on in production!
|
27 |
-
DEBUG = True
|
28 |
-
|
29 |
-
ALLOWED_HOSTS = ["*", "127.0.0.1", "localhost", "thejagstudio-connect.hf.space", "zjkjjkxf-8000.use.devtunnels.ms"]
|
30 |
-
CORS_ORIGIN_ALLOW_ALL = True
|
31 |
-
CORS_ALLOW_CREDENTIALS = True
|
32 |
-
CORS_ALLOWED_ORIGINS = ["https://thejagstudio-connect.hf.space", "https://zjkjjkxf-8000.use.devtunnels.ms"]
|
33 |
-
|
34 |
-
CSRF_TRUSTED_ORIGINS = ["https://thejagstudio-connect.hf.space", "https://zjkjjkxf-8000.use.devtunnels.ms"]
|
35 |
-
# SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
|
36 |
-
# SECURE_SSL_REDIRECT = True
|
37 |
-
# SESSION_COOKIE_SECURE = True
|
38 |
-
# CSRF_COOKIE_SECURE = True
|
39 |
-
|
40 |
-
|
41 |
-
# Application definition
|
42 |
-
|
43 |
-
INSTALLED_APPS = [
|
44 |
-
"django.contrib.admin",
|
45 |
-
"django.contrib.auth",
|
46 |
-
"django.contrib.contenttypes",
|
47 |
-
"django.contrib.sessions",
|
48 |
-
"django.contrib.messages",
|
49 |
-
"daphne",
|
50 |
-
"api",
|
51 |
-
"notification",
|
52 |
-
"corsheaders",
|
53 |
-
"import_export",
|
54 |
-
"rest_framework",
|
55 |
-
"rest_framework_simplejwt",
|
56 |
-
"rest_framework_simplejwt.token_blacklist",
|
57 |
-
"django.contrib.staticfiles",
|
58 |
-
]
|
59 |
-
|
60 |
-
MIDDLEWARE = [
|
61 |
-
"django.middleware.security.SecurityMiddleware",
|
62 |
-
"django.contrib.sessions.middleware.SessionMiddleware",
|
63 |
-
"corsheaders.middleware.CorsMiddleware",
|
64 |
-
"django.middleware.common.CommonMiddleware",
|
65 |
-
"django.middleware.csrf.CsrfViewMiddleware",
|
66 |
-
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
67 |
-
"django.contrib.messages.middleware.MessageMiddleware",
|
68 |
-
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
69 |
-
]
|
70 |
-
|
71 |
-
ROOT_URLCONF = "hsapssconnect.urls"
|
72 |
-
|
73 |
-
TEMPLATES = [
|
74 |
-
{
|
75 |
-
"BACKEND": "django.template.backends.django.DjangoTemplates",
|
76 |
-
"DIRS": ["templates"],
|
77 |
-
"APP_DIRS": True,
|
78 |
-
"OPTIONS": {
|
79 |
-
"context_processors": [
|
80 |
-
"django.template.context_processors.debug",
|
81 |
-
"django.template.context_processors.request",
|
82 |
-
"django.contrib.auth.context_processors.auth",
|
83 |
-
"django.contrib.messages.context_processors.messages",
|
84 |
-
],
|
85 |
-
},
|
86 |
-
},
|
87 |
-
]
|
88 |
-
|
89 |
-
WSGI_APPLICATION = "hsapssconnect.wsgi.application"
|
90 |
-
ASGI_APPLICATION = "hsapssconnect.asgi.application"
|
91 |
-
CHANNEL_LAYERS = {
|
92 |
-
"default": {
|
93 |
-
"BACKEND": "channels.layers.InMemoryChannelLayer",
|
94 |
-
}
|
95 |
-
}
|
96 |
-
# Database
|
97 |
-
# https://docs.djangoproject.com/en/5.0/ref/settings/#databases
|
98 |
-
|
99 |
-
DATABASES = {
|
100 |
-
"default": {
|
101 |
-
"ENGINE": "django.db.backends.postgresql",
|
102 |
-
"NAME": "postgres",
|
103 |
-
"USER": "postgres.psjobjezrtkjvenhsmge",
|
104 |
-
"PORT": 6543,
|
105 |
-
"PASSWORD": "ErO9vgKcwCA1bdah",
|
106 |
-
"HOST": "aws-0-us-east-1.pooler.supabase.com",
|
107 |
-
}
|
108 |
-
# "default": {
|
109 |
-
# "ENGINE": "django.db.backends.sqlite3",
|
110 |
-
# "NAME": BASE_DIR / "db.sqlite3",
|
111 |
-
# }
|
112 |
-
}
|
113 |
-
|
114 |
-
# Password validation
|
115 |
-
# https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators
|
116 |
-
|
117 |
-
AUTH_PASSWORD_VALIDATORS = [
|
118 |
-
{
|
119 |
-
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
|
120 |
-
},
|
121 |
-
{
|
122 |
-
"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
|
123 |
-
},
|
124 |
-
{
|
125 |
-
"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
|
126 |
-
},
|
127 |
-
{
|
128 |
-
"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
|
129 |
-
},
|
130 |
-
]
|
131 |
-
|
132 |
-
|
133 |
-
# Internationalization
|
134 |
-
# https://docs.djangoproject.com/en/5.0/topics/i18n/
|
135 |
-
|
136 |
-
LANGUAGE_CODE = "en-us"
|
137 |
-
|
138 |
-
TIME_ZONE = "EST"
|
139 |
-
|
140 |
-
USE_I18N = True
|
141 |
-
|
142 |
-
USE_TZ = True
|
143 |
-
|
144 |
-
|
145 |
-
# Static files (CSS, JavaScript, Images)
|
146 |
-
# https://docs.djangoproject.com/en/5.0/howto/static-files/
|
147 |
-
|
148 |
-
STATIC_URL = "static/"
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
"
|
173 |
-
"
|
174 |
-
"
|
175 |
-
|
176 |
-
|
177 |
-
|
|
|
|
|
|
|
|
1 |
+
"""
|
2 |
+
Django settings for hsapssconnect project.
|
3 |
+
|
4 |
+
Generated by 'django-admin startproject' using Django 5.0.6.
|
5 |
+
|
6 |
+
For more information on this file, see
|
7 |
+
https://docs.djangoproject.com/en/5.0/topics/settings/
|
8 |
+
|
9 |
+
For the full list of settings and their values, see
|
10 |
+
https://docs.djangoproject.com/en/5.0/ref/settings/
|
11 |
+
"""
|
12 |
+
|
13 |
+
from pathlib import Path
|
14 |
+
from datetime import timedelta
|
15 |
+
|
16 |
+
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
17 |
+
BASE_DIR = Path(__file__).resolve().parent.parent
|
18 |
+
|
19 |
+
|
20 |
+
# Quick-start development settings - unsuitable for production
|
21 |
+
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
|
22 |
+
|
23 |
+
# SECURITY WARNING: keep the secret key used in production secret!
|
24 |
+
SECRET_KEY = "django-insecure-lde0hgz*y9#h@sbz_u6&=&=i9cef23em^sax91iqb_)1#2s*qd"
|
25 |
+
|
26 |
+
# SECURITY WARNING: don't run with debug turned on in production!
|
27 |
+
DEBUG = True
|
28 |
+
|
29 |
+
ALLOWED_HOSTS = ["*", "127.0.0.1", "localhost", "thejagstudio-connect.hf.space", "zjkjjkxf-8000.use.devtunnels.ms"]
|
30 |
+
CORS_ORIGIN_ALLOW_ALL = True
|
31 |
+
CORS_ALLOW_CREDENTIALS = True
|
32 |
+
CORS_ALLOWED_ORIGINS = ["https://thejagstudio-connect.hf.space", "https://zjkjjkxf-8000.use.devtunnels.ms"]
|
33 |
+
|
34 |
+
CSRF_TRUSTED_ORIGINS = ["https://thejagstudio-connect.hf.space", "https://zjkjjkxf-8000.use.devtunnels.ms"]
|
35 |
+
# SECURE_PROXY_SSL_HEADER = ("HTTP_X_FORWARDED_PROTO", "https")
|
36 |
+
# SECURE_SSL_REDIRECT = True
|
37 |
+
# SESSION_COOKIE_SECURE = True
|
38 |
+
# CSRF_COOKIE_SECURE = True
|
39 |
+
|
40 |
+
|
41 |
+
# Application definition
|
42 |
+
|
43 |
+
INSTALLED_APPS = [
|
44 |
+
"django.contrib.admin",
|
45 |
+
"django.contrib.auth",
|
46 |
+
"django.contrib.contenttypes",
|
47 |
+
"django.contrib.sessions",
|
48 |
+
"django.contrib.messages",
|
49 |
+
"daphne",
|
50 |
+
"api",
|
51 |
+
"notification",
|
52 |
+
"corsheaders",
|
53 |
+
"import_export",
|
54 |
+
"rest_framework",
|
55 |
+
"rest_framework_simplejwt",
|
56 |
+
"rest_framework_simplejwt.token_blacklist",
|
57 |
+
"django.contrib.staticfiles",
|
58 |
+
]
|
59 |
+
|
60 |
+
MIDDLEWARE = [
|
61 |
+
"django.middleware.security.SecurityMiddleware",
|
62 |
+
"django.contrib.sessions.middleware.SessionMiddleware",
|
63 |
+
"corsheaders.middleware.CorsMiddleware",
|
64 |
+
"django.middleware.common.CommonMiddleware",
|
65 |
+
"django.middleware.csrf.CsrfViewMiddleware",
|
66 |
+
"django.contrib.auth.middleware.AuthenticationMiddleware",
|
67 |
+
"django.contrib.messages.middleware.MessageMiddleware",
|
68 |
+
"django.middleware.clickjacking.XFrameOptionsMiddleware",
|
69 |
+
]
|
70 |
+
|
71 |
+
ROOT_URLCONF = "hsapssconnect.urls"
|
72 |
+
|
73 |
+
TEMPLATES = [
|
74 |
+
{
|
75 |
+
"BACKEND": "django.template.backends.django.DjangoTemplates",
|
76 |
+
"DIRS": ["templates"],
|
77 |
+
"APP_DIRS": True,
|
78 |
+
"OPTIONS": {
|
79 |
+
"context_processors": [
|
80 |
+
"django.template.context_processors.debug",
|
81 |
+
"django.template.context_processors.request",
|
82 |
+
"django.contrib.auth.context_processors.auth",
|
83 |
+
"django.contrib.messages.context_processors.messages",
|
84 |
+
],
|
85 |
+
},
|
86 |
+
},
|
87 |
+
]
|
88 |
+
|
89 |
+
WSGI_APPLICATION = "hsapssconnect.wsgi.application"
|
90 |
+
ASGI_APPLICATION = "hsapssconnect.asgi.application"
|
91 |
+
CHANNEL_LAYERS = {
|
92 |
+
"default": {
|
93 |
+
"BACKEND": "channels.layers.InMemoryChannelLayer",
|
94 |
+
}
|
95 |
+
}
|
96 |
+
# Database
|
97 |
+
# https://docs.djangoproject.com/en/5.0/ref/settings/#databases
|
98 |
+
|
99 |
+
DATABASES = {
|
100 |
+
"default": {
|
101 |
+
"ENGINE": "django.db.backends.postgresql",
|
102 |
+
"NAME": "postgres",
|
103 |
+
"USER": "postgres.psjobjezrtkjvenhsmge",
|
104 |
+
"PORT": 6543,
|
105 |
+
"PASSWORD": "ErO9vgKcwCA1bdah",
|
106 |
+
"HOST": "aws-0-us-east-1.pooler.supabase.com",
|
107 |
+
}
|
108 |
+
# "default": {
|
109 |
+
# "ENGINE": "django.db.backends.sqlite3",
|
110 |
+
# "NAME": BASE_DIR / "db.sqlite3",
|
111 |
+
# }
|
112 |
+
}
|
113 |
+
|
114 |
+
# Password validation
|
115 |
+
# https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators
|
116 |
+
|
117 |
+
AUTH_PASSWORD_VALIDATORS = [
|
118 |
+
{
|
119 |
+
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
|
120 |
+
},
|
121 |
+
{
|
122 |
+
"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
|
123 |
+
},
|
124 |
+
{
|
125 |
+
"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
|
126 |
+
},
|
127 |
+
{
|
128 |
+
"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
|
129 |
+
},
|
130 |
+
]
|
131 |
+
|
132 |
+
|
133 |
+
# Internationalization
|
134 |
+
# https://docs.djangoproject.com/en/5.0/topics/i18n/
|
135 |
+
|
136 |
+
LANGUAGE_CODE = "en-us"
|
137 |
+
|
138 |
+
TIME_ZONE = "EST"
|
139 |
+
|
140 |
+
USE_I18N = True
|
141 |
+
|
142 |
+
USE_TZ = True
|
143 |
+
|
144 |
+
|
145 |
+
# Static files (CSS, JavaScript, Images)
|
146 |
+
# https://docs.djangoproject.com/en/5.0/howto/static-files/
|
147 |
+
|
148 |
+
STATIC_URL = "static/"
|
149 |
+
STATICFILES_DIRS = [
|
150 |
+
BASE_DIR / "static",
|
151 |
+
]
|
152 |
+
|
153 |
+
# Default primary key field type
|
154 |
+
# https://docs.djangoproject.com/en/5.0/ref/settings/#default-auto-field
|
155 |
+
|
156 |
+
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
157 |
+
AUTH_USER_MODEL = "api.Bhagat"
|
158 |
+
|
159 |
+
|
160 |
+
RECAPTCHA_SITE_KEY = "6LfDVWUqAAAAAOPlzTro2t51YeymYoz-Pt89tarF"
|
161 |
+
RECAPTCHA_SECRET_KEY = "6LfDVWUqAAAAACzIE4ZKx71R0smuDVJaV-GBLR66"
|
162 |
+
|
163 |
+
REST_FRAMEWORK = {
|
164 |
+
"DEFAULT_AUTHENTICATION_CLASSES": ("rest_framework_simplejwt.authentication.JWTAuthentication",),
|
165 |
+
"DEFAULT_RENDERER_CLASSES": [
|
166 |
+
"rest_framework.renderers.JSONRenderer",
|
167 |
+
"rest_framework.renderers.BrowsableAPIRenderer",
|
168 |
+
],
|
169 |
+
}
|
170 |
+
|
171 |
+
SIMPLE_JWT = {
|
172 |
+
"ACCESS_TOKEN_LIFETIME": timedelta(days=60),
|
173 |
+
"REFRESH_TOKEN_LIFETIME": timedelta(days=120),
|
174 |
+
"ROTATE_REFRESH_TOKENS": False,
|
175 |
+
"ALGORITHM": "HS256",
|
176 |
+
"SIGNING_KEY": "HariPremci6fhen4G3iGpCE0IYrhLOPCWAvoxxVw",
|
177 |
+
"AUTH_HEADER_TYPES": ("Bearer",),
|
178 |
+
}
|
179 |
+
|
180 |
+
WEBPUSH_SETTINGS = {"VAPID_PUBLIC_KEY": "BOE7XX5MdzDx4thHOajMNZJj8C1LqGaa8X35O7hww5uzsvFyjFAcRZw71AUAYubeggvOoSvkB4nd1xtPkPFfB9U", "VAPID_PRIVATE_KEY": "gdd6ff_ti4W33uj23npZRIUZM6ViyTIOueHIv01Q7Lc", "VAPID_ADMIN_EMAIL": "[email protected]"}
|
hsapssconnect/urls.py
CHANGED
@@ -1,9 +1,15 @@
|
|
1 |
from django.contrib import admin
|
2 |
from django.urls import path
|
3 |
from django.urls.conf import include
|
|
|
|
|
4 |
|
5 |
-
urlpatterns =
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
|
|
|
|
|
|
|
|
|
1 |
from django.contrib import admin
|
2 |
from django.urls import path
|
3 |
from django.urls.conf import include
|
4 |
+
from django.conf import settings
|
5 |
+
from django.conf.urls.static import static
|
6 |
|
7 |
+
urlpatterns = (
|
8 |
+
[
|
9 |
+
path("admin/", admin.site.urls),
|
10 |
+
path("api/", include("api.urls")),
|
11 |
+
path("notifications/", include("notification.urls")),
|
12 |
+
]
|
13 |
+
+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
14 |
+
+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
|
15 |
+
)
|
notification/admin.py
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
from django.contrib import admin
|
2 |
-
|
3 |
-
# Register your models here.
|
|
|
1 |
+
from django.contrib import admin
|
2 |
+
|
3 |
+
# Register your models here.
|
notification/apps.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
from django.apps import AppConfig
|
2 |
-
|
3 |
-
|
4 |
-
class NotificationConfig(AppConfig):
|
5 |
-
default_auto_field = 'django.db.models.BigAutoField'
|
6 |
-
name = 'notification'
|
|
|
1 |
+
from django.apps import AppConfig
|
2 |
+
|
3 |
+
|
4 |
+
class NotificationConfig(AppConfig):
|
5 |
+
default_auto_field = 'django.db.models.BigAutoField'
|
6 |
+
name = 'notification'
|
notification/consumers.py
CHANGED
@@ -1,33 +1,33 @@
|
|
1 |
-
import json
|
2 |
-
from channels.generic.websocket import AsyncWebsocketConsumer
|
3 |
-
|
4 |
-
class NotificationConsumer(AsyncWebsocketConsumer):
|
5 |
-
|
6 |
-
async def connect(self):
|
7 |
-
self.group_name = 'Yuvak'
|
8 |
-
await self.channel_layer.group_add(
|
9 |
-
self.group_name,
|
10 |
-
self.channel_name
|
11 |
-
)
|
12 |
-
await self.accept()
|
13 |
-
|
14 |
-
async def disconnect(self, close_code):
|
15 |
-
await self.channel_layer.group_discard(
|
16 |
-
self.group_name,
|
17 |
-
self.channel_name
|
18 |
-
)
|
19 |
-
|
20 |
-
async def receive(self, text_data):
|
21 |
-
data = json.loads(text_data)
|
22 |
-
message = data['data']
|
23 |
-
await self.channel_layer.group_send(
|
24 |
-
self.group_name,
|
25 |
-
{
|
26 |
-
'type': 'send_notification',
|
27 |
-
'message': message
|
28 |
-
}
|
29 |
-
)
|
30 |
-
|
31 |
-
async def send_notification(self, event):
|
32 |
-
message = event['message']
|
33 |
await self.send(text_data=json.dumps({'message': message}))
|
|
|
1 |
+
import json
|
2 |
+
from channels.generic.websocket import AsyncWebsocketConsumer
|
3 |
+
|
4 |
+
class NotificationConsumer(AsyncWebsocketConsumer):
|
5 |
+
|
6 |
+
async def connect(self):
|
7 |
+
self.group_name = 'Yuvak'
|
8 |
+
await self.channel_layer.group_add(
|
9 |
+
self.group_name,
|
10 |
+
self.channel_name
|
11 |
+
)
|
12 |
+
await self.accept()
|
13 |
+
|
14 |
+
async def disconnect(self, close_code):
|
15 |
+
await self.channel_layer.group_discard(
|
16 |
+
self.group_name,
|
17 |
+
self.channel_name
|
18 |
+
)
|
19 |
+
|
20 |
+
async def receive(self, text_data):
|
21 |
+
data = json.loads(text_data)
|
22 |
+
message = data['data']
|
23 |
+
await self.channel_layer.group_send(
|
24 |
+
self.group_name,
|
25 |
+
{
|
26 |
+
'type': 'send_notification',
|
27 |
+
'message': message
|
28 |
+
}
|
29 |
+
)
|
30 |
+
|
31 |
+
async def send_notification(self, event):
|
32 |
+
message = event['message']
|
33 |
await self.send(text_data=json.dumps({'message': message}))
|
notification/models.py
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
from django.db import models
|
2 |
-
|
3 |
-
# Create your models here.
|
|
|
1 |
+
from django.db import models
|
2 |
+
|
3 |
+
# Create your models here.
|
notification/routing.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
-
from django.urls import re_path
|
2 |
-
from . import consumers
|
3 |
-
|
4 |
-
websocket_urlpatterns = [
|
5 |
-
re_path(r'ws/notification/$', consumers.NotificationConsumer.as_asgi()),
|
6 |
]
|
|
|
1 |
+
from django.urls import re_path
|
2 |
+
from . import consumers
|
3 |
+
|
4 |
+
websocket_urlpatterns = [
|
5 |
+
re_path(r'ws/notification/$', consumers.NotificationConsumer.as_asgi()),
|
6 |
]
|
notification/tests.py
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
from django.test import TestCase
|
2 |
-
|
3 |
-
# Create your tests here.
|
|
|
1 |
+
from django.test import TestCase
|
2 |
+
|
3 |
+
# Create your tests here.
|
notification/urls.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
-
from django.urls import path
|
2 |
-
from . import views
|
3 |
-
|
4 |
-
urlpatterns = [
|
5 |
-
# path('notifications/', views.notification_list, name='notification_list'),
|
6 |
-
# path('notifications/<int:id>/', views.notification_detail, name='notification_detail'),
|
7 |
]
|
|
|
1 |
+
from django.urls import path
|
2 |
+
from . import views
|
3 |
+
|
4 |
+
urlpatterns = [
|
5 |
+
# path('notifications/', views.notification_list, name='notification_list'),
|
6 |
+
# path('notifications/<int:id>/', views.notification_detail, name='notification_detail'),
|
7 |
]
|
notification/views.py
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
from django.shortcuts import render
|
2 |
-
|
3 |
-
# Create your views here.
|
|
|
1 |
+
from django.shortcuts import render
|
2 |
+
|
3 |
+
# Create your views here.
|
requirements.txt
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
-
django
|
2 |
-
django-cors-headers
|
3 |
-
djangorestframework
|
4 |
-
djangorestframework-simplejwt
|
5 |
-
psycopg2
|
6 |
-
django-import-export
|
7 |
-
requests
|
8 |
-
channels[daphne]
|
9 |
-
channels-redis
|
10 |
pywebpush
|
|
|
1 |
+
django
|
2 |
+
django-cors-headers
|
3 |
+
djangorestframework
|
4 |
+
djangorestframework-simplejwt
|
5 |
+
psycopg2
|
6 |
+
django-import-export
|
7 |
+
requests
|
8 |
+
channels[daphne]
|
9 |
+
channels-redis
|
10 |
pywebpush
|
static/CalendarData.csv
ADDED
The diff for this file is too large to render.
See raw diff
|
|
static/books/pdf/vachnamrut-gujarati.pdf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:829aa21667ac0846e8a3faad5a9eb21e2b2c0d30efa403532a51936b2c72b7e8
|
3 |
+
size 2054421
|
static/books/posters/swami-ni-vato.jpg
ADDED
![]() |
Git LFS Details
|
static/books/posters/swami-ni-vato_KrDvdpe.jpg
ADDED
![]() |
Git LFS Details
|
static/books/posters/vachanamrut.jpg
ADDED
![]() |
Git LFS Details
|
static/books/posters/vachanamrut_eP1PSm5.jpg
ADDED
![]() |
Git LFS Details
|
static/data.json
ADDED
@@ -0,0 +1,1666 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"2024": {
|
3 |
+
"January": {
|
4 |
+
"GujName": "VS-2079 - Posh-Maha",
|
5 |
+
"startEmpty": 6,
|
6 |
+
"endEmpty": 5,
|
7 |
+
"days": 31,
|
8 |
+
"1": {
|
9 |
+
"data": [
|
10 |
+
"Dasham"
|
11 |
+
],
|
12 |
+
"events": [
|
13 |
+
{
|
14 |
+
"name": "1 - Posh Sud Dasham",
|
15 |
+
"color": "slate-500"
|
16 |
+
}
|
17 |
+
],
|
18 |
+
"type": "normalDate"
|
19 |
+
},
|
20 |
+
"2": {
|
21 |
+
"data": [
|
22 |
+
"Ekadashi"
|
23 |
+
],
|
24 |
+
"events": [
|
25 |
+
{
|
26 |
+
"name": "2 - Posh Sud Ekadashi",
|
27 |
+
"color": "#94a3b8"
|
28 |
+
},
|
29 |
+
{
|
30 |
+
"name": "Putrada Ekadashi",
|
31 |
+
"color": "#60a5fa"
|
32 |
+
}
|
33 |
+
],
|
34 |
+
"type": "normalDate"
|
35 |
+
},
|
36 |
+
"3": {
|
37 |
+
"data": [
|
38 |
+
"Baras"
|
39 |
+
],
|
40 |
+
"events": [
|
41 |
+
{
|
42 |
+
"name": "3 - Posh Sud Baras",
|
43 |
+
"color": "#94a3b8"
|
44 |
+
}
|
45 |
+
],
|
46 |
+
"type": "normalDate"
|
47 |
+
},
|
48 |
+
"4": {
|
49 |
+
"data": [
|
50 |
+
"Teras"
|
51 |
+
],
|
52 |
+
"events": [
|
53 |
+
{
|
54 |
+
"name": "4 - Posh Sud Teras",
|
55 |
+
"color": "#94a3b8"
|
56 |
+
}
|
57 |
+
],
|
58 |
+
"type": "normalDate"
|
59 |
+
},
|
60 |
+
"5": {
|
61 |
+
"data": [
|
62 |
+
"Chaudas"
|
63 |
+
],
|
64 |
+
"events": [
|
65 |
+
{
|
66 |
+
"name": "5 - Posh Sud Chaudas",
|
67 |
+
"color": "#94a3b8"
|
68 |
+
}
|
69 |
+
],
|
70 |
+
"type": "normalDate"
|
71 |
+
},
|
72 |
+
"6": {
|
73 |
+
"data": [
|
74 |
+
"GunatitSwami.png"
|
75 |
+
],
|
76 |
+
"events": [
|
77 |
+
{
|
78 |
+
"name": "6 - Posh Sud Poonam",
|
79 |
+
"color": "#94a3b8"
|
80 |
+
},
|
81 |
+
{
|
82 |
+
"name": "Shri Gunatitanand Swami Diksha Din",
|
83 |
+
"color": "#60a5fa"
|
84 |
+
},
|
85 |
+
{
|
86 |
+
"name": "Atmiya Sanskardham - Amadavad",
|
87 |
+
"color": "#60a5fa"
|
88 |
+
}
|
89 |
+
],
|
90 |
+
"type": "imageDate"
|
91 |
+
},
|
92 |
+
"7": {
|
93 |
+
"data": [
|
94 |
+
"Padvo"
|
95 |
+
],
|
96 |
+
"events": [
|
97 |
+
{
|
98 |
+
"name": "7 - Posh Sud Padvo",
|
99 |
+
"color": "#94a3b8"
|
100 |
+
}
|
101 |
+
],
|
102 |
+
"type": "normalDate"
|
103 |
+
},
|
104 |
+
"8": {
|
105 |
+
"data": [
|
106 |
+
"AYMLogo.png"
|
107 |
+
],
|
108 |
+
"events": [
|
109 |
+
{
|
110 |
+
"name": "5 - Posh Vad Bij",
|
111 |
+
"color": "#94a3b8"
|
112 |
+
},
|
113 |
+
{
|
114 |
+
"name": "Atmiya Yuva Mohotsav",
|
115 |
+
"color": "#60a5fa"
|
116 |
+
}
|
117 |
+
],
|
118 |
+
"type": "imageDate"
|
119 |
+
},
|
120 |
+
"9": {
|
121 |
+
"data": [],
|
122 |
+
"events": [
|
123 |
+
{
|
124 |
+
"name": "9 - Posh Vad Bij",
|
125 |
+
"color": "#94a3b8"
|
126 |
+
},
|
127 |
+
{
|
128 |
+
"name": "Ode Mandir Patostav",
|
129 |
+
"color": "#60a5fa"
|
130 |
+
}
|
131 |
+
],
|
132 |
+
"type": "templeDate"
|
133 |
+
},
|
134 |
+
"10": {
|
135 |
+
"data": [
|
136 |
+
"Trij"
|
137 |
+
],
|
138 |
+
"events": [
|
139 |
+
{
|
140 |
+
"name": "10 - Posh Vad Trij",
|
141 |
+
"color": "#94a3b8"
|
142 |
+
}
|
143 |
+
],
|
144 |
+
"type": "normalDate"
|
145 |
+
},
|
146 |
+
"11": {
|
147 |
+
"data": [
|
148 |
+
"Choth"
|
149 |
+
],
|
150 |
+
"events": [
|
151 |
+
{
|
152 |
+
"name": "11 - Posh Vad Choth",
|
153 |
+
"color": "#94a3b8"
|
154 |
+
}
|
155 |
+
],
|
156 |
+
"type": "normalDate"
|
157 |
+
},
|
158 |
+
"12": {
|
159 |
+
"data": [
|
160 |
+
"Pancham",
|
161 |
+
"Swami Vivekanand Jayanti"
|
162 |
+
],
|
163 |
+
"events": [
|
164 |
+
{
|
165 |
+
"name": "12 - Posh Vad Pancham",
|
166 |
+
"color": "#94a3b8"
|
167 |
+
},
|
168 |
+
{
|
169 |
+
"name": "Swami Vivekanand Jayanti",
|
170 |
+
"color": "white"
|
171 |
+
}
|
172 |
+
],
|
173 |
+
"type": "multipleDate"
|
174 |
+
},
|
175 |
+
"13": {
|
176 |
+
"data": [
|
177 |
+
"Chhath"
|
178 |
+
],
|
179 |
+
"events": [
|
180 |
+
{
|
181 |
+
"name": "13 - Posh Vad Chhath",
|
182 |
+
"color": "#94a3b8"
|
183 |
+
}
|
184 |
+
],
|
185 |
+
"type": "normalDate"
|
186 |
+
},
|
187 |
+
"14": {
|
188 |
+
"data": [
|
189 |
+
"kite.png"
|
190 |
+
],
|
191 |
+
"events": [
|
192 |
+
{
|
193 |
+
"name": "14 - Posh Vad Satam",
|
194 |
+
"color": "#94a3b8"
|
195 |
+
},
|
196 |
+
{
|
197 |
+
"name": "Makar Sankranti",
|
198 |
+
"color": "#fb923c"
|
199 |
+
},
|
200 |
+
{
|
201 |
+
"name": "Dhanurmash Sampat",
|
202 |
+
"color": "#60a5fa"
|
203 |
+
}
|
204 |
+
],
|
205 |
+
"type": "imageDate"
|
206 |
+
},
|
207 |
+
"15": {
|
208 |
+
"data": [
|
209 |
+
"Aatham"
|
210 |
+
],
|
211 |
+
"events": [
|
212 |
+
{
|
213 |
+
"name": "15 - Posh Vad Aatham",
|
214 |
+
"color": "#94a3b8"
|
215 |
+
}
|
216 |
+
],
|
217 |
+
"type": "normalDate"
|
218 |
+
},
|
219 |
+
"16": {
|
220 |
+
"data": [
|
221 |
+
"Nom"
|
222 |
+
],
|
223 |
+
"events": [
|
224 |
+
{
|
225 |
+
"name": "16 - Posh Vad Nom",
|
226 |
+
"color": "#94a3b8"
|
227 |
+
}
|
228 |
+
],
|
229 |
+
"type": "normalDate"
|
230 |
+
},
|
231 |
+
"17": {
|
232 |
+
"data": [
|
233 |
+
"Dasham"
|
234 |
+
],
|
235 |
+
"events": [
|
236 |
+
{
|
237 |
+
"name": "17 - Posh Vad Dasham",
|
238 |
+
"color": "#94a3b8"
|
239 |
+
}
|
240 |
+
],
|
241 |
+
"type": "normalDate"
|
242 |
+
},
|
243 |
+
"18": {
|
244 |
+
"data": [
|
245 |
+
"Ekadashi",
|
246 |
+
"Shattila Ekadashi"
|
247 |
+
],
|
248 |
+
"events": [
|
249 |
+
{
|
250 |
+
"name": "18 - Posh Vad Ekadashi",
|
251 |
+
"color": "#94a3b8"
|
252 |
+
},
|
253 |
+
{
|
254 |
+
"name": "Shattila Ekadashi",
|
255 |
+
"color": "white"
|
256 |
+
},
|
257 |
+
{
|
258 |
+
"name": "Shri Yogiji Maharaj Swadhamgaman Din Tithi",
|
259 |
+
"color": "#60a5fa"
|
260 |
+
}
|
261 |
+
],
|
262 |
+
"type": "multipleDate"
|
263 |
+
},
|
264 |
+
"19": {
|
265 |
+
"data": [
|
266 |
+
"Baras"
|
267 |
+
],
|
268 |
+
"events": [
|
269 |
+
{
|
270 |
+
"name": "19 - Posh Vad Baras",
|
271 |
+
"color": "#94a3b8"
|
272 |
+
}
|
273 |
+
],
|
274 |
+
"type": "normalDate"
|
275 |
+
},
|
276 |
+
"20": {
|
277 |
+
"data": [
|
278 |
+
"Teras"
|
279 |
+
],
|
280 |
+
"events": [
|
281 |
+
{
|
282 |
+
"name": "20 - Posh Vad Teras",
|
283 |
+
"color": "#94a3b8"
|
284 |
+
}
|
285 |
+
],
|
286 |
+
"type": "normalDate"
|
287 |
+
},
|
288 |
+
"21": {
|
289 |
+
"data": [
|
290 |
+
"Amas"
|
291 |
+
],
|
292 |
+
"events": [
|
293 |
+
{
|
294 |
+
"name": "21 - Posh Vad Amas",
|
295 |
+
"color": "#94a3b8"
|
296 |
+
}
|
297 |
+
],
|
298 |
+
"type": "normalDate"
|
299 |
+
},
|
300 |
+
"22": {
|
301 |
+
"data": [
|
302 |
+
"Padvo"
|
303 |
+
],
|
304 |
+
"events": [
|
305 |
+
{
|
306 |
+
"name": "22 - Maha Sud Padvo",
|
307 |
+
"color": "#94a3b8"
|
308 |
+
}
|
309 |
+
],
|
310 |
+
"type": "normalDate"
|
311 |
+
},
|
312 |
+
"23": {
|
313 |
+
"data": [
|
314 |
+
"yogijiMaharaj.png"
|
315 |
+
],
|
316 |
+
"events": [
|
317 |
+
{
|
318 |
+
"name": "23 - Maha Sud Bij",
|
319 |
+
"color": "#94a3b8"
|
320 |
+
},
|
321 |
+
{
|
322 |
+
"name": "Shri Yogiji Maharaj Swadhamgaman Din",
|
323 |
+
"color": "#60a5fa"
|
324 |
+
},
|
325 |
+
{
|
326 |
+
"name": "Danti & Navapura Mandir Patosav",
|
327 |
+
"color": "#60a5fa"
|
328 |
+
}
|
329 |
+
],
|
330 |
+
"type": "imageDate"
|
331 |
+
},
|
332 |
+
"24": {
|
333 |
+
"data": [
|
334 |
+
"Trij"
|
335 |
+
],
|
336 |
+
"events": [
|
337 |
+
{
|
338 |
+
"name": "24 - Maha Sud Trij",
|
339 |
+
"color": "#94a3b8"
|
340 |
+
}
|
341 |
+
],
|
342 |
+
"type": "normalDate"
|
343 |
+
},
|
344 |
+
"25": {
|
345 |
+
"data": [
|
346 |
+
"Choth"
|
347 |
+
],
|
348 |
+
"events": [
|
349 |
+
{
|
350 |
+
"name": "25 - Maha Sud Choth",
|
351 |
+
"color": "#94a3b8"
|
352 |
+
}
|
353 |
+
],
|
354 |
+
"type": "normalDate"
|
355 |
+
},
|
356 |
+
"26": {
|
357 |
+
"data": [
|
358 |
+
"shastrijiMaharaj.png"
|
359 |
+
],
|
360 |
+
"events": [
|
361 |
+
{
|
362 |
+
"name": "26 - Maha Sud Pancham",
|
363 |
+
"color": "#94a3b8"
|
364 |
+
},
|
365 |
+
{
|
366 |
+
"name": "Republic Day",
|
367 |
+
"color": "#fb923c"
|
368 |
+
},
|
369 |
+
{
|
370 |
+
"name": "Shri Shastriji Maharaj Swadhamgaman Din",
|
371 |
+
"color": "#60a5fa"
|
372 |
+
},
|
373 |
+
{
|
374 |
+
"name": "Vasant Panchami, Shri Shishapatri Jayanti",
|
375 |
+
"color": "#60a5fa"
|
376 |
+
},
|
377 |
+
{
|
378 |
+
"name": "Ghodasar - Amadavad Harimandir Patostav",
|
379 |
+
"color": "#60a5fa"
|
380 |
+
}
|
381 |
+
],
|
382 |
+
"type": "imageDate"
|
383 |
+
},
|
384 |
+
"27": {
|
385 |
+
"data": [
|
386 |
+
"Chhath"
|
387 |
+
],
|
388 |
+
"events": [
|
389 |
+
{
|
390 |
+
"name": "27 - Maha Sud Chhath",
|
391 |
+
"color": "#94a3b8"
|
392 |
+
}
|
393 |
+
],
|
394 |
+
"type": "normalDate"
|
395 |
+
},
|
396 |
+
"28": {
|
397 |
+
"data": [
|
398 |
+
"Satam"
|
399 |
+
],
|
400 |
+
"events": [
|
401 |
+
{
|
402 |
+
"name": "28 - Maha Sud Satam",
|
403 |
+
"color": "#94a3b8"
|
404 |
+
}
|
405 |
+
],
|
406 |
+
"type": "normalDate"
|
407 |
+
},
|
408 |
+
"29": {
|
409 |
+
"data": [
|
410 |
+
"gopalanadSwami.png"
|
411 |
+
],
|
412 |
+
"events": [
|
413 |
+
{
|
414 |
+
"name": "29 - Maha Sud Aatham",
|
415 |
+
"color": "#94a3b8"
|
416 |
+
},
|
417 |
+
{
|
418 |
+
"name": "Shri Gopalanand Swami Pragatya Din",
|
419 |
+
"color": "#60a5fa"
|
420 |
+
}
|
421 |
+
],
|
422 |
+
"type": "imageDate"
|
423 |
+
},
|
424 |
+
"30": {
|
425 |
+
"data": [
|
426 |
+
"Nom"
|
427 |
+
],
|
428 |
+
"events": [
|
429 |
+
{
|
430 |
+
"name": "30 - Maha Sud Nom",
|
431 |
+
"color": "#94a3b8"
|
432 |
+
}
|
433 |
+
],
|
434 |
+
"type": "normalDate"
|
435 |
+
},
|
436 |
+
"31": {
|
437 |
+
"data": [
|
438 |
+
"Dasham"
|
439 |
+
],
|
440 |
+
"events": [
|
441 |
+
{
|
442 |
+
"name": "31 - Maha Sud Dasham",
|
443 |
+
"color": "#94a3b8"
|
444 |
+
}
|
445 |
+
],
|
446 |
+
"type": "normalDate"
|
447 |
+
}
|
448 |
+
},
|
449 |
+
"February": {
|
450 |
+
"GujName": "VS-2079 - Maha-Fagan",
|
451 |
+
"startEmpty": 2,
|
452 |
+
"endEmpty": 5,
|
453 |
+
"days": 28,
|
454 |
+
"1": {
|
455 |
+
"data": [
|
456 |
+
"Ekadashi",
|
457 |
+
"Jaya Ekadashi"
|
458 |
+
],
|
459 |
+
"events": [
|
460 |
+
{
|
461 |
+
"name": "1 - Maha Sud Ekadashi",
|
462 |
+
"color": "#94a3b8"
|
463 |
+
},
|
464 |
+
{
|
465 |
+
"name": "Jaya Ekadashi",
|
466 |
+
"color": "white"
|
467 |
+
}
|
468 |
+
],
|
469 |
+
"type": "multipleDate"
|
470 |
+
},
|
471 |
+
"2": {
|
472 |
+
"data": [
|
473 |
+
"Baras"
|
474 |
+
],
|
475 |
+
"events": [
|
476 |
+
{
|
477 |
+
"name": "2 - Maha Sud Baras",
|
478 |
+
"color": "#94a3b8"
|
479 |
+
}
|
480 |
+
],
|
481 |
+
"type": "normalDate"
|
482 |
+
},
|
483 |
+
"3": {
|
484 |
+
"data": [
|
485 |
+
"Teras",
|
486 |
+
"Shri Vishwakarma Jayanti"
|
487 |
+
],
|
488 |
+
"events": [
|
489 |
+
{
|
490 |
+
"name": "3 - Maha Sud Teras",
|
491 |
+
"color": "#94a3b8"
|
492 |
+
},
|
493 |
+
{
|
494 |
+
"name": "Shri Vishwakarma Jayanti",
|
495 |
+
"color": "white"
|
496 |
+
}
|
497 |
+
],
|
498 |
+
"type": "multipleDate"
|
499 |
+
},
|
500 |
+
"4": {
|
501 |
+
"data": [
|
502 |
+
"Chaudas"
|
503 |
+
],
|
504 |
+
"events": [
|
505 |
+
{
|
506 |
+
"name": "4 - Maha Sud Chaudas",
|
507 |
+
"color": "#94a3b8"
|
508 |
+
}
|
509 |
+
],
|
510 |
+
"type": "normalDate"
|
511 |
+
},
|
512 |
+
"5": {
|
513 |
+
"data": [
|
514 |
+
"Poonam"
|
515 |
+
],
|
516 |
+
"events": [
|
517 |
+
{
|
518 |
+
"name": "5 - Maha Sud Poonam",
|
519 |
+
"color": "#94a3b8"
|
520 |
+
}
|
521 |
+
],
|
522 |
+
"type": "normalDate"
|
523 |
+
},
|
524 |
+
"6": {
|
525 |
+
"data": [
|
526 |
+
"Padvo"
|
527 |
+
],
|
528 |
+
"events": [
|
529 |
+
{
|
530 |
+
"name": "6 - Maha Vas Padvo",
|
531 |
+
"color": "#94a3b8"
|
532 |
+
}
|
533 |
+
],
|
534 |
+
"type": "normalDate"
|
535 |
+
},
|
536 |
+
"7": {
|
537 |
+
"data": [
|
538 |
+
"Bij"
|
539 |
+
],
|
540 |
+
"events": [
|
541 |
+
{
|
542 |
+
"name": "7 - Maha Vad Bij",
|
543 |
+
"color": "#94a3b8"
|
544 |
+
}
|
545 |
+
],
|
546 |
+
"type": "normalDate"
|
547 |
+
},
|
548 |
+
"8": {
|
549 |
+
"data": [
|
550 |
+
"Trij"
|
551 |
+
],
|
552 |
+
"events": [
|
553 |
+
{
|
554 |
+
"name": "8 - Maha Vad Trij",
|
555 |
+
"color": "#94a3b8"
|
556 |
+
}
|
557 |
+
],
|
558 |
+
"type": "normalDate"
|
559 |
+
},
|
560 |
+
"9": {
|
561 |
+
"data": [],
|
562 |
+
"events": [
|
563 |
+
{
|
564 |
+
"name": "9 - Maha Vad Choth",
|
565 |
+
"color": "#94a3b8"
|
566 |
+
},
|
567 |
+
{
|
568 |
+
"name": "Bhaktidham - Netrang Mandir Patostav",
|
569 |
+
"color": "#60a5fa"
|
570 |
+
}
|
571 |
+
],
|
572 |
+
"type": "templeDate"
|
573 |
+
},
|
574 |
+
"10": {
|
575 |
+
"data": [
|
576 |
+
"Choth"
|
577 |
+
],
|
578 |
+
"events": [
|
579 |
+
{
|
580 |
+
"name": "10 - Maha Vad Choth",
|
581 |
+
"color": "#94a3b8"
|
582 |
+
}
|
583 |
+
],
|
584 |
+
"type": "normalDate"
|
585 |
+
},
|
586 |
+
"11": {
|
587 |
+
"data": [
|
588 |
+
"Pancham"
|
589 |
+
],
|
590 |
+
"events": [
|
591 |
+
{
|
592 |
+
"name": "11 - Maha Vad Pancham",
|
593 |
+
"color": "#94a3b8"
|
594 |
+
}
|
595 |
+
],
|
596 |
+
"type": "normalDate"
|
597 |
+
},
|
598 |
+
"12": {
|
599 |
+
"data": [
|
600 |
+
"Chhath"
|
601 |
+
],
|
602 |
+
"events": [
|
603 |
+
{
|
604 |
+
"name": "12 - Maha Vad Chhath",
|
605 |
+
"color": "#94a3b8"
|
606 |
+
}
|
607 |
+
],
|
608 |
+
"type": "normalDate"
|
609 |
+
},
|
610 |
+
"13": {
|
611 |
+
"data": [
|
612 |
+
"Satam"
|
613 |
+
],
|
614 |
+
"events": [
|
615 |
+
{
|
616 |
+
"name": "13 - Maha Vad Satam",
|
617 |
+
"color": "#94a3b8"
|
618 |
+
}
|
619 |
+
],
|
620 |
+
"type": "normalDate"
|
621 |
+
},
|
622 |
+
"14": {
|
623 |
+
"data": [
|
624 |
+
"Aatham"
|
625 |
+
],
|
626 |
+
"events": [
|
627 |
+
{
|
628 |
+
"name": "14 - Maha Vad Aatham",
|
629 |
+
"color": "#94a3b8"
|
630 |
+
}
|
631 |
+
],
|
632 |
+
"type": "normalDate"
|
633 |
+
},
|
634 |
+
"15": {
|
635 |
+
"data": [
|
636 |
+
"Nom",
|
637 |
+
"Shri Aksharvihari Swami Pragatya Din"
|
638 |
+
],
|
639 |
+
"events": [
|
640 |
+
{
|
641 |
+
"name": "15 - Mah Vad Nom",
|
642 |
+
"color": "#94a3b8"
|
643 |
+
},
|
644 |
+
{
|
645 |
+
"name": "Shri Aksharvihari Swami Pragatya Din",
|
646 |
+
"color": "white"
|
647 |
+
}
|
648 |
+
],
|
649 |
+
"type": "multipleDate"
|
650 |
+
},
|
651 |
+
"16": {
|
652 |
+
"data": [
|
653 |
+
"Ekadashi"
|
654 |
+
],
|
655 |
+
"events": [
|
656 |
+
{
|
657 |
+
"name": "16 - Maha Vad Ekadashi",
|
658 |
+
"color": "#94a3b8"
|
659 |
+
},
|
660 |
+
{
|
661 |
+
"name": "Vijaya Ekadashi",
|
662 |
+
"color": "white"
|
663 |
+
}
|
664 |
+
],
|
665 |
+
"type": "normalDate"
|
666 |
+
},
|
667 |
+
"17": {
|
668 |
+
"data": [],
|
669 |
+
"events": [
|
670 |
+
{
|
671 |
+
"name": "17 - Mah Vad Baras",
|
672 |
+
"color": "#94a3b8"
|
673 |
+
},
|
674 |
+
{
|
675 |
+
"name": "Machhivas",
|
676 |
+
"color": "#94a3b8"
|
677 |
+
}
|
678 |
+
],
|
679 |
+
"type": "templeDate"
|
680 |
+
},
|
681 |
+
"18": {
|
682 |
+
"data": [
|
683 |
+
"shiv.png"
|
684 |
+
],
|
685 |
+
"events": [
|
686 |
+
{
|
687 |
+
"name": "18 - Maha Vad Teras",
|
688 |
+
"color": "#94a3b8"
|
689 |
+
},
|
690 |
+
{
|
691 |
+
"name": "Maha Shivaratri",
|
692 |
+
"color": "#fb923c"
|
693 |
+
}
|
694 |
+
],
|
695 |
+
"type": "imageDate"
|
696 |
+
},
|
697 |
+
"19": {
|
698 |
+
"data": [
|
699 |
+
"shastrijiMaharaj.png"
|
700 |
+
],
|
701 |
+
"events": [
|
702 |
+
{
|
703 |
+
"name": "19 - Maha Vad Chaudash",
|
704 |
+
"color": "#94a3b8"
|
705 |
+
},
|
706 |
+
{
|
707 |
+
"name": "Shri Shastriji Maharaj Diksha Din",
|
708 |
+
"color": "#60a5fa"
|
709 |
+
}
|
710 |
+
],
|
711 |
+
"type": "imageDate"
|
712 |
+
},
|
713 |
+
"20": {
|
714 |
+
"data": [
|
715 |
+
"Amas"
|
716 |
+
],
|
717 |
+
"events": [
|
718 |
+
{
|
719 |
+
"name": "20 - Maha Vad Amas",
|
720 |
+
"color": "#94a3b8"
|
721 |
+
}
|
722 |
+
],
|
723 |
+
"type": "normalDate"
|
724 |
+
},
|
725 |
+
"21": {
|
726 |
+
"data": [
|
727 |
+
"Padvo"
|
728 |
+
],
|
729 |
+
"events": [
|
730 |
+
{
|
731 |
+
"name": "21 - Fagan Sud Padvo",
|
732 |
+
"color": "#94a3b8"
|
733 |
+
}
|
734 |
+
],
|
735 |
+
"type": "normalDate"
|
736 |
+
},
|
737 |
+
"22": {
|
738 |
+
"data": [
|
739 |
+
"Trij"
|
740 |
+
],
|
741 |
+
"events": [
|
742 |
+
{
|
743 |
+
"name": "22 - Fagan Sud Trij",
|
744 |
+
"color": "#94a3b8"
|
745 |
+
}
|
746 |
+
],
|
747 |
+
"type": "normalDate"
|
748 |
+
},
|
749 |
+
"23": {
|
750 |
+
"data": [
|
751 |
+
"Choth"
|
752 |
+
],
|
753 |
+
"events": [
|
754 |
+
{
|
755 |
+
"name": "22 - Fagan Sud Choth",
|
756 |
+
"color": "#94a3b8"
|
757 |
+
}
|
758 |
+
],
|
759 |
+
"type": "normalDate"
|
760 |
+
},
|
761 |
+
"24": {
|
762 |
+
"data": [
|
763 |
+
"Pancham"
|
764 |
+
],
|
765 |
+
"events": [
|
766 |
+
{
|
767 |
+
"name": "24 - Fagan Sud Pancham",
|
768 |
+
"color": "#94a3b8"
|
769 |
+
},
|
770 |
+
{
|
771 |
+
"name": "Rajkot Mandir Patostav",
|
772 |
+
"color": "blue-500"
|
773 |
+
}
|
774 |
+
],
|
775 |
+
"type": "templeDate"
|
776 |
+
},
|
777 |
+
"25": {
|
778 |
+
"data": [
|
779 |
+
"Chhath"
|
780 |
+
],
|
781 |
+
"events": [
|
782 |
+
{
|
783 |
+
"name": "25 - Fagan Sud Chhath",
|
784 |
+
"color": "#94a3b8"
|
785 |
+
}
|
786 |
+
],
|
787 |
+
"type": "normalDate"
|
788 |
+
},
|
789 |
+
"26": {
|
790 |
+
"data": [
|
791 |
+
"Satam",
|
792 |
+
"Holashtak Betha"
|
793 |
+
],
|
794 |
+
"events": [
|
795 |
+
{
|
796 |
+
"name": "26 - Fagan Sud Satam",
|
797 |
+
"color": "#94a3b8"
|
798 |
+
},
|
799 |
+
{
|
800 |
+
"name": "Holashtak Betha",
|
801 |
+
"color": "white"
|
802 |
+
}
|
803 |
+
],
|
804 |
+
"type": "multipleDate"
|
805 |
+
},
|
806 |
+
"27": {
|
807 |
+
"data": [
|
808 |
+
"Aatham"
|
809 |
+
],
|
810 |
+
"events": [
|
811 |
+
{
|
812 |
+
"name": "27 - Fagan Sud Aatham",
|
813 |
+
"color": "#94a3b8"
|
814 |
+
}
|
815 |
+
],
|
816 |
+
"type": "normalDate"
|
817 |
+
},
|
818 |
+
"28": {
|
819 |
+
"data": [
|
820 |
+
"Nom"
|
821 |
+
],
|
822 |
+
"events": [
|
823 |
+
{
|
824 |
+
"name": "28 - Fagan Sud Nom",
|
825 |
+
"color": "#94a3b8"
|
826 |
+
}
|
827 |
+
],
|
828 |
+
"type": "normalDate"
|
829 |
+
}
|
830 |
+
},
|
831 |
+
"March": {
|
832 |
+
"GujName": "VS-2079 - Fagan-Chaitra",
|
833 |
+
"startEmpty": 2,
|
834 |
+
"endEmpty": 2,
|
835 |
+
"days": 31,
|
836 |
+
"1": {
|
837 |
+
"data": [
|
838 |
+
"Dasham"
|
839 |
+
],
|
840 |
+
"events": [
|
841 |
+
{
|
842 |
+
"name": "1 - Fagan Sud Dasham",
|
843 |
+
"color": "#94a3b8"
|
844 |
+
}
|
845 |
+
],
|
846 |
+
"type": "normalDate"
|
847 |
+
},
|
848 |
+
"2": {
|
849 |
+
"data": [
|
850 |
+
"Ekadashi "
|
851 |
+
],
|
852 |
+
"events": [
|
853 |
+
{
|
854 |
+
"name": "2 - Fagan Sud Ekadashi",
|
855 |
+
"color": "#94a3b8"
|
856 |
+
}
|
857 |
+
],
|
858 |
+
"type": "normalDate"
|
859 |
+
},
|
860 |
+
"3": {
|
861 |
+
"data": [
|
862 |
+
"Ekadashi",
|
863 |
+
"Amalki Ekadashi"
|
864 |
+
],
|
865 |
+
"events": [
|
866 |
+
{
|
867 |
+
"name": "3 - Fagan Sud Ekadashi",
|
868 |
+
"color": "#94a3b8"
|
869 |
+
},
|
870 |
+
{
|
871 |
+
"name": "Amalki Ekadashi",
|
872 |
+
"color": "#94a3b8"
|
873 |
+
}
|
874 |
+
],
|
875 |
+
"type": "multipleDate"
|
876 |
+
},
|
877 |
+
"4": {
|
878 |
+
"data": [
|
879 |
+
"Baras"
|
880 |
+
],
|
881 |
+
"events": [
|
882 |
+
{
|
883 |
+
"name": "4 - Fagan Sud Baras",
|
884 |
+
"color": "#94a3b8"
|
885 |
+
}
|
886 |
+
],
|
887 |
+
"type": "normalDate"
|
888 |
+
},
|
889 |
+
"5": {
|
890 |
+
"data": [
|
891 |
+
"Teras"
|
892 |
+
],
|
893 |
+
"events": [
|
894 |
+
{
|
895 |
+
"name": "5 - Fagan Sud Teras",
|
896 |
+
"color": "#94a3b8"
|
897 |
+
}
|
898 |
+
],
|
899 |
+
"type": "normalDate"
|
900 |
+
},
|
901 |
+
"6": {
|
902 |
+
"data": [
|
903 |
+
"bhagatji.png"
|
904 |
+
],
|
905 |
+
"events": [
|
906 |
+
{
|
907 |
+
"name": "6 - Fagan Sud Poonam",
|
908 |
+
"color": "#94a3b8"
|
909 |
+
},
|
910 |
+
{
|
911 |
+
"name": "Shri Bhagataji Maharaj Pragatya Din",
|
912 |
+
"color": "#60a5fa"
|
913 |
+
}
|
914 |
+
],
|
915 |
+
"type": "imageDate"
|
916 |
+
},
|
917 |
+
"7": {
|
918 |
+
"data": [
|
919 |
+
"Poonam",
|
920 |
+
"Dhuleti"
|
921 |
+
],
|
922 |
+
"events": [
|
923 |
+
{
|
924 |
+
"name": "7 - Fagan Sud Poonam",
|
925 |
+
"color": "#94a3b8"
|
926 |
+
},
|
927 |
+
{
|
928 |
+
"name": "Dhuleti",
|
929 |
+
"color": "#fb923c"
|
930 |
+
}
|
931 |
+
],
|
932 |
+
"type": "multipleDate"
|
933 |
+
},
|
934 |
+
"8": {
|
935 |
+
"data": [
|
936 |
+
"Padvo"
|
937 |
+
],
|
938 |
+
"events": [
|
939 |
+
{
|
940 |
+
"name": "8 - Fagan Vad Padvo",
|
941 |
+
"color": "#94a3b8"
|
942 |
+
}
|
943 |
+
],
|
944 |
+
"type": "normalDate"
|
945 |
+
},
|
946 |
+
"9": {
|
947 |
+
"data": [
|
948 |
+
"Bij"
|
949 |
+
],
|
950 |
+
"events": [
|
951 |
+
{
|
952 |
+
"name": "9 - Fagan Vad Bij",
|
953 |
+
"color": "#94a3b8"
|
954 |
+
}
|
955 |
+
],
|
956 |
+
"type": "normalDate"
|
957 |
+
},
|
958 |
+
"10": {
|
959 |
+
"data": [
|
960 |
+
"Trij"
|
961 |
+
],
|
962 |
+
"events": [
|
963 |
+
{
|
964 |
+
"name": "10 - Fagan Vad Trij",
|
965 |
+
"color": "#94a3b8"
|
966 |
+
}
|
967 |
+
],
|
968 |
+
"type": "normalDate"
|
969 |
+
},
|
970 |
+
"11": {
|
971 |
+
"data": [
|
972 |
+
"Choth"
|
973 |
+
],
|
974 |
+
"events": [
|
975 |
+
{
|
976 |
+
"name": "11 - Fagan Vad Choth",
|
977 |
+
"color": "#94a3b8"
|
978 |
+
}
|
979 |
+
],
|
980 |
+
"type": "normalDate"
|
981 |
+
},
|
982 |
+
"12": {
|
983 |
+
"data": [
|
984 |
+
"Pancham"
|
985 |
+
],
|
986 |
+
"events": [
|
987 |
+
{
|
988 |
+
"name": "12 - Fagan Vad Pancham",
|
989 |
+
"color": "#94a3b8"
|
990 |
+
}
|
991 |
+
],
|
992 |
+
"type": "normalDate"
|
993 |
+
},
|
994 |
+
"13": {
|
995 |
+
"data": [
|
996 |
+
"Chhath"
|
997 |
+
],
|
998 |
+
"events": [
|
999 |
+
{
|
1000 |
+
"name": "13 - Fagan Vad Chhath",
|
1001 |
+
"color": "#94a3b8"
|
1002 |
+
}
|
1003 |
+
],
|
1004 |
+
"type": "normalDate"
|
1005 |
+
},
|
1006 |
+
"14": {
|
1007 |
+
"data": [
|
1008 |
+
"Satam"
|
1009 |
+
],
|
1010 |
+
"events": [
|
1011 |
+
{
|
1012 |
+
"name": "14 - Fagan Vad Satam",
|
1013 |
+
"color": "#94a3b8"
|
1014 |
+
}
|
1015 |
+
],
|
1016 |
+
"type": "normalDate"
|
1017 |
+
},
|
1018 |
+
"15": {
|
1019 |
+
"data": [
|
1020 |
+
"Aatham"
|
1021 |
+
],
|
1022 |
+
"events": [
|
1023 |
+
{
|
1024 |
+
"name": "15 - Fagan Vad Aatham",
|
1025 |
+
"color": "#94a3b8"
|
1026 |
+
}
|
1027 |
+
],
|
1028 |
+
"type": "normalDate"
|
1029 |
+
},
|
1030 |
+
"16": {
|
1031 |
+
"data": [
|
1032 |
+
"Nom"
|
1033 |
+
],
|
1034 |
+
"events": [
|
1035 |
+
{
|
1036 |
+
"name": "16 - Fagan Vad Nom",
|
1037 |
+
"color": "#94a3b8"
|
1038 |
+
}
|
1039 |
+
],
|
1040 |
+
"type": "normalDate"
|
1041 |
+
},
|
1042 |
+
"17": {
|
1043 |
+
"data": [
|
1044 |
+
"Dasham"
|
1045 |
+
],
|
1046 |
+
"events": [
|
1047 |
+
{
|
1048 |
+
"name": "17 - Fagan Vad Dasham",
|
1049 |
+
"color": "#94a3b8"
|
1050 |
+
}
|
1051 |
+
],
|
1052 |
+
"type": "normalDate"
|
1053 |
+
},
|
1054 |
+
"18": {
|
1055 |
+
"data": [
|
1056 |
+
"Ekadashi",
|
1057 |
+
"Papmochani Ekadashi"
|
1058 |
+
],
|
1059 |
+
"events": [
|
1060 |
+
{
|
1061 |
+
"name": "18 - Fagan Vad Ekadashi",
|
1062 |
+
"color": "#94a3b8"
|
1063 |
+
},
|
1064 |
+
{
|
1065 |
+
"name": "Papmochani Ekadashi",
|
1066 |
+
"color": "white"
|
1067 |
+
}
|
1068 |
+
],
|
1069 |
+
"type": "multipleDate"
|
1070 |
+
},
|
1071 |
+
"19": {
|
1072 |
+
"data": [
|
1073 |
+
"Baras"
|
1074 |
+
],
|
1075 |
+
"events": [
|
1076 |
+
{
|
1077 |
+
"name": "19 - Fagan Vad Baras",
|
1078 |
+
"color": "#94a3b8"
|
1079 |
+
}
|
1080 |
+
],
|
1081 |
+
"type": "normalDate"
|
1082 |
+
},
|
1083 |
+
"20": {
|
1084 |
+
"data": [
|
1085 |
+
"Chaudas"
|
1086 |
+
],
|
1087 |
+
"events": [
|
1088 |
+
{
|
1089 |
+
"name": "20 - Fagan Vad Chaudas",
|
1090 |
+
"color": "#94a3b8"
|
1091 |
+
}
|
1092 |
+
],
|
1093 |
+
"type": "normalDate"
|
1094 |
+
},
|
1095 |
+
"21": {
|
1096 |
+
"data": [
|
1097 |
+
"Amas"
|
1098 |
+
],
|
1099 |
+
"events": [
|
1100 |
+
{
|
1101 |
+
"name": "21 - Fagan Vad Amas",
|
1102 |
+
"color": "#94a3b8"
|
1103 |
+
}
|
1104 |
+
],
|
1105 |
+
"type": "normalDate"
|
1106 |
+
},
|
1107 |
+
"22": {
|
1108 |
+
"data": [
|
1109 |
+
"Padvo",
|
1110 |
+
"Gudi Padvo"
|
1111 |
+
],
|
1112 |
+
"events": [
|
1113 |
+
{
|
1114 |
+
"name": "22 - Chaitra Sud Padvo",
|
1115 |
+
"color": "#94a3b8"
|
1116 |
+
},
|
1117 |
+
{
|
1118 |
+
"name": "Gudi Padvo",
|
1119 |
+
"color": "#fb923c"
|
1120 |
+
}
|
1121 |
+
],
|
1122 |
+
"type": "multipleDate"
|
1123 |
+
},
|
1124 |
+
"23": {
|
1125 |
+
"data": [
|
1126 |
+
"Bij",
|
1127 |
+
"Cheti Chand"
|
1128 |
+
],
|
1129 |
+
"events": [
|
1130 |
+
{
|
1131 |
+
"name": "23 - Chaitra Sud Bij",
|
1132 |
+
"color": "#94a3b8"
|
1133 |
+
},
|
1134 |
+
{
|
1135 |
+
"name": "Cheti Chand",
|
1136 |
+
"color": "#fb923c"
|
1137 |
+
}
|
1138 |
+
],
|
1139 |
+
"type": "multipleDate"
|
1140 |
+
},
|
1141 |
+
"24": {
|
1142 |
+
"data": [
|
1143 |
+
"Trij"
|
1144 |
+
],
|
1145 |
+
"events": [
|
1146 |
+
{
|
1147 |
+
"name": "24 - Chaitra Sud Trij",
|
1148 |
+
"color": "#94a3b8"
|
1149 |
+
}
|
1150 |
+
],
|
1151 |
+
"type": "normalDate"
|
1152 |
+
},
|
1153 |
+
"25": {
|
1154 |
+
"data": [
|
1155 |
+
"Choth"
|
1156 |
+
],
|
1157 |
+
"events": [
|
1158 |
+
{
|
1159 |
+
"name": "25 - Chaitra Sud Choth",
|
1160 |
+
"color": "#94a3b8"
|
1161 |
+
}
|
1162 |
+
],
|
1163 |
+
"type": "normalDate"
|
1164 |
+
},
|
1165 |
+
"26": {
|
1166 |
+
"data": [
|
1167 |
+
"Pancham"
|
1168 |
+
],
|
1169 |
+
"events": [
|
1170 |
+
{
|
1171 |
+
"name": "26 - Chaitra Sud Pancham",
|
1172 |
+
"color": "#94a3b8"
|
1173 |
+
}
|
1174 |
+
],
|
1175 |
+
"type": "normalDate"
|
1176 |
+
},
|
1177 |
+
"27": {
|
1178 |
+
"data": [],
|
1179 |
+
"events": [
|
1180 |
+
{
|
1181 |
+
"name": "5 - Chaitra Sud Chhath",
|
1182 |
+
"color": "#94a3b8"
|
1183 |
+
},
|
1184 |
+
{
|
1185 |
+
"name": "Bharuch Mandir Patostav",
|
1186 |
+
"color": "#94a3b8"
|
1187 |
+
}
|
1188 |
+
],
|
1189 |
+
"type": "templeDate"
|
1190 |
+
},
|
1191 |
+
"28": {
|
1192 |
+
"data": [
|
1193 |
+
"Satam"
|
1194 |
+
],
|
1195 |
+
"events": [
|
1196 |
+
{
|
1197 |
+
"name": "28 - Chaitra Sud Satam",
|
1198 |
+
"color": "#94a3b8"
|
1199 |
+
}
|
1200 |
+
],
|
1201 |
+
"type": "normalDate"
|
1202 |
+
},
|
1203 |
+
"29": {
|
1204 |
+
"data": [
|
1205 |
+
"Atham"
|
1206 |
+
],
|
1207 |
+
"events": [
|
1208 |
+
{
|
1209 |
+
"name": "29 - Chaitra Sud Atham",
|
1210 |
+
"color": "#94a3b8"
|
1211 |
+
}
|
1212 |
+
],
|
1213 |
+
"type": "normalDate"
|
1214 |
+
},
|
1215 |
+
"30": {
|
1216 |
+
"data": [
|
1217 |
+
"maharaj.png"
|
1218 |
+
],
|
1219 |
+
"events": [
|
1220 |
+
{
|
1221 |
+
"name": "30 - Chaitra Sud Nom",
|
1222 |
+
"color": "#94a3b8"
|
1223 |
+
},
|
1224 |
+
{
|
1225 |
+
"name": "Bhagwan Swaminarayan Pragatya Din",
|
1226 |
+
"color": "#fb923c"
|
1227 |
+
},
|
1228 |
+
{
|
1229 |
+
"name": "Haridham - Sokhda Mandir Patostav",
|
1230 |
+
"color": "#60a5fa"
|
1231 |
+
}
|
1232 |
+
],
|
1233 |
+
"type": "imageDate"
|
1234 |
+
},
|
1235 |
+
"31": {
|
1236 |
+
"data": [
|
1237 |
+
"Dasham"
|
1238 |
+
],
|
1239 |
+
"events": [
|
1240 |
+
{
|
1241 |
+
"name": "31 - Chaitra Sud Dasham",
|
1242 |
+
"color": "#94a3b8"
|
1243 |
+
}
|
1244 |
+
],
|
1245 |
+
"type": "normalDate"
|
1246 |
+
}
|
1247 |
+
},
|
1248 |
+
"April": {
|
1249 |
+
"GujName": "VS-2079 - Fagan-Chaitra",
|
1250 |
+
"startEmpty": 2,
|
1251 |
+
"endEmpty": 2,
|
1252 |
+
"days": 31,
|
1253 |
+
"1": {
|
1254 |
+
"data": [
|
1255 |
+
"Dasham"
|
1256 |
+
],
|
1257 |
+
"events": [
|
1258 |
+
{
|
1259 |
+
"name": "1 - Fagan Sud Dasham",
|
1260 |
+
"color": "#94a3b8"
|
1261 |
+
}
|
1262 |
+
],
|
1263 |
+
"type": "normalDate"
|
1264 |
+
},
|
1265 |
+
"2": {
|
1266 |
+
"data": [
|
1267 |
+
"Ekadashi "
|
1268 |
+
],
|
1269 |
+
"events": [
|
1270 |
+
{
|
1271 |
+
"name": "2 - Fagan Sud Ekadashi",
|
1272 |
+
"color": "#94a3b8"
|
1273 |
+
}
|
1274 |
+
],
|
1275 |
+
"type": "normalDate"
|
1276 |
+
},
|
1277 |
+
"3": {
|
1278 |
+
"data": [
|
1279 |
+
"Ekadashi",
|
1280 |
+
"Amalki Ekadashi"
|
1281 |
+
],
|
1282 |
+
"events": [
|
1283 |
+
{
|
1284 |
+
"name": "3 - Fagan Sud Ekadashi",
|
1285 |
+
"color": "#94a3b8"
|
1286 |
+
},
|
1287 |
+
{
|
1288 |
+
"name": "Amalki Ekadashi",
|
1289 |
+
"color": "#94a3b8"
|
1290 |
+
}
|
1291 |
+
],
|
1292 |
+
"type": "multipleDate"
|
1293 |
+
},
|
1294 |
+
"4": {
|
1295 |
+
"data": [
|
1296 |
+
"Baras"
|
1297 |
+
],
|
1298 |
+
"events": [
|
1299 |
+
{
|
1300 |
+
"name": "4 - Fagan Sud Baras",
|
1301 |
+
"color": "#94a3b8"
|
1302 |
+
}
|
1303 |
+
],
|
1304 |
+
"type": "normalDate"
|
1305 |
+
},
|
1306 |
+
"5": {
|
1307 |
+
"data": [
|
1308 |
+
"Teras"
|
1309 |
+
],
|
1310 |
+
"events": [
|
1311 |
+
{
|
1312 |
+
"name": "5 - Fagan Sud Teras",
|
1313 |
+
"color": "#94a3b8"
|
1314 |
+
}
|
1315 |
+
],
|
1316 |
+
"type": "normalDate"
|
1317 |
+
},
|
1318 |
+
"6": {
|
1319 |
+
"data": [
|
1320 |
+
"bhagatji.png"
|
1321 |
+
],
|
1322 |
+
"events": [
|
1323 |
+
{
|
1324 |
+
"name": "6 - Fagan Sud Poonam",
|
1325 |
+
"color": "#94a3b8"
|
1326 |
+
},
|
1327 |
+
{
|
1328 |
+
"name": "Shri Bhagataji Maharaj Pragatya Din",
|
1329 |
+
"color": "#60a5fa"
|
1330 |
+
}
|
1331 |
+
],
|
1332 |
+
"type": "imageDate"
|
1333 |
+
},
|
1334 |
+
"7": {
|
1335 |
+
"data": [
|
1336 |
+
"Poonam",
|
1337 |
+
"Dhuleti"
|
1338 |
+
],
|
1339 |
+
"events": [
|
1340 |
+
{
|
1341 |
+
"name": "7 - Fagan Sud Poonam",
|
1342 |
+
"color": "#94a3b8"
|
1343 |
+
},
|
1344 |
+
{
|
1345 |
+
"name": "Dhuleti",
|
1346 |
+
"color": "#fb923c"
|
1347 |
+
}
|
1348 |
+
],
|
1349 |
+
"type": "multipleDate"
|
1350 |
+
},
|
1351 |
+
"8": {
|
1352 |
+
"data": [
|
1353 |
+
"Padvo"
|
1354 |
+
],
|
1355 |
+
"events": [
|
1356 |
+
{
|
1357 |
+
"name": "8 - Fagan Vad Padvo",
|
1358 |
+
"color": "#94a3b8"
|
1359 |
+
}
|
1360 |
+
],
|
1361 |
+
"type": "normalDate"
|
1362 |
+
},
|
1363 |
+
"9": {
|
1364 |
+
"data": [
|
1365 |
+
"Bij"
|
1366 |
+
],
|
1367 |
+
"events": [
|
1368 |
+
{
|
1369 |
+
"name": "9 - Fagan Vad Bij",
|
1370 |
+
"color": "#94a3b8"
|
1371 |
+
}
|
1372 |
+
],
|
1373 |
+
"type": "normalDate"
|
1374 |
+
},
|
1375 |
+
"10": {
|
1376 |
+
"data": [
|
1377 |
+
"Trij"
|
1378 |
+
],
|
1379 |
+
"events": [
|
1380 |
+
{
|
1381 |
+
"name": "10 - Fagan Vad Trij",
|
1382 |
+
"color": "#94a3b8"
|
1383 |
+
}
|
1384 |
+
],
|
1385 |
+
"type": "normalDate"
|
1386 |
+
},
|
1387 |
+
"11": {
|
1388 |
+
"data": [
|
1389 |
+
"Choth"
|
1390 |
+
],
|
1391 |
+
"events": [
|
1392 |
+
{
|
1393 |
+
"name": "11 - Fagan Vad Choth",
|
1394 |
+
"color": "#94a3b8"
|
1395 |
+
}
|
1396 |
+
],
|
1397 |
+
"type": "normalDate"
|
1398 |
+
},
|
1399 |
+
"12": {
|
1400 |
+
"data": [
|
1401 |
+
"Pancham"
|
1402 |
+
],
|
1403 |
+
"events": [
|
1404 |
+
{
|
1405 |
+
"name": "12 - Fagan Vad Pancham",
|
1406 |
+
"color": "#94a3b8"
|
1407 |
+
}
|
1408 |
+
],
|
1409 |
+
"type": "normalDate"
|
1410 |
+
},
|
1411 |
+
"13": {
|
1412 |
+
"data": [
|
1413 |
+
"Chhath"
|
1414 |
+
],
|
1415 |
+
"events": [
|
1416 |
+
{
|
1417 |
+
"name": "13 - Fagan Vad Chhath",
|
1418 |
+
"color": "#94a3b8"
|
1419 |
+
}
|
1420 |
+
],
|
1421 |
+
"type": "normalDate"
|
1422 |
+
},
|
1423 |
+
"14": {
|
1424 |
+
"data": [
|
1425 |
+
"Satam"
|
1426 |
+
],
|
1427 |
+
"events": [
|
1428 |
+
{
|
1429 |
+
"name": "14 - Fagan Vad Satam",
|
1430 |
+
"color": "#94a3b8"
|
1431 |
+
}
|
1432 |
+
],
|
1433 |
+
"type": "normalDate"
|
1434 |
+
},
|
1435 |
+
"15": {
|
1436 |
+
"data": [
|
1437 |
+
"Aatham"
|
1438 |
+
],
|
1439 |
+
"events": [
|
1440 |
+
{
|
1441 |
+
"name": "15 - Fagan Vad Aatham",
|
1442 |
+
"color": "#94a3b8"
|
1443 |
+
}
|
1444 |
+
],
|
1445 |
+
"type": "normalDate"
|
1446 |
+
},
|
1447 |
+
"16": {
|
1448 |
+
"data": [
|
1449 |
+
"Nom"
|
1450 |
+
],
|
1451 |
+
"events": [
|
1452 |
+
{
|
1453 |
+
"name": "16 - Fagan Vad Nom",
|
1454 |
+
"color": "#94a3b8"
|
1455 |
+
}
|
1456 |
+
],
|
1457 |
+
"type": "normalDate"
|
1458 |
+
},
|
1459 |
+
"17": {
|
1460 |
+
"data": [
|
1461 |
+
"Dasham"
|
1462 |
+
],
|
1463 |
+
"events": [
|
1464 |
+
{
|
1465 |
+
"name": "17 - Fagan Vad Dasham",
|
1466 |
+
"color": "#94a3b8"
|
1467 |
+
}
|
1468 |
+
],
|
1469 |
+
"type": "normalDate"
|
1470 |
+
},
|
1471 |
+
"18": {
|
1472 |
+
"data": [
|
1473 |
+
"Ekadashi",
|
1474 |
+
"Papmochani Ekadashi"
|
1475 |
+
],
|
1476 |
+
"events": [
|
1477 |
+
{
|
1478 |
+
"name": "18 - Fagan Vad Ekadashi",
|
1479 |
+
"color": "#94a3b8"
|
1480 |
+
},
|
1481 |
+
{
|
1482 |
+
"name": "Papmochani Ekadashi",
|
1483 |
+
"color": "white"
|
1484 |
+
}
|
1485 |
+
],
|
1486 |
+
"type": "multipleDate"
|
1487 |
+
},
|
1488 |
+
"19": {
|
1489 |
+
"data": [
|
1490 |
+
"Baras"
|
1491 |
+
],
|
1492 |
+
"events": [
|
1493 |
+
{
|
1494 |
+
"name": "19 - Fagan Vad Baras",
|
1495 |
+
"color": "#94a3b8"
|
1496 |
+
}
|
1497 |
+
],
|
1498 |
+
"type": "normalDate"
|
1499 |
+
},
|
1500 |
+
"20": {
|
1501 |
+
"data": [
|
1502 |
+
"Chaudas"
|
1503 |
+
],
|
1504 |
+
"events": [
|
1505 |
+
{
|
1506 |
+
"name": "20 - Fagan Vad Chaudas",
|
1507 |
+
"color": "#94a3b8"
|
1508 |
+
}
|
1509 |
+
],
|
1510 |
+
"type": "normalDate"
|
1511 |
+
},
|
1512 |
+
"21": {
|
1513 |
+
"data": [
|
1514 |
+
"Amas"
|
1515 |
+
],
|
1516 |
+
"events": [
|
1517 |
+
{
|
1518 |
+
"name": "21 - Fagan Vad Amas",
|
1519 |
+
"color": "#94a3b8"
|
1520 |
+
}
|
1521 |
+
],
|
1522 |
+
"type": "normalDate"
|
1523 |
+
},
|
1524 |
+
"22": {
|
1525 |
+
"data": [
|
1526 |
+
"Padvo",
|
1527 |
+
"Gudi Padvo"
|
1528 |
+
],
|
1529 |
+
"events": [
|
1530 |
+
{
|
1531 |
+
"name": "22 - Chaitra Sud Padvo",
|
1532 |
+
"color": "#94a3b8"
|
1533 |
+
},
|
1534 |
+
{
|
1535 |
+
"name": "Gudi Padvo",
|
1536 |
+
"color": "#fb923c"
|
1537 |
+
}
|
1538 |
+
],
|
1539 |
+
"type": "multipleDate"
|
1540 |
+
},
|
1541 |
+
"23": {
|
1542 |
+
"data": [
|
1543 |
+
"Bij",
|
1544 |
+
"Cheti Chand"
|
1545 |
+
],
|
1546 |
+
"events": [
|
1547 |
+
{
|
1548 |
+
"name": "23 - Chaitra Sud Bij",
|
1549 |
+
"color": "#94a3b8"
|
1550 |
+
},
|
1551 |
+
{
|
1552 |
+
"name": "Cheti Chand",
|
1553 |
+
"color": "#fb923c"
|
1554 |
+
}
|
1555 |
+
],
|
1556 |
+
"type": "multipleDate"
|
1557 |
+
},
|
1558 |
+
"24": {
|
1559 |
+
"data": [
|
1560 |
+
"Trij"
|
1561 |
+
],
|
1562 |
+
"events": [
|
1563 |
+
{
|
1564 |
+
"name": "24 - Chaitra Sud Trij",
|
1565 |
+
"color": "#94a3b8"
|
1566 |
+
}
|
1567 |
+
],
|
1568 |
+
"type": "normalDate"
|
1569 |
+
},
|
1570 |
+
"25": {
|
1571 |
+
"data": [
|
1572 |
+
"Choth"
|
1573 |
+
],
|
1574 |
+
"events": [
|
1575 |
+
{
|
1576 |
+
"name": "25 - Chaitra Sud Choth",
|
1577 |
+
"color": "#94a3b8"
|
1578 |
+
}
|
1579 |
+
],
|
1580 |
+
"type": "normalDate"
|
1581 |
+
},
|
1582 |
+
"26": {
|
1583 |
+
"data": [
|
1584 |
+
"Pancham"
|
1585 |
+
],
|
1586 |
+
"events": [
|
1587 |
+
{
|
1588 |
+
"name": "26 - Chaitra Sud Pancham",
|
1589 |
+
"color": "#94a3b8"
|
1590 |
+
}
|
1591 |
+
],
|
1592 |
+
"type": "normalDate"
|
1593 |
+
},
|
1594 |
+
"27": {
|
1595 |
+
"data": [],
|
1596 |
+
"events": [
|
1597 |
+
{
|
1598 |
+
"name": "5 - Chaitra Sud Chhath",
|
1599 |
+
"color": "#94a3b8"
|
1600 |
+
},
|
1601 |
+
{
|
1602 |
+
"name": "Bharuch Mandir Patostav",
|
1603 |
+
"color": "#94a3b8"
|
1604 |
+
}
|
1605 |
+
],
|
1606 |
+
"type": "templeDate"
|
1607 |
+
},
|
1608 |
+
"28": {
|
1609 |
+
"data": [
|
1610 |
+
"Satam"
|
1611 |
+
],
|
1612 |
+
"events": [
|
1613 |
+
{
|
1614 |
+
"name": "28 - Chaitra Sud Satam",
|
1615 |
+
"color": "#94a3b8"
|
1616 |
+
}
|
1617 |
+
],
|
1618 |
+
"type": "normalDate"
|
1619 |
+
},
|
1620 |
+
"29": {
|
1621 |
+
"data": [
|
1622 |
+
"Atham"
|
1623 |
+
],
|
1624 |
+
"events": [
|
1625 |
+
{
|
1626 |
+
"name": "29 - Chaitra Sud Atham",
|
1627 |
+
"color": "#94a3b8"
|
1628 |
+
}
|
1629 |
+
],
|
1630 |
+
"type": "normalDate"
|
1631 |
+
},
|
1632 |
+
"30": {
|
1633 |
+
"data": [
|
1634 |
+
"maharaj.png"
|
1635 |
+
],
|
1636 |
+
"events": [
|
1637 |
+
{
|
1638 |
+
"name": "30 - Chaitra Sud Nom",
|
1639 |
+
"color": "#94a3b8"
|
1640 |
+
},
|
1641 |
+
{
|
1642 |
+
"name": "Bhagwan Swaminarayan Pragatya Din",
|
1643 |
+
"color": "#fb923c"
|
1644 |
+
},
|
1645 |
+
{
|
1646 |
+
"name": "Haridham - Sokhda Mandir Patostav",
|
1647 |
+
"color": "#60a5fa"
|
1648 |
+
}
|
1649 |
+
],
|
1650 |
+
"type": "imageDate"
|
1651 |
+
},
|
1652 |
+
"31": {
|
1653 |
+
"data": [
|
1654 |
+
"Dasham"
|
1655 |
+
],
|
1656 |
+
"events": [
|
1657 |
+
{
|
1658 |
+
"name": "31 - Chaitra Sud Dasham",
|
1659 |
+
"color": "#94a3b8"
|
1660 |
+
}
|
1661 |
+
],
|
1662 |
+
"type": "normalDate"
|
1663 |
+
}
|
1664 |
+
}
|
1665 |
+
}
|
1666 |
+
}
|
static/fonts/AestheticRomance-Regular.woff
ADDED
Binary file (60.2 kB). View file
|
|
static/fonts/AestheticRomance-Regular.woff2
ADDED
Binary file (35.8 kB). View file
|
|
static/fonts/S0728810.TTF
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1171e671d1e7f2d3c008d22249b897c86b7435958d97ce626b17277021c40726
|
3 |
+
size 141440
|
static/fonts/S0728810.otf
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:a6866f7806978850a449d99a8583adb0c964421c58524b3cbdd6848d2f816e66
|
3 |
+
size 148484
|
static/images/AYMLogo.png
ADDED
![]() |
Git LFS Details
|
static/images/GunatitSwami.png
ADDED
![]() |
Git LFS Details
|
static/images/SHA_logo.png
ADDED
![]() |
Git LFS Details
|