diff --git a/bigbluebutton/django/migrations/0001_initial.py b/bigbluebutton/django/migrations/0001_initial.py index 08a51c74af9b049eb65ef6a24d1e2c396cea31d0..102537a1ee80a4e3ad27044835a4b66ddbdc2492 100644 --- a/bigbluebutton/django/migrations/0001_initial.py +++ b/bigbluebutton/django/migrations/0001_initial.py @@ -1,9 +1,8 @@ -# Generated by Django 3.0.7 on 2020-10-06 07:43 +# Generated by Django 3.1.2 on 2020-10-07 11:14 from django.conf import settings import django.contrib.sites.managers import django.contrib.sites.models -import django.core.validators from django.db import migrations, models import django.db.models.deletion import django.db.models.manager @@ -21,18 +20,12 @@ class Migration(migrations.Migration): operations = [ migrations.CreateModel( - name='BigBlueButtonGroup', + name='BigBlueButton', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=60, verbose_name='Group name')), - ('site', models.ForeignKey(default=django.contrib.sites.models.SiteManager.get_current, on_delete=django.db.models.deletion.CASCADE, to='sites.Site')), - ], - options={ - 'permissions': [('add_servers', 'Can add servers to this group'), ('add_apitokens', 'Can add API tokens valid for this group'), ('add_meetings', 'Can add meetings on servers in this group')], - }, - managers=[ - ('objects', django.db.models.manager.Manager()), - ('on_site', django.contrib.sites.managers.CurrentSiteManager()), + ('name', models.CharField(max_length=60, verbose_name='Server name')), + ('url', models.URLField(verbose_name='API base URL')), + ('salt', models.CharField(max_length=60, verbose_name='API shared secret')), ], ), migrations.CreateModel( @@ -42,36 +35,27 @@ class Migration(migrations.Migration): ('name', models.CharField(max_length=60, verbose_name='Meeting name')), ('welcome_message', models.TextField(blank=True, verbose_name='Welcome message')), ('moderator_message', models.TextField(blank=True, verbose_name='Welcome message for moderators')), - ('conference_pin', models.CharField(blank=True, help_text='PIN for phone dial-in (if available)', max_length=10, null=True, unique=True, validators=[django.core.validators.RegexValidator('[0-9]*', 'The PIN must be numerical')], verbose_name='Conference PIN')), - ('record', models.BooleanField(default=False, verbose_name='Record media and events')), - ('auto_start_recording', models.BooleanField(default=False, verbose_name='Auto-start recording on first join')), - ('allow_start_stop_recording', models.BooleanField(default=True, help_text='Allows users to manually start and stop recording. If recording is set to auto-start, this forces the whole meeting to be recorded. If auto-start is disabled, this causes the recording to be discarded.', verbose_name='Allow starting and stopping recording')), - ('webcams_only_for_moderator', models.BooleanField(default=False, help_text='Webcam streams of participants are only visible for moderators, not for other participants.', verbose_name='Webcams only for moderators')), - ('mute_on_start', models.BooleanField(default=False, help_text='Participants are muted when they join the meeting', verbose_name='Mute on start')), - ('allow_mods_to_unmute_users', models.BooleanField(default=False, help_text='Allow moderators to unmute other users (this is a privacy risk)', verbose_name='Allow moderators to unmute')), - ('enable_cam', models.BooleanField(default=True, verbose_name='Allow sharing webcam')), - ('enable_mic', models.BooleanField(default=True, verbose_name='Allow sharing microphone')), - ('enable_private_chat', models.BooleanField(default=True, verbose_name='Allow private chat')), - ('enable_public_chat', models.BooleanField(default=True, verbose_name='Allow public chat')), - ('enable_note', models.BooleanField(default=True, verbose_name='Allow editing shared notes')), - ('max_participants', models.PositiveSmallIntegerField(null=True, verbose_name='Maximum number of participants')), - ('duration', models.PositiveIntegerField(null=True, verbose_name='Maximum duration (in minutes)')), + ('max_participants', models.PositiveSmallIntegerField(default=0, verbose_name='Maximum number of participants')), ('guid', models.UUIDField(default=uuid.uuid1, editable=False)), - ('api_group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='meetings', to='bigbluebutton.BigBlueButtonGroup')), + ('api', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='meetings', to='django.bigbluebutton')), ], - options={ - 'permissions': [('join_as_attendee', 'Can join this meeting with viewer role'), ('join_as_moderator', 'Can join this meeting with moderator role'), ('grant_attendee', 'Can grant attendee privileges to others'), ('grant_moderator', 'Can grant moderator privileges to others'), ('enforce_conference_pin', 'Can enforce a static conference PIN'), ('add_urls', 'Can add new URLs for this meeting')], - }, ), migrations.CreateModel( - name='BigBlueButton', + name='BigBlueButtonGroup', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=60, verbose_name='Server name')), - ('url', models.URLField(verbose_name='API base URL')), - ('salt', models.CharField(max_length=60, verbose_name='API shared secret')), - ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='apis', to='bigbluebutton.BigBlueButtonGroup')), + ('name', models.CharField(max_length=60, verbose_name='Group name')), + ('site', models.ForeignKey(default=django.contrib.sites.models.SiteManager.get_current, on_delete=django.db.models.deletion.CASCADE, to='sites.site')), ], + managers=[ + ('objects', django.db.models.manager.Manager()), + ('on_site', django.contrib.sites.managers.CurrentSiteManager()), + ], + ), + migrations.AddField( + model_name='bigbluebutton', + name='group', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='apis', to='django.bigbluebuttongroup'), ), migrations.CreateModel( name='APIToken', @@ -81,7 +65,7 @@ class Migration(migrations.Migration): ('salt', models.CharField(max_length=60, unique=True, verbose_name='API salt')), ('scope', models.CharField(choices=[('token', 'Data associated to this token'), ('user', 'Data associated to the owning user'), ('global', 'All data')], default='token', max_length=15, verbose_name='Privilege scope')), ('guid', models.UUIDField(default=uuid.uuid1, editable=False)), - ('server_group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='bigbluebutton.BigBlueButtonGroup')), + ('server_group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='django.bigbluebuttongroup')), ('user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User owning this token')), ], ), diff --git a/poetry.lock b/poetry.lock index 0f5b9641f61422ed9d70cd8d04bbc13ce111cf61..df3de9d9f89e4a8f4f992ac2841653ec1794abfc 100644 --- a/poetry.lock +++ b/poetry.lock @@ -955,11 +955,11 @@ test = ["pytest"] [[package]] category = "main" -description = "Non-validating SQL parser" +description = "A non-validating SQL parser." name = "sqlparse" optional = true -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -version = "0.3.1" +python-versions = ">=3.5" +version = "0.4.0" [[package]] category = "dev" @@ -1612,8 +1612,8 @@ sphinxcontrib-serializinghtml = [ {file = "sphinxcontrib_serializinghtml-1.1.4-py2.py3-none-any.whl", hash = "sha256:f242a81d423f59617a8e5cf16f5d4d74e28ee9a66f9e5b637a18082991db5a9a"}, ] sqlparse = [ - {file = "sqlparse-0.3.1-py2.py3-none-any.whl", hash = "sha256:022fb9c87b524d1f7862b3037e541f68597a730a8843245c349fc93e1643dc4e"}, - {file = "sqlparse-0.3.1.tar.gz", hash = "sha256:e162203737712307dfe78860cc56c8da8a852ab2ee33750e33aeadf38d12c548"}, + {file = "sqlparse-0.4.0-py3-none-any.whl", hash = "sha256:0523026398aea9c8b5f7a4a6d5c0829c285b4fbd960c17b5967a369342e21e01"}, + {file = "sqlparse-0.4.0.tar.gz", hash = "sha256:d59e473424ae7470778fa4dd0dd7bb666ff324f0a6106c29deb5946ea5367f04"}, ] stevedore = [ {file = "stevedore-3.2.2-py3-none-any.whl", hash = "sha256:5e1ab03eaae06ef6ce23859402de785f08d97780ed774948ef16c4652c41bc62"}, diff --git a/pyproject.toml b/pyproject.toml index 7072b6720fb2e86ae07c2b57a25f3fcfcf521cbc..cc1bc7988656985f8f73fd546e6c0cc655a52271 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "bigbluebutton2" -version = "0.1a1" +version = "0.1a2" description = "Sophisticated Python client library for BigBlueButtonâ„¢ with Django integration" authors = ["Dominik George <dominik.george@teckids.org>", "Tom Teichler <tom.teichler@teckids.org"] license = "MIT"