thejagstudio commited on
Commit
e744e38
·
verified ·
1 Parent(s): e995168

Update api/models.py

Browse files
Files changed (1) hide show
  1. api/models.py +115 -111
api/models.py CHANGED
@@ -1,112 +1,116 @@
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
-
36
- class Region(models.Model):
37
- name = models.CharField(max_length=100)
38
-
39
- def __str__(self):
40
- return self.name
41
-
42
-
43
- class Event(models.Model):
44
- COLOR_CHOICES = (("orange","Shabha"), ("green","Activity"), ("blue","Birthday"), ("red","Important"), ("purple","Gathering"), ("yellow","Festival"), ("pink","Special"))
45
- title = models.CharField(max_length=200)
46
- description = models.TextField()
47
- date = models.DateTimeField()
48
- time = models.TimeField(default='00:00')
49
- created_by = models.ForeignKey(Bhagat, on_delete=models.CASCADE, related_name='created_events',blank=True,null=True)
50
- region = models.ForeignKey(Region, on_delete=models.CASCADE, blank=True,null=True)
51
- is_approved = models.BooleanField(default=False)
52
- color = models.CharField(max_length=15, default='orange',choices=COLOR_CHOICES)
53
-
54
- def __str__(self):
55
- return self.title
56
-
57
-
58
- class Attendance(models.Model):
59
- user = models.ForeignKey(Bhagat, on_delete=models.CASCADE)
60
- event = models.ForeignKey(Event, on_delete=models.CASCADE)
61
- status = models.CharField(max_length=20, choices=(('attending', 'Attending'), ('not_attending', 'Not Attending'), ('maybe', 'Maybe')))
62
-
63
- class Notification(models.Model):
64
- sender = models.ForeignKey(Bhagat, on_delete=models.CASCADE, related_name='sent_notifications')
65
- recipients = models.ManyToManyField(Bhagat, related_name='received_notifications')
66
- title = models.CharField(max_length=200, blank=True, null=True)
67
- content = models.TextField()
68
- timestamp = models.DateTimeField(auto_now_add=True)
69
- notification_type = models.CharField(max_length=20, choices=(("orange", "Shabha"), ("green", "Activity"), ("blue", "Birthday"), ("red", "Important"), ("purple", "Gathering"), ("yellow", "Festival"), ("pink", "Custom")))
70
-
71
- class BhajanCategory(models.Model):
72
- name = models.CharField(max_length=100)
73
- link = models.CharField(max_length=100)
74
-
75
- def __str__(self):
76
- return self.name
77
-
78
- class Bhajan(models.Model):
79
- bhajanId = models.IntegerField(blank=True,default=0)
80
- title = models.CharField(max_length=500,blank=True)
81
- title_guj = models.CharField(max_length=500,blank=True)
82
- category = models.ForeignKey(BhajanCategory, on_delete=models.CASCADE)
83
- lyrics = models.CharField(max_length=50, blank=True)
84
- audio_url = models.URLField(blank=True)
85
- isEng = models.BooleanField(default=False)
86
- isHnd = models.BooleanField(default=False)
87
- isGer = models.BooleanField(default=False)
88
- isAudio = models.BooleanField(default=False)
89
-
90
- def __str__(self):
91
- return self.title
92
-
93
- def musicPreivew(self):
94
- if self.isAudio:
95
- 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)
96
- else:
97
- return 'No Audio Available'
98
-
99
- def lyricsBtn(self):
100
- # i have four languages in my bhajan so add them all as buttons and show them on click
101
- languages = [["","GUJ"]]
102
- if self.isEng:
103
- languages.append(['E','ENG'])
104
- if self.isHnd:
105
- languages.append(['H','HND'])
106
- if self.isGer:
107
- languages.append(['G','GER'])
108
- html = '<ul class="object-tools" style="margin-top:0">'
109
- for lang in languages:
110
- 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>'
111
- html += '</ul>'
 
 
 
 
112
  return mark_safe(html)
 
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
+ self.set_password(self.password)
37
+ super().save(*args, **kwargs)
38
+
39
+
40
+ class Region(models.Model):
41
+ name = models.CharField(max_length=100)
42
+
43
+ def __str__(self):
44
+ return self.name
45
+
46
+
47
+ class Event(models.Model):
48
+ COLOR_CHOICES = (("orange","Shabha"), ("green","Activity"), ("blue","Birthday"), ("red","Important"), ("purple","Gathering"), ("yellow","Festival"), ("pink","Special"))
49
+ title = models.CharField(max_length=200)
50
+ description = models.TextField()
51
+ date = models.DateTimeField()
52
+ time = models.TimeField(default='00:00')
53
+ created_by = models.ForeignKey(Bhagat, on_delete=models.CASCADE, related_name='created_events',blank=True,null=True)
54
+ region = models.ForeignKey(Region, on_delete=models.CASCADE, blank=True,null=True)
55
+ is_approved = models.BooleanField(default=False)
56
+ color = models.CharField(max_length=15, default='orange',choices=COLOR_CHOICES)
57
+
58
+ def __str__(self):
59
+ return self.title
60
+
61
+
62
+ class Attendance(models.Model):
63
+ user = models.ForeignKey(Bhagat, on_delete=models.CASCADE)
64
+ event = models.ForeignKey(Event, on_delete=models.CASCADE)
65
+ status = models.CharField(max_length=20, choices=(('attending', 'Attending'), ('not_attending', 'Not Attending'), ('maybe', 'Maybe')))
66
+
67
+ class Notification(models.Model):
68
+ sender = models.ForeignKey(Bhagat, on_delete=models.CASCADE, related_name='sent_notifications')
69
+ recipients = models.ManyToManyField(Bhagat, related_name='received_notifications')
70
+ title = models.CharField(max_length=200, blank=True, null=True)
71
+ content = models.TextField()
72
+ timestamp = models.DateTimeField(auto_now_add=True)
73
+ notification_type = models.CharField(max_length=20, choices=(("orange", "Shabha"), ("green", "Activity"), ("blue", "Birthday"), ("red", "Important"), ("purple", "Gathering"), ("yellow", "Festival"), ("pink", "Custom")))
74
+
75
+ class BhajanCategory(models.Model):
76
+ name = models.CharField(max_length=100)
77
+ link = models.CharField(max_length=100)
78
+
79
+ def __str__(self):
80
+ return self.name
81
+
82
+ class Bhajan(models.Model):
83
+ bhajanId = models.IntegerField(blank=True,default=0)
84
+ title = models.CharField(max_length=500,blank=True)
85
+ title_guj = models.CharField(max_length=500,blank=True)
86
+ category = models.ForeignKey(BhajanCategory, on_delete=models.CASCADE)
87
+ lyrics = models.CharField(max_length=50, blank=True)
88
+ audio_url = models.URLField(blank=True)
89
+ isEng = models.BooleanField(default=False)
90
+ isHnd = models.BooleanField(default=False)
91
+ isGer = models.BooleanField(default=False)
92
+ isAudio = models.BooleanField(default=False)
93
+
94
+ def __str__(self):
95
+ return self.title
96
+
97
+ def musicPreivew(self):
98
+ if self.isAudio:
99
+ 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)
100
+ else:
101
+ return 'No Audio Available'
102
+
103
+ def lyricsBtn(self):
104
+ # i have four languages in my bhajan so add them all as buttons and show them on click
105
+ languages = [["","GUJ"]]
106
+ if self.isEng:
107
+ languages.append(['E','ENG'])
108
+ if self.isHnd:
109
+ languages.append(['H','HND'])
110
+ if self.isGer:
111
+ languages.append(['G','GER'])
112
+ html = '<ul class="object-tools" style="margin-top:0">'
113
+ for lang in languages:
114
+ 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>'
115
+ html += '</ul>'
116
  return mark_safe(html)