forms.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. from django import forms
  2. from django.forms import ModelForm, CharField, SlugField
  3. from django.core.validators import validate_unicode_slug
  4. from .models import Network, Host, Channel
  5. class NetworkForm(ModelForm):
  6. class Meta:
  7. model=Network
  8. #fields = ['name', 'slug', 'nickname', 'password', 'username', 'home_channel', 'command_character', 'help_character']
  9. fields='__all__'
  10. #exclude = ['slug'] #Does not need "fields = '__all__'".
  11. labels={
  12. 'name': '<i class="sitemap icon"></i>Name',
  13. 'slug': '<i class="linkify icon"></i>Slug',
  14. 'nickname': '<i class="id badge icon"></i>Nickname',
  15. 'username': '<i class="id card icon"></i>Username',
  16. 'password': '<i class="privacy icon"></i>Password',
  17. 'mail': '<i class="envelope icon"></i>NickServ registration E-mail',
  18. 'home_channel': '<i class="hashtag icon"></i>Home channel',
  19. 'command_character': '<i class="terminal icon"></i>Command character',
  20. 'help_character': '<i class="help icon"></i>Help character',
  21. #'network_services': '<i class="lightbulb outline icon"></i>Network services',
  22. 'enabled': '<i class="power off icon"></i>Enabled',
  23. # 'mute': '<i class="comment slash icon"></i>Mute',
  24. }
  25. widgets={
  26. 'name': forms.TextInput(attrs={'autocomplete': 'on'}),
  27. 'nickname': forms.TextInput(attrs={'autocomplete': 'on'}),
  28. 'username': forms.TextInput(attrs={'autocomplete': 'on'}),
  29. }
  30. class HostForm(ModelForm):
  31. class Meta:
  32. model=Host
  33. exclude=['network', 'connection_attempts', 'connection_succeeds']
  34. labels={
  35. 'address': '<i class="server icon"></i>Address',
  36. 'port': '<i class="dungeon icon"></i>Port',
  37. 'ssl': '<i class="lock icon"></i>Use SSL',
  38. }
  39. widgets={
  40. 'address': forms.TextInput(attrs={'autocomplete': 'on'}),
  41. 'ssl': forms.CheckboxInput(attrs={'_style': 'toggle',}),
  42. }
  43. class ChannelForm(ModelForm):
  44. class Meta:
  45. model=Channel
  46. fields=['autojoin', 'statistic_commands', 'games']
  47. labels={
  48. 'autojoin': '<i class="power icon"></i>Auto join',
  49. 'statistic_commands': '<i class="chart pie icon"></i>Statistic commands',
  50. 'games': '<i class="gamepad icon"></i>Games',
  51. }
  52. widgets={
  53. 'autojoin': forms.CheckboxInput(attrs={'_style': 'inverted toggle'}),
  54. 'statistic_commands': forms.CheckboxInput(attrs={'_style': 'inverted toggle'}),
  55. 'games': forms.CheckboxInput(attrs={'_style': 'inverted toggle'}),
  56. }