mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 03:42:11 +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",),
 | 
						|
            },
 | 
						|
        ),
 | 
						|
    ]
 |