diff --git a/cotisations/migrations/0042_auto_20191120_0159.py b/cotisations/migrations/0042_auto_20191120_0159.py new file mode 100644 index 00000000..b9e5b356 --- /dev/null +++ b/cotisations/migrations/0042_auto_20191120_0159.py @@ -0,0 +1,79 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-11-20 00:59 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('cotisations', '0041_auto_20191103_2131'), + ] + + operations = [ + migrations.AlterModelOptions( + name='chequepayment', + options={'verbose_name': 'cheque'}, + ), + migrations.AlterField( + model_name='balancepayment', + name='credit_balance_allowed', + field=models.BooleanField(default=False, verbose_name='allow user to credit their balance'), + ), + migrations.AlterField( + model_name='balancepayment', + name='maximum_balance', + field=models.DecimalField(blank=True, decimal_places=2, default=50, help_text='The maximal amount of money allowed for the balance.', max_digits=5, null=True, verbose_name='maximum balance'), + ), + migrations.AlterField( + model_name='balancepayment', + name='minimum_balance', + field=models.DecimalField(decimal_places=2, default=0, help_text='The minimal amount of money allowed for the balance at the end of a payment. You can specify a negative amount.', max_digits=5, verbose_name='minimum balance'), + ), + migrations.AlterField( + model_name='baseinvoice', + name='date', + field=models.DateTimeField(auto_now_add=True, verbose_name='date'), + ), + migrations.AlterField( + model_name='comnpaypayment', + name='minimum_payment', + field=models.DecimalField(decimal_places=2, default=1, help_text='The minimal amount of money you have to use when paying with ComNpay.', max_digits=5, verbose_name='minimum payment'), + ), + migrations.AlterField( + model_name='comnpaypayment', + name='production', + field=models.BooleanField(default=True, verbose_name='production mode enabled (production URL, instead of homologation)'), + ), + migrations.AlterField( + model_name='costestimate', + name='validity', + field=models.DurationField(help_text='DD HH:MM:SS', verbose_name='period of validity'), + ), + migrations.AlterField( + model_name='custominvoice', + name='address', + field=models.CharField(max_length=255, verbose_name='address'), + ), + migrations.AlterField( + model_name='custominvoice', + name='paid', + field=models.BooleanField(default=False, verbose_name='paid'), + ), + migrations.AlterField( + model_name='custominvoice', + name='payment', + field=models.CharField(max_length=255, verbose_name='payment type'), + ), + migrations.AlterField( + model_name='custominvoice', + name='recipient', + field=models.CharField(max_length=255, verbose_name='recipient'), + ), + migrations.AlterField( + model_name='custominvoice', + name='remark', + field=models.TextField(blank=True, null=True, verbose_name='remark'), + ), + ] diff --git a/machines/migrations/0106_auto_20191120_0159.py b/machines/migrations/0106_auto_20191120_0159.py new file mode 100644 index 00000000..5526a818 --- /dev/null +++ b/machines/migrations/0106_auto_20191120_0159.py @@ -0,0 +1,136 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-11-20 00:59 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('machines', '0105_dname_ttl'), + ] + + operations = [ + migrations.AlterModelOptions( + name='domain', + options={'permissions': (('view_domain', 'Can view a domain object'), ('change_ttl', 'Can change the TTL of a domain object')), 'verbose_name': 'domain', 'verbose_name_plural': 'domains'}, + ), + migrations.AlterField( + model_name='extension', + name='dnssec', + field=models.BooleanField(default=False, help_text='Should the zone be signed with DNSSEC.'), + ), + migrations.AlterField( + model_name='extension', + name='name', + field=models.CharField(help_text='Zone name, must begin with a dot (.example.org).', max_length=255, unique=True), + ), + migrations.AlterField( + model_name='extension', + name='origin', + field=models.ForeignKey(blank=True, help_text='A record associated with the zone.', null=True, on_delete=django.db.models.deletion.PROTECT, to='machines.IpList'), + ), + migrations.AlterField( + model_name='extension', + name='origin_v6', + field=models.GenericIPAddressField(blank=True, help_text='AAAA record associated with the zone.', null=True, protocol='IPv6'), + ), + migrations.AlterField( + model_name='iptype', + name='domaine_ip_netmask', + field=models.IntegerField(default=24, help_text="Netmask for the domain's IPv4 range.", validators=[django.core.validators.MaxValueValidator(31), django.core.validators.MinValueValidator(8)]), + ), + migrations.AlterField( + model_name='iptype', + name='domaine_ip_network', + field=models.GenericIPAddressField(blank=True, help_text="Network containing the domain's IPv4 range (optional).", null=True, protocol='IPv4'), + ), + migrations.AlterField( + model_name='iptype', + name='reverse_v4', + field=models.BooleanField(default=False, help_text='Enable reverse DNS for IPv4.'), + ), + migrations.AlterField( + model_name='iptype', + name='reverse_v6', + field=models.BooleanField(default=False, help_text='Enable reverse DNS for IPv6.'), + ), + migrations.AlterField( + model_name='machine', + name='name', + field=models.CharField(blank=True, help_text='Optional.', max_length=255, null=True), + ), + migrations.AlterField( + model_name='soa', + name='expire', + field=models.PositiveIntegerField(default=3600000, help_text='Seconds before the secondary DNS stop answering requests in case of primary DNS timeout.'), + ), + migrations.AlterField( + model_name='soa', + name='mail', + field=models.EmailField(help_text='Contact email address for the zone.', max_length=254), + ), + migrations.AlterField( + model_name='soa', + name='refresh', + field=models.PositiveIntegerField(default=86400, help_text='Seconds before the secondary DNS have to ask the primary DNS serial to detect a modification.'), + ), + migrations.AlterField( + model_name='soa', + name='retry', + field=models.PositiveIntegerField(default=7200, help_text='Seconds before the secondary DNS ask the serial again in case of a primary DNS timeout.'), + ), + migrations.AlterField( + model_name='soa', + name='ttl', + field=models.PositiveIntegerField(default=172800, help_text='Time To Live.'), + ), + migrations.AlterField( + model_name='srv', + name='port', + field=models.PositiveIntegerField(help_text='TCP/UDP port.', validators=[django.core.validators.MaxValueValidator(65535)]), + ), + migrations.AlterField( + model_name='srv', + name='priority', + field=models.PositiveIntegerField(default=0, help_text='Priority of the target server (positive integer value, the lower it is, the more the server will be used if available).', validators=[django.core.validators.MaxValueValidator(65535)]), + ), + migrations.AlterField( + model_name='srv', + name='target', + field=models.ForeignKey(help_text='Target server.', on_delete=django.db.models.deletion.PROTECT, to='machines.Domain'), + ), + migrations.AlterField( + model_name='srv', + name='ttl', + field=models.PositiveIntegerField(default=172800, help_text='Time To Live.'), + ), + migrations.AlterField( + model_name='srv', + name='weight', + field=models.PositiveIntegerField(default=0, help_text='Relative weight for records with the same priority (integer value between 0 and 65535).', validators=[django.core.validators.MaxValueValidator(65535)]), + ), + migrations.AlterField( + model_name='sshfp', + name='comment', + field=models.CharField(blank=True, help_text='Comment.', max_length=255, null=True), + ), + migrations.AlterField( + model_name='sshfp', + name='pub_key_entry', + field=models.TextField(help_text='SSH public key.', max_length=2048), + ), + migrations.AlterField( + model_name='vlan', + name='igmp', + field=models.BooleanField(default=False, help_text='v4 multicast management.'), + ), + migrations.AlterField( + model_name='vlan', + name='mld', + field=models.BooleanField(default=False, help_text='v6 multicast management.'), + ), + ] diff --git a/preferences/migrations/0067_auto_20191120_0159.py b/preferences/migrations/0067_auto_20191120_0159.py new file mode 100644 index 00000000..47f93ad4 --- /dev/null +++ b/preferences/migrations/0067_auto_20191120_0159.py @@ -0,0 +1,289 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-11-20 00:59 +from __future__ import unicode_literals + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import preferences.models +import re2o.aes_field + + +class Migration(migrations.Migration): + + dependencies = [ + ('preferences', '0066_optionalmachine_default_dns_ttl'), + ] + + operations = [ + migrations.AlterModelOptions( + name='assooption', + options={'permissions': (('view_assooption', 'Can view the organisation preferences'),), 'verbose_name': 'organisation preferences'}, + ), + migrations.AlterModelOptions( + name='cotisationsoption', + options={'verbose_name': 'subscription preferences'}, + ), + migrations.AlterModelOptions( + name='generaloption', + options={'permissions': (('view_generaloption', 'Can view the general preferences'),), 'verbose_name': 'general preferences'}, + ), + migrations.AlterModelOptions( + name='homeoption', + options={'permissions': (('view_homeoption', 'Can view the homepage preferences'),), 'verbose_name': 'homepage preferences'}, + ), + migrations.AlterModelOptions( + name='mailmessageoption', + options={'permissions': (('view_mailmessageoption', 'Can view the email message preferences'),), 'verbose_name': 'email message preferences'}, + ), + migrations.AlterModelOptions( + name='mandate', + options={'permissions': (('view_mandate', 'Can view a mandate object'),), 'verbose_name': 'mandate', 'verbose_name_plural': 'mandates'}, + ), + migrations.AlterModelOptions( + name='optionalmachine', + options={'permissions': (('view_optionalmachine', 'Can view the machine preferences'),), 'verbose_name': 'machine preferences'}, + ), + migrations.AlterModelOptions( + name='optionaltopologie', + options={'permissions': (('view_optionaltopologie', 'Can view the topology preferences'),), 'verbose_name': 'topology preferences'}, + ), + migrations.AlterModelOptions( + name='optionaluser', + options={'permissions': (('view_optionaluser', 'Can view the user preferences'),), 'verbose_name': 'user preferences'}, + ), + migrations.AlterModelOptions( + name='service', + options={'permissions': (('view_service', 'Can view the service preferences'),), 'verbose_name': 'service', 'verbose_name_plural': 'services'}, + ), + migrations.AlterField( + model_name='cotisationsoption', + name='invoice_template', + field=models.OneToOneField(default=preferences.models.default_invoice, on_delete=django.db.models.deletion.PROTECT, related_name='invoice_template', to='preferences.DocumentTemplate', verbose_name='template for invoices'), + ), + migrations.AlterField( + model_name='cotisationsoption', + name='send_voucher_mail', + field=models.BooleanField(default=False, help_text='Be careful, if no mandate is defined on the preferences page, errors will be triggered when generating vouchers.', verbose_name='send voucher by email when the invoice is controlled'), + ), + migrations.AlterField( + model_name='cotisationsoption', + name='voucher_template', + field=models.OneToOneField(default=preferences.models.default_voucher, on_delete=django.db.models.deletion.PROTECT, related_name='voucher_template', to='preferences.DocumentTemplate', verbose_name='template for subscription vouchers'), + ), + migrations.AlterField( + model_name='generaloption', + name='general_message_en', + field=models.TextField(blank=True, default='', help_text='General message displayed on the English version of the website (e.g. in case of maintenance).'), + ), + migrations.AlterField( + model_name='generaloption', + name='general_message_fr', + field=models.TextField(blank=True, default='', help_text='General message displayed on the French version of the website (e.g. in case of maintenance).'), + ), + migrations.AlterField( + model_name='mailcontact', + name='address', + field=models.EmailField(default='contact@example.org', help_text='Contact email address.', max_length=254), + ), + migrations.AlterField( + model_name='mailmessageoption', + name='welcome_mail_en', + field=models.TextField(blank=True, default='', help_text='Welcome email in English.'), + ), + migrations.AlterField( + model_name='mailmessageoption', + name='welcome_mail_fr', + field=models.TextField(blank=True, default='', help_text='Welcome email in French.'), + ), + migrations.AlterField( + model_name='mandate', + name='president', + field=models.ForeignKey(blank=True, help_text='Displayed on subscription vouchers.', null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='president of the association'), + ), + migrations.AlterField( + model_name='optionalmachine', + name='default_dns_ttl', + field=models.PositiveIntegerField(default=172800, verbose_name='default Time To Live (TTL) for CNAME, A and AAAA records'), + ), + migrations.AlterField( + model_name='optionalmachine', + name='ipv6_mode', + field=models.CharField(choices=[('SLAAC', 'Automatic configuration by RA'), ('DHCPV6', 'IP addresses assignment by DHCPv6'), ('DISABLED', 'Disabled')], default='DISABLED', max_length=32), + ), + migrations.AlterField( + model_name='optionaltopologie', + name='sftp_login', + field=models.CharField(blank=True, help_text='SFTP login for switches.', max_length=32, null=True), + ), + migrations.AlterField( + model_name='optionaltopologie', + name='sftp_pass', + field=re2o.aes_field.AESEncryptedField(blank=True, help_text='SFTP password.', max_length=63, null=True), + ), + migrations.AlterField( + model_name='optionaltopologie', + name='switchs_ip_type', + field=models.OneToOneField(blank=True, help_text='IP range for the management of switches.', null=True, on_delete=django.db.models.deletion.PROTECT, to='machines.IpType'), + ), + migrations.AlterField( + model_name='optionaltopologie', + name='switchs_provision', + field=models.CharField(choices=[('sftp', 'SFTP'), ('tftp', 'TFTP')], default='tftp', help_text='Provision of configuration mode for switches.', max_length=32), + ), + migrations.AlterField( + model_name='optionaltopologie', + name='switchs_rest_management', + field=models.BooleanField(default=False, help_text='REST management, activated in case of automatic provision.'), + ), + migrations.AlterField( + model_name='optionaltopologie', + name='switchs_web_management', + field=models.BooleanField(default=False, help_text='Web management, activated in case of automatic provision.'), + ), + migrations.AlterField( + model_name='optionaltopologie', + name='switchs_web_management_ssl', + field=models.BooleanField(default=False, help_text='SSL web management, make sure that a certificate is installed on the switch.'), + ), + migrations.AlterField( + model_name='optionaluser', + name='local_email_domain', + field=models.CharField(default='@example.org', help_text='Domain to use for local email accounts.', max_length=32), + ), + migrations.AlterField( + model_name='radiusattribute', + name='attribute', + field=models.CharField(help_text='See https://freeradius.org/rfc/attributes.html.', max_length=255, verbose_name='attribute'), + ), + migrations.AlterField( + model_name='radiusattribute', + name='comment', + field=models.TextField(blank=True, default='', help_text='Use this field to document this attribute.', verbose_name='comment'), + ), + migrations.AlterField( + model_name='radiusattribute', + name='value', + field=models.CharField(max_length=255, verbose_name='value'), + ), + migrations.AlterField( + model_name='radiuskey', + name='comment', + field=models.CharField(blank=True, help_text='Comment for this key.', max_length=255, null=True), + ), + migrations.AlterField( + model_name='radiuskey', + name='default_switch', + field=models.BooleanField(default=False, help_text='Default key for switches.'), + ), + migrations.AlterField( + model_name='radiuskey', + name='radius_key', + field=re2o.aes_field.AESEncryptedField(help_text='RADIUS key.', max_length=255), + ), + migrations.AlterField( + model_name='radiusoption', + name='banned', + field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='policy for banned users'), + ), + migrations.AlterField( + model_name='radiusoption', + name='banned_attributes', + field=models.ManyToManyField(blank=True, help_text='Answer attributes for banned users.', related_name='banned_attribute', to='preferences.RadiusAttribute', verbose_name='banned users attributes'), + ), + migrations.AlterField( + model_name='radiusoption', + name='banned_vlan', + field=models.ForeignKey(blank=True, help_text='VLAN for banned users if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='banned_vlan', to='machines.Vlan', verbose_name='banned users VLAN'), + ), + migrations.AlterField( + model_name='radiusoption', + name='non_member', + field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='policy for non members'), + ), + migrations.AlterField( + model_name='radiusoption', + name='non_member_attributes', + field=models.ManyToManyField(blank=True, help_text='Answer attributes for non members.', related_name='non_member_attribute', to='preferences.RadiusAttribute', verbose_name='non members attributes'), + ), + migrations.AlterField( + model_name='radiusoption', + name='non_member_vlan', + field=models.ForeignKey(blank=True, help_text='VLAN for non members if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='non_member_vlan', to='machines.Vlan', verbose_name='non members VLAN'), + ), + migrations.AlterField( + model_name='radiusoption', + name='ok_attributes', + field=models.ManyToManyField(blank=True, help_text='Answer attributes for accepted users.', related_name='ok_attribute', to='preferences.RadiusAttribute', verbose_name='accepted users attributes'), + ), + migrations.AlterField( + model_name='radiusoption', + name='radius_general_policy', + field=models.CharField(choices=[('MACHINE', "On the IP range's VLAN of the machine"), ('DEFINED', 'Preset in "VLAN for machines accepted by RADIUS"')], default='DEFINED', max_length=32), + ), + migrations.AlterField( + model_name='radiusoption', + name='unknown_machine', + field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='policy for unknown machines'), + ), + migrations.AlterField( + model_name='radiusoption', + name='unknown_machine_attributes', + field=models.ManyToManyField(blank=True, help_text='Answer attributes for unknown machines.', related_name='unknown_machine_attribute', to='preferences.RadiusAttribute', verbose_name='unknown machines attributes'), + ), + migrations.AlterField( + model_name='radiusoption', + name='unknown_machine_vlan', + field=models.ForeignKey(blank=True, help_text='VLAN for unknown machines if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='unknown_machine_vlan', to='machines.Vlan', verbose_name='unknown machines VLAN'), + ), + migrations.AlterField( + model_name='radiusoption', + name='unknown_port', + field=models.CharField(choices=[('REJECT', 'Reject the machine'), ('SET_VLAN', 'Place the machine on the VLAN')], default='REJECT', max_length=32, verbose_name='policy for unknown ports'), + ), + migrations.AlterField( + model_name='radiusoption', + name='unknown_port_attributes', + field=models.ManyToManyField(blank=True, help_text='Answer attributes for unknown ports.', related_name='unknown_port_attribute', to='preferences.RadiusAttribute', verbose_name='unknown ports attributes'), + ), + migrations.AlterField( + model_name='radiusoption', + name='unknown_port_vlan', + field=models.ForeignKey(blank=True, help_text='VLAN for unknown ports if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='unknown_port_vlan', to='machines.Vlan', verbose_name='unknown ports VLAN'), + ), + migrations.AlterField( + model_name='radiusoption', + name='unknown_room_attributes', + field=models.ManyToManyField(blank=True, help_text='Answer attributes for unknown rooms.', related_name='unknown_room_attribute', to='preferences.RadiusAttribute', verbose_name='unknown rooms attributes'), + ), + migrations.AlterField( + model_name='radiusoption', + name='unknown_room_vlan', + field=models.ForeignKey(blank=True, help_text='VLAN for unknown rooms if not rejected.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='unknown_room_vlan', to='machines.Vlan', verbose_name='unknown rooms VLAN'), + ), + migrations.AlterField( + model_name='reminder', + name='days', + field=models.IntegerField(default=7, help_text="Delay between the email and the membership's end.", unique=True), + ), + migrations.AlterField( + model_name='reminder', + name='message', + field=models.TextField(blank=True, default='', help_text='Message displayed specifically for this reminder.', null=True), + ), + migrations.AlterField( + model_name='switchmanagementcred', + name='default_switch', + field=models.BooleanField(default=True, help_text='Default credentials for switches.', unique=True), + ), + migrations.AlterField( + model_name='switchmanagementcred', + name='management_id', + field=models.CharField(help_text='Switch login.', max_length=63), + ), + migrations.AlterField( + model_name='switchmanagementcred', + name='management_pass', + field=re2o.aes_field.AESEncryptedField(help_text='Password.', max_length=63), + ), + ] diff --git a/tickets/migrations/0002_auto_20191120_0159.py b/tickets/migrations/0002_auto_20191120_0159.py new file mode 100644 index 00000000..05ae5a68 --- /dev/null +++ b/tickets/migrations/0002_auto_20191120_0159.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-11-20 00:59 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('tickets', '0001_initial'), + ] + + operations = [ + migrations.AlterModelOptions( + name='preferences', + options={'verbose_name': 'tickets preferences'}, + ), + migrations.AlterModelOptions( + name='ticket', + options={'permissions': (('view_tickets', 'Can view a ticket object'),), 'verbose_name': 'ticket', 'verbose_name_plural': 'tickets'}, + ), + migrations.AlterField( + model_name='preferences', + name='mail_language', + field=models.IntegerField(choices=[(0, 'French'), (1, 'English')], default=0), + ), + migrations.AlterField( + model_name='preferences', + name='publish_address', + field=models.EmailField(help_text='Email address to publish the new tickets (leave empty for no publication).', max_length=1000, null=True), + ), + migrations.AlterField( + model_name='ticket', + name='description', + field=models.TextField(help_text='Description of the ticket.', max_length=3000), + ), + migrations.AlterField( + model_name='ticket', + name='email', + field=models.EmailField(help_text='An email address to get back to you.', max_length=100, null=True), + ), + migrations.AlterField( + model_name='ticket', + name='title', + field=models.CharField(help_text='Title of the ticket.', max_length=255), + ), + ] diff --git a/topologie/migrations/0073_auto_20191120_0159.py b/topologie/migrations/0073_auto_20191120_0159.py new file mode 100644 index 00000000..482c21c8 --- /dev/null +++ b/topologie/migrations/0073_auto_20191120_0159.py @@ -0,0 +1,131 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-11-20 00:59 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('topologie', '0072_auto_20190720_2318'), + ] + + operations = [ + migrations.AlterField( + model_name='accesspoint', + name='location', + field=models.CharField(blank=True, help_text="Details about the AP's location.", max_length=255, null=True), + ), + migrations.AlterField( + model_name='moduleonswitch', + name='slot', + field=models.CharField(help_text='Slot on switch.', max_length=15, verbose_name='slot'), + ), + migrations.AlterField( + model_name='moduleswitch', + name='comment', + field=models.CharField(blank=True, help_text='Comment.', max_length=255, null=True, verbose_name='comment'), + ), + migrations.AlterField( + model_name='moduleswitch', + name='reference', + field=models.CharField(help_text='Reference of a module.', max_length=255, verbose_name='module reference'), + ), + migrations.AlterField( + model_name='port', + name='state', + field=models.BooleanField(default=True, help_text='Port state Active.', verbose_name='port state Active'), + ), + migrations.AlterField( + model_name='portprofile', + name='arp_protect', + field=models.BooleanField(default=False, help_text='Check if IP address is DHCP assigned.', verbose_name='ARP protection'), + ), + migrations.AlterField( + model_name='portprofile', + name='dhcp_snooping', + field=models.BooleanField(default=False, help_text='Protect against rogue DHCP.', verbose_name='DHCP snooping'), + ), + migrations.AlterField( + model_name='portprofile', + name='dhcpv6_snooping', + field=models.BooleanField(default=False, help_text='Protect against rogue DHCPv6.', verbose_name='DHCPv6 snooping'), + ), + migrations.AlterField( + model_name='portprofile', + name='flow_control', + field=models.BooleanField(default=False, help_text='Flow control.'), + ), + migrations.AlterField( + model_name='portprofile', + name='loop_protect', + field=models.BooleanField(default=False, help_text='Protect against loop.', verbose_name='loop protection'), + ), + migrations.AlterField( + model_name='portprofile', + name='mac_limit', + field=models.IntegerField(blank=True, help_text='Limit of MAC-address on this port.', null=True, verbose_name='MAC limit'), + ), + migrations.AlterField( + model_name='portprofile', + name='name', + field=models.CharField(max_length=255, verbose_name='name'), + ), + migrations.AlterField( + model_name='portprofile', + name='on_dormitory', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='dormitory_ofprofil', to='topologie.Dormitory', verbose_name='profile on dormitory'), + ), + migrations.AlterField( + model_name='portprofile', + name='profil_default', + field=models.CharField(blank=True, choices=[('room', 'Room'), ('access_point', 'Access point'), ('uplink', 'Uplink'), ('asso_machine', 'Organisation machine'), ('nothing', 'Nothing')], max_length=32, null=True, verbose_name='default profile'), + ), + migrations.AlterField( + model_name='portprofile', + name='ra_guard', + field=models.BooleanField(default=False, help_text='Protect against rogue RA.', verbose_name='RA guard'), + ), + migrations.AlterField( + model_name='portprofile', + name='radius_mode', + field=models.CharField(choices=[('STRICT', 'STRICT'), ('COMMON', 'COMMON')], default='COMMON', help_text='In case of MAC-authentication: mode COMMON or STRICT on this port.', max_length=32, verbose_name='RADIUS mode'), + ), + migrations.AlterField( + model_name='portprofile', + name='radius_type', + field=models.CharField(choices=[('NO', 'NO'), ('802.1X', '802.1X'), ('MAC-radius', 'MAC-RADIUS')], help_text='Type of RADIUS authentication: inactive, MAC-address or 802.1X.', max_length=32, verbose_name='RADIUS type'), + ), + migrations.AlterField( + model_name='portprofile', + name='speed', + field=models.CharField(choices=[('10-half', '10-half'), ('100-half', '100-half'), ('10-full', '10-full'), ('100-full', '100-full'), ('1000-full', '1000-full'), ('auto', 'auto'), ('auto-10', 'auto-10'), ('auto-100', 'auto-100')], default='auto', help_text='Port speed limit.', max_length=32), + ), + migrations.AlterField( + model_name='switch', + name='automatic_provision', + field=models.BooleanField(default=False, help_text='Automatic provision for the switch.'), + ), + migrations.AlterField( + model_name='switch', + name='management_creds', + field=models.ForeignKey(blank=True, help_text='Management credentials for the switch.', null=True, on_delete=django.db.models.deletion.PROTECT, to='preferences.SwitchManagementCred'), + ), + migrations.AlterField( + model_name='switch', + name='model', + field=models.ForeignKey(blank=True, help_text='Switch model.', null=True, on_delete=django.db.models.deletion.SET_NULL, to='topologie.ModelSwitch'), + ), + migrations.AlterField( + model_name='switch', + name='number', + field=models.PositiveIntegerField(help_text='Number of ports.'), + ), + migrations.AlterField( + model_name='switch', + name='radius_key', + field=models.ForeignKey(blank=True, help_text='RADIUS key of the switch.', null=True, on_delete=django.db.models.deletion.PROTECT, to='preferences.RadiusKey'), + ), + ] diff --git a/users/migrations/0084_auto_20191120_0159.py b/users/migrations/0084_auto_20191120_0159.py new file mode 100644 index 00000000..f4acc90d --- /dev/null +++ b/users/migrations/0084_auto_20191120_0159.py @@ -0,0 +1,62 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.23 on 2019-11-20 00:59 +from __future__ import unicode_literals + +from django.conf import settings +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0083_user_shortcuts_enabled'), + ] + + operations = [ + migrations.AlterModelOptions( + name='user', + options={'permissions': (('change_user_password', 'Can change the password of a user'), ('change_user_state', 'Can edit the state of a user'), ('change_user_force', 'Can force the move'), ('change_user_shell', 'Can edit the shell of a user'), ('change_user_groups', 'Can edit the groups of rights of a user (critical permission)'), ('change_all_users', 'Can edit all users, including those with rights'), ('view_user', 'Can view a user object')), 'verbose_name': 'user (member or club)', 'verbose_name_plural': 'users (members or clubs)'}, + ), + migrations.AlterField( + model_name='emailaddress', + name='local_part', + field=models.CharField(help_text='Local part of the email address.', max_length=128, unique=True), + ), + migrations.AlterField( + model_name='emailaddress', + name='user', + field=models.ForeignKey(help_text='User of the local email account.', on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), + ), + migrations.AlterField( + model_name='listright', + name='details', + field=models.CharField(blank=True, help_text='Description.', max_length=255), + ), + migrations.AlterField( + model_name='listright', + name='unix_name', + field=models.CharField(max_length=255, unique=True, validators=[django.core.validators.RegexValidator('^[a-z]+$', message='UNIX group names can only contain lower case letters.')]), + ), + migrations.AlterField( + model_name='serviceuser', + name='comment', + field=models.CharField(blank=True, help_text='Comment.', max_length=255), + ), + migrations.AlterField( + model_name='user', + name='comment', + field=models.CharField(blank=True, help_text='Comment, school year.', max_length=255), + ), + migrations.AlterField( + model_name='user', + name='shortcuts_enabled', + field=models.BooleanField(default=True, verbose_name='enable shortcuts on Re2o website'), + ), + migrations.AlterField( + model_name='user', + name='state', + field=models.IntegerField(choices=[(0, 'Active'), (1, 'Disabled'), (2, 'Archived'), (3, 'Not yet active'), (4, 'Fully archived')], default=3), + ), + ]