1
0

forms.py 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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, Owner, CurseWord, CurseAdjective
  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 OwnerForm(ModelForm):
  44. class Meta:
  45. model=Owner
  46. fields='__all__'
  47. labels={
  48. 'source': '<i class="fingerprint icon"></i>Owner host',
  49. }
  50. layout = [
  51. ('Two Fields',
  52. ('Field', 'source'),
  53. ('Field', 'DELETE'),
  54. )
  55. ]
  56. class ChannelForm(ModelForm):
  57. class Meta:
  58. model=Channel
  59. fields=['autojoin', 'statistic_commands', 'games']
  60. labels={
  61. 'autojoin': '<i class="power icon"></i>Auto join',
  62. 'statistic_commands': '<i class="chart pie icon"></i>Statistic commands',
  63. 'chat': '<i class="gamepad icon"></i>Games',
  64. 'games': '<i class="gamepad icon"></i>Games',
  65. }
  66. widgets={
  67. 'autojoin': forms.CheckboxInput(attrs={'_style': 'inverted toggle'}),
  68. 'statistic_commands': forms.CheckboxInput(attrs={'_style': 'inverted toggle'}),
  69. 'chat': forms.CheckboxInput(attrs={'_style': 'inverted toggle'}),
  70. 'games': forms.CheckboxInput(attrs={'_style': 'inverted toggle'}),
  71. }
  72. class CurseWordForm(ModelForm):
  73. class Meta:
  74. model=CurseWord
  75. fields={'word'}
  76. labels={
  77. 'word': '<i class="book dead icon"></i>Curse word'
  78. }
  79. widgets={
  80. 'word': forms.TextInput(attrs={'_no_required': 'True'}),
  81. }
  82. class CurseAdjectiveForm(ModelForm):
  83. class Meta:
  84. model=CurseAdjective
  85. fields={'word'}
  86. labels={
  87. 'word': '<i class="book dead icon"></i>Adjective'
  88. }
  89. widgets={
  90. 'word': forms.TextInput(attrs={'_no_required': 'True'}),
  91. }