mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-10-31 22:24:30 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			201 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			201 lines
		
	
	
		
			8.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Generated by Django 5.0.3 on 2024-04-27 07:00
 | |
| 
 | |
| import django.db.models.deletion
 | |
| from django.conf import settings
 | |
| from django.db import migrations, models
 | |
| 
 | |
| 
 | |
| class Migration(migrations.Migration):
 | |
| 
 | |
|     initial = True
 | |
| 
 | |
|     dependencies = [
 | |
|         ("participation", "0013_alter_pool_options_pool_room"),
 | |
|         migrations.swappable_dependency(settings.AUTH_USER_MODEL),
 | |
|     ]
 | |
| 
 | |
|     operations = [
 | |
|         migrations.CreateModel(
 | |
|             name="Channel",
 | |
|             fields=[
 | |
|                 (
 | |
|                     "id",
 | |
|                     models.BigAutoField(
 | |
|                         auto_created=True,
 | |
|                         primary_key=True,
 | |
|                         serialize=False,
 | |
|                         verbose_name="ID",
 | |
|                     ),
 | |
|                 ),
 | |
|                 ("name", models.CharField(max_length=255, verbose_name="name")),
 | |
|                 (
 | |
|                     "read_access",
 | |
|                     models.CharField(
 | |
|                         choices=[
 | |
|                             ("anonymous", "Everyone, including anonymous users"),
 | |
|                             ("authenticated", "Authenticated users"),
 | |
|                             ("volunteer", "All volunteers"),
 | |
|                             ("tournament", "All members of a given tournament"),
 | |
|                             ("organizer", "Tournament organizers only"),
 | |
|                             (
 | |
|                                 "jury_president",
 | |
|                                 "Tournament organizers and jury presidents of the tournament",
 | |
|                             ),
 | |
|                             ("jury", "Jury members of the pool"),
 | |
|                             ("pool", "Jury members and participants of the pool"),
 | |
|                             (
 | |
|                                 "team",
 | |
|                                 "Members of the team and organizers of concerned tournaments",
 | |
|                             ),
 | |
|                             (
 | |
|                                 "private",
 | |
|                                 "Private, reserved to explicit authorized users",
 | |
|                             ),
 | |
|                             ("admin", "Admin users"),
 | |
|                         ],
 | |
|                         max_length=16,
 | |
|                         verbose_name="read permission",
 | |
|                     ),
 | |
|                 ),
 | |
|                 (
 | |
|                     "write_access",
 | |
|                     models.CharField(
 | |
|                         choices=[
 | |
|                             ("anonymous", "Everyone, including anonymous users"),
 | |
|                             ("authenticated", "Authenticated users"),
 | |
|                             ("volunteer", "All volunteers"),
 | |
|                             ("tournament", "All members of a given tournament"),
 | |
|                             ("organizer", "Tournament organizers only"),
 | |
|                             (
 | |
|                                 "jury_president",
 | |
|                                 "Tournament organizers and jury presidents of the tournament",
 | |
|                             ),
 | |
|                             ("jury", "Jury members of the pool"),
 | |
|                             ("pool", "Jury members and participants of the pool"),
 | |
|                             (
 | |
|                                 "team",
 | |
|                                 "Members of the team and organizers of concerned tournaments",
 | |
|                             ),
 | |
|                             (
 | |
|                                 "private",
 | |
|                                 "Private, reserved to explicit authorized users",
 | |
|                             ),
 | |
|                             ("admin", "Admin users"),
 | |
|                         ],
 | |
|                         max_length=16,
 | |
|                         verbose_name="write permission",
 | |
|                     ),
 | |
|                 ),
 | |
|                 (
 | |
|                     "private",
 | |
|                     models.BooleanField(
 | |
|                         default=False,
 | |
|                         help_text="If checked, only users who have been explicitly added to the channel will be able to access it.",
 | |
|                         verbose_name="private",
 | |
|                     ),
 | |
|                 ),
 | |
|                 (
 | |
|                     "invited",
 | |
|                     models.ManyToManyField(
 | |
|                         blank=True,
 | |
|                         help_text="Extra users who have been invited to the channel, in addition to the permitted group of the channel.",
 | |
|                         related_name="+",
 | |
|                         to=settings.AUTH_USER_MODEL,
 | |
|                         verbose_name="invited users",
 | |
|                     ),
 | |
|                 ),
 | |
|                 (
 | |
|                     "pool",
 | |
|                     models.ForeignKey(
 | |
|                         blank=True,
 | |
|                         default=None,
 | |
|                         help_text="For a permission that concerns a pool, indicates what is the concerned pool.",
 | |
|                         null=True,
 | |
|                         on_delete=django.db.models.deletion.CASCADE,
 | |
|                         related_name="chat_channels",
 | |
|                         to="participation.pool",
 | |
|                         verbose_name="pool",
 | |
|                     ),
 | |
|                 ),
 | |
|                 (
 | |
|                     "team",
 | |
|                     models.ForeignKey(
 | |
|                         blank=True,
 | |
|                         default=None,
 | |
|                         help_text="For a permission that concerns a team, indicates what is the concerned team.",
 | |
|                         null=True,
 | |
|                         on_delete=django.db.models.deletion.CASCADE,
 | |
|                         related_name="chat_channels",
 | |
|                         to="participation.team",
 | |
|                         verbose_name="team",
 | |
|                     ),
 | |
|                 ),
 | |
|                 (
 | |
|                     "tournament",
 | |
|                     models.ForeignKey(
 | |
|                         blank=True,
 | |
|                         default=None,
 | |
|                         help_text="For a permission that concerns a tournament, indicates what is the concerned tournament.",
 | |
|                         null=True,
 | |
|                         on_delete=django.db.models.deletion.CASCADE,
 | |
|                         related_name="chat_channels",
 | |
|                         to="participation.tournament",
 | |
|                         verbose_name="tournament",
 | |
|                     ),
 | |
|                 ),
 | |
|             ],
 | |
|             options={
 | |
|                 "verbose_name": "channel",
 | |
|                 "verbose_name_plural": "channels",
 | |
|                 "ordering": ("name",),
 | |
|             },
 | |
|         ),
 | |
|         migrations.CreateModel(
 | |
|             name="Message",
 | |
|             fields=[
 | |
|                 (
 | |
|                     "id",
 | |
|                     models.BigAutoField(
 | |
|                         auto_created=True,
 | |
|                         primary_key=True,
 | |
|                         serialize=False,
 | |
|                         verbose_name="ID",
 | |
|                     ),
 | |
|                 ),
 | |
|                 (
 | |
|                     "created_at",
 | |
|                     models.DateTimeField(auto_now_add=True, verbose_name="created at"),
 | |
|                 ),
 | |
|                 (
 | |
|                     "updated_at",
 | |
|                     models.DateTimeField(auto_now=True, verbose_name="updated at"),
 | |
|                 ),
 | |
|                 ("content", models.TextField(verbose_name="content")),
 | |
|                 (
 | |
|                     "author",
 | |
|                     models.ForeignKey(
 | |
|                         null=True,
 | |
|                         on_delete=django.db.models.deletion.SET_NULL,
 | |
|                         related_name="chat_messages",
 | |
|                         to=settings.AUTH_USER_MODEL,
 | |
|                         verbose_name="author",
 | |
|                     ),
 | |
|                 ),
 | |
|                 (
 | |
|                     "channel",
 | |
|                     models.ForeignKey(
 | |
|                         on_delete=django.db.models.deletion.CASCADE,
 | |
|                         related_name="messages",
 | |
|                         to="chat.channel",
 | |
|                         verbose_name="channel",
 | |
|                     ),
 | |
|                 ),
 | |
|             ],
 | |
|             options={
 | |
|                 "verbose_name": "message",
 | |
|                 "verbose_name_plural": "messages",
 | |
|                 "ordering": ("created_at",),
 | |
|             },
 | |
|         ),
 | |
|     ]
 |