/personallibrary/forms.py

https://github.com/dmkm2011/vinylmgr · Python · 246 lines · 182 code · 41 blank · 23 comment · 28 complexity · bef4e48adc58e82269702f8c9139e1ae MD5 · raw file

  1. from django.contrib.sites.models import Site
  2. from vinylmgr.personallibrary.models import *
  3. from django.contrib.auth.models import User
  4. from django.contrib.auth.tokens import default_token_generator
  5. from django.utils.http import int_to_base36
  6. from django.template import Context, loader
  7. from django import forms
  8. from django.core.mail import send_mail
  9. class create_form(forms.ModelForm):
  10. #playlistname = forms.CharField(label="Playlist name")
  11. #playlistdiscription = forms.CharField(label="Discription")
  12. class Meta:
  13. model = Playlist
  14. def save(self, commit=True, domain_override=None,
  15. use_https=False, token_generator=default_token_generator):
  16. Playlist = super(create_form, self).save(commit=False)
  17. Playlist.is_active = False
  18. Playlist.save()
  19. class viewedit_form(forms.ModelForm):
  20. class Meta:
  21. model = Playlist
  22. def display(self,commit=True, domain_override=None,
  23. use_https=False, token_generator=default_token_generator):
  24. ROLE_CHOICES=(
  25. (0, 'Name'),
  26. (1, 'Description'),
  27. (2, 'Created time'),
  28. (3, 'Privecy'),
  29. (4, 'Published')
  30. )
  31. edit = models.IntegerField('Playlist information to change', choices=ROLE_CHOICES)
  32. return edit
  33. def txtchoose(self,commit=True, domain_override=None,
  34. use_https=False, token_generator=default_token_generator):
  35. if ViewEditPlaylist.edit == 'Name':
  36. name = models.CharField('Playlist name', max_length = 100)
  37. elif display.edit == 'Description':
  38. description = models.CharField('Playlist description', max_length = 200)
  39. elif display.edit == 'Created time':
  40. created_time = models.DateTimeField()
  41. elif display.edit == 'Privacy':
  42. privacy = models.IntegerField(choices=PRIVACY_CHOICES)
  43. elif display.edit == 'Published':
  44. published = models.IntegerField(choices=PUBLISH_CHOICES)
  45. def save(self, commit=True, domain_override=None,
  46. use_https=False, token_generator=default_token_generator):
  47. Playlist = super(viewedit_form, self).save(commit=False)
  48. if display.edit == 'Name':
  49. edit_name = Playlist.object.get(name = txtchoose.name)
  50. edit_name.name = txtchoose.newname
  51. elif display.edit == 'Desciption':
  52. edit_name = Playlist.object.get(name = txtchoose.description)
  53. edit_name.description = txtchoose.newdescription
  54. elif display.edit == 'Created time':
  55. edit_name = Playlist.object.get(name = txtchoose.create_time)
  56. edit_name.created_time = txtchoose.newcreated_time
  57. elif display.edit == 'Privacy':
  58. edit_name = Playlist.object.get(privacy = txtchoose.privacy)
  59. edit_name.privacy = txtchoose.newprivacy
  60. elif display.edit == 'Published':
  61. edit_name = Playlist.object.get(name = txtchoose.published)
  62. edit_name.published = txtchoose.newpublished
  63. Playlist.is_active = False
  64. Playlist.save()
  65. class PlaylistCreationForm(forms.ModelForm):
  66. playlistname = forms.RegexField(label="Playlist Name", max_length=30, regex=r'^[\w.@+-]+$',
  67. help_text="Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.",
  68. error_messages = {'invalid': "This value may contain only letters, numbers and @/./+/-/_ characters."})
  69. discription = forms.CharField(label="Description", widget=forms.TextInput,
  70. help_text = "Enter the same password as above, for verification.")
  71. class Meta:
  72. model = User
  73. fields = ("playlistname",)
  74. def clean_playlistname(self):
  75. playlistname = self.cleaned_data.get("playlistname", "")
  76. description = self.cleaned_data["description"]
  77. def description(self):
  78. description = self.cleaned_data["description"]
  79. playlistname1 = playlist.objects.filter(playlistname1__iexact=playlistname1)
  80. if len(playlistname1) >= 1:
  81. raise forms.ValidationError("Playlist name already exist.")
  82. return description
  83. def save(self, commit=True, domain_override=None,
  84. ##email_template_name='registration/signup_email.html',
  85. use_https=False, token_generator=default_token_generator):
  86. playlist = super(PlaylistCreationForm, self).save(commit=False)
  87. ######NOT SURE############
  88. #user.first_name = firstname
  89. #user.last_name = lastname
  90. ##########################
  91. ##user.set_password(self.cleaned_data["password1"])
  92. ##user.email = self.cleaned_data["email1"]
  93. playlist.is_active = False
  94. if commit:
  95. playlist.save()
  96. if not domain_override:
  97. current_site = Site.objects.get_current()
  98. site_name = current_site.name
  99. domain = current_site.domain
  100. else:
  101. site_name = domain = domain_override
  102. t = loader.get_template(email_template_name)
  103. c = {
  104. 'domain': domain,
  105. 'site_name': site_name,
  106. 'uid': int_to_base36(plalist.id),
  107. 'user': playlist,
  108. 'token': token_generator.make_token(playlist),
  109. 'protocol': use_https and 'https' or 'http',
  110. }
  111. return playlist
  112. class SharePlaylistCreationForm(forms.ModelForm):
  113. playlistname = forms.RegexField(label="Playlist Name", max_length=30, regex=r'^[\w.@+-]+$',
  114. help_text="Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.",
  115. error_messages = {'invalid': "This value may contain only letters, numbers and @/./+/-/_ characters."})
  116. discription = forms.CharField(label="Description", widget=forms.TextInput,
  117. help_text = "Enter the same password as above, for verification.")
  118. class Meta:
  119. model = User
  120. fields = ("playlistname",)
  121. def clean_playlistname(self):
  122. playlistname = self.cleaned_data.get("playlistname", "")
  123. description = self.cleaned_data["description"]
  124. def description(self):
  125. description = self.cleaned_data["description"]
  126. playlistname1 = playlist.objects.filter(playlistname1__iexact=playlistname1)
  127. if len(playlistname1) >= 1:
  128. raise forms.ValidationError("Playlist name already exist.")
  129. return description
  130. def share(self, commit=True, domain_override=None,
  131. ##email_template_name='registration/signup_email.html',
  132. use_https=False, token_generator=default_token_generator):
  133. shareplaylist = super(SharePlaylistCreationForm, self).share(commit=False)
  134. ######NOT SURE############
  135. #user.first_name = firstname
  136. #user.last_name = lastname
  137. ##########################
  138. ##user.set_password(self.cleaned_data["password1"])
  139. ##user.email = self.cleaned_data["email1"]
  140. shareplaylist.is_active = False
  141. if commit:
  142. shareplaylist.share()
  143. if not domain_override:
  144. current_site = Site.objects.get_current()
  145. site_name = current_site.name
  146. domain = current_site.domain
  147. else:
  148. site_name = domain = domain_override
  149. t = loader.get_template(email_template_name)
  150. c = {
  151. 'domain': domain,
  152. 'site_name': site_name,
  153. 'uid': int_to_base36(plalist.id),
  154. 'user': shareplaylist,
  155. 'token': token_generator.make_token(playlist),
  156. 'protocol': use_https and 'https' or 'http',
  157. }
  158. return shareplaylist
  159. class ViewEditPlaylistCreationForm(forms.ModelForm):
  160. playlistname = forms.RegexField(label="Playlist Name", max_length=30, regex=r'^[\w.@+-]+$',
  161. help_text="Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.",
  162. error_messages = {'invalid': "This value may contain only letters, numbers and @/./+/-/_ characters."})
  163. discription = forms.CharField(label="Description", widget=forms.TextInput,
  164. help_text = "Enter the same password as above, for verification.")
  165. class Meta:
  166. model = User
  167. fields = ("playlistname",)
  168. def clean_playlistname(self):
  169. playlistname = self.cleaned_data.get("playlistname", "")
  170. description = self.cleaned_data["description"]
  171. def description(self):
  172. description = self.cleaned_data["description"]
  173. playlistname1 = playlist.objects.filter(playlistname1__iexact=playlistname1)
  174. if len(playlistname1) >= 1:
  175. raise forms.ValidationError("Playlist name already exist.")
  176. return description
  177. def viewedit(self, commit=True, domain_override=None,
  178. ##email_template_name='registration/signup_email.html',
  179. use_https=False, token_generator=default_token_generator):
  180. vieweditplaylist = super(ViewEditPlaylistCreationForm, self).viewedit(commit=False)
  181. ######NOT SURE############
  182. #user.first_name = firstname
  183. #user.last_name = lastname
  184. ##########################
  185. ##user.set_password(self.cleaned_data["password1"])
  186. ##user.email = self.cleaned_data["email1"]
  187. vieweditplaylist.is_active = False
  188. if commit:
  189. vieweditplaylist.viewedit()
  190. if not domain_override:
  191. current_site = Site.objects.get_current()
  192. site_name = current_site.name
  193. domain = current_site.domain
  194. else:
  195. site_name = domain = domain_override
  196. t = loader.get_template(email_template_name)
  197. c = {
  198. 'domain': domain,
  199. 'site_name': site_name,
  200. 'uid': int_to_base36(plalist.id),
  201. 'user': vieweditplaylist,
  202. 'token': token_generator.make_token(vieweditplaylist),
  203. 'protocol': use_https and 'https' or 'http',
  204. }
  205. return vieweditplaylist