diff --git a/CHANGELOG.md b/CHANGELOG.md index 8798a560..924f2ebb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - Allow multiple actions in the commit messages. - Now every user that coments USs, Issues or Tasks will be involved in it (add author to the watchers list). - Fix the compatibility with BitBucket webhooks and add issues and issues comments integration. +- Add custom videoconference system. ### Misc - API: Mixin fields 'users', 'members' and 'memberships' in ProjectDetailSerializer diff --git a/taiga/projects/choices.py b/taiga/projects/choices.py index 9447898d..4cf2c843 100644 --- a/taiga/projects/choices.py +++ b/taiga/projects/choices.py @@ -20,5 +20,6 @@ from django.utils.translation import ugettext_lazy as _ VIDEOCONFERENCES_CHOICES = ( ("appear-in", _("AppearIn")), ("jitsi", _("Jitsi")), + ("custom", _("Custom")), ("talky", _("Talky")), ) diff --git a/taiga/projects/fixtures/initial_project_templates.json b/taiga/projects/fixtures/initial_project_templates.json index f0c2ebbb..46d369a5 100644 --- a/taiga/projects/fixtures/initial_project_templates.json +++ b/taiga/projects/fixtures/initial_project_templates.json @@ -16,7 +16,7 @@ "created_date": "2014-04-22T14:48:43.596Z", "default_options": "{\"us_status\": \"New\", \"task_status\": \"New\", \"priority\": \"Normal\", \"issue_type\": \"Bug\", \"severity\": \"Normal\", \"points\": \"?\", \"issue_status\": \"New\"}", "slug": "scrum", - "videoconferences_salt": "", + "videoconferences_extra_data": "", "issue_statuses": "[{\"color\": \"#8C2318\", \"order\": 1, \"is_closed\": false, \"name\": \"New\", \"slug\": \"new\"}, {\"color\": \"#5E8C6A\", \"order\": 2, \"is_closed\": false, \"name\": \"In progress\", \"slug\": \"in-progress\"}, {\"color\": \"#88A65E\", \"order\": 3, \"is_closed\": true, \"name\": \"Ready for test\", \"slug\": \"ready-for-test\"}, {\"color\": \"#BFB35A\", \"order\": 4, \"is_closed\": true, \"name\": \"Closed\", \"slug\": \"closed\"}, {\"color\": \"#89BAB4\", \"order\": 5, \"is_closed\": false, \"name\": \"Needs Info\", \"slug\": \"needs-info\"}, {\"color\": \"#CC0000\", \"order\": 6, \"is_closed\": true, \"name\": \"Rejected\", \"slug\": \"rejected\"}, {\"color\": \"#666666\", \"order\": 7, \"is_closed\": false, \"name\": \"Postponed\", \"slug\": \"posponed\"}]", "default_owner_role": "product-owner", "issue_types": "[{\"color\": \"#89BAB4\", \"order\": 1, \"name\": \"Bug\"}, {\"color\": \"#ba89a8\", \"order\": 2, \"name\": \"Question\"}, {\"color\": \"#89a8ba\", \"order\": 3, \"name\": \"Enhancement\"}]", @@ -43,7 +43,7 @@ "created_date": "2014-04-22T14:50:19.738Z", "default_options": "{\"us_status\": \"New\", \"task_status\": \"New\", \"priority\": \"Normal\", \"issue_type\": \"Bug\", \"severity\": \"Normal\", \"points\": \"?\", \"issue_status\": \"New\"}", "slug": "kanban", - "videoconferences_salt": "", + "videoconferences_extra_data": "", "issue_statuses": "[{\"color\": \"#999999\", \"order\": 1, \"is_closed\": false, \"name\": \"New\", \"slug\": \"new\"}, {\"color\": \"#729fcf\", \"order\": 2, \"is_closed\": false, \"name\": \"In progress\", \"slug\": \"in-progress\"}, {\"color\": \"#f57900\", \"order\": 3, \"is_closed\": true, \"name\": \"Ready for test\", \"slug\": \"ready-for-test\"}, {\"color\": \"#4e9a06\", \"order\": 4, \"is_closed\": true, \"name\": \"Closed\", \"slug\": \"closed\"}, {\"color\": \"#cc0000\", \"order\": 5, \"is_closed\": false, \"name\": \"Needs Info\", \"slug\": \"needs-info\"}, {\"color\": \"#d3d7cf\", \"order\": 6, \"is_closed\": true, \"name\": \"Rejected\", \"slug\": \"rejected\"}, {\"color\": \"#75507b\", \"order\": 7, \"is_closed\": false, \"name\": \"Postponed\", \"slug\": \"posponed\"}]", "default_owner_role": "product-owner", "issue_types": "[{\"color\": \"#cc0000\", \"order\": 1, \"name\": \"Bug\"}, {\"color\": \"#729fcf\", \"order\": 2, \"name\": \"Question\"}, {\"color\": \"#4e9a06\", \"order\": 3, \"name\": \"Enhancement\"}]", diff --git a/taiga/projects/migrations/0022_auto_20150701_0924.py b/taiga/projects/migrations/0022_auto_20150701_0924.py new file mode 100644 index 00000000..83d7a337 --- /dev/null +++ b/taiga/projects/migrations/0022_auto_20150701_0924.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('projects', '0021_auto_20150504_1524'), + ] + + operations = [ + migrations.RenameField( + model_name='projecttemplate', + old_name='videoconferences_salt', + new_name='videoconferences_extra_data', + ), + migrations.RenameField( + model_name='project', + old_name='videoconferences_salt', + new_name='videoconferences_extra_data', + ), + migrations.AlterField( + model_name='project', + name='videoconferences', + field=models.CharField(blank=True, verbose_name='videoconference system', choices=[('appear-in', 'AppearIn'), ('jitsi', 'Jitsi'), ('custom', 'Custom'), ('talky', 'Talky')], null=True, max_length=250), + preserve_default=True, + ), + migrations.AlterField( + model_name='projecttemplate', + name='videoconferences', + field=models.CharField(blank=True, verbose_name='videoconference system', choices=[('appear-in', 'AppearIn'), ('jitsi', 'Jitsi'), ('custom', 'Custom'), ('talky', 'Talky')], null=True, max_length=250), + preserve_default=True, + ), + ] diff --git a/taiga/projects/models.py b/taiga/projects/models.py index 64fff2a9..145edfb0 100644 --- a/taiga/projects/models.py +++ b/taiga/projects/models.py @@ -150,8 +150,8 @@ class Project(ProjectDefaults, TaggedMixin, models.Model): videoconferences = models.CharField(max_length=250, null=True, blank=True, choices=choices.VIDEOCONFERENCES_CHOICES, verbose_name=_("videoconference system")) - videoconferences_salt = models.CharField(max_length=250, null=True, blank=True, - verbose_name=_("videoconference room salt")) + videoconferences_extra_data = models.CharField(max_length=250, null=True, blank=True, + verbose_name=_("videoconference extra data")) creation_template = models.ForeignKey("projects.ProjectTemplate", related_name="projects", null=True, @@ -209,7 +209,7 @@ class Project(ProjectDefaults, TaggedMixin, models.Model): self.slug = slug if not self.videoconferences: - self.videoconferences_salt = None + self.videoconferences_extra_data = None super().save(*args, **kwargs) @@ -577,8 +577,8 @@ class ProjectTemplate(models.Model): videoconferences = models.CharField(max_length=250, null=True, blank=True, choices=choices.VIDEOCONFERENCES_CHOICES, verbose_name=_("videoconference system")) - videoconferences_salt = models.CharField(max_length=250, null=True, blank=True, - verbose_name=_("videoconference room salt")) + videoconferences_extra_data = models.CharField(max_length=250, null=True, blank=True, + verbose_name=_("videoconference extra data")) default_options = JsonField(null=True, blank=True, verbose_name=_("default options")) us_statuses = JsonField(null=True, blank=True, verbose_name=_("us statuses")) @@ -613,7 +613,7 @@ class ProjectTemplate(models.Model): self.is_wiki_activated = project.is_wiki_activated self.is_issues_activated = project.is_issues_activated self.videoconferences = project.videoconferences - self.videoconferences_salt = project.videoconferences_salt + self.videoconferences_extra_data = project.videoconferences_extra_data self.default_options = { "points": getattr(project.default_points, "name", None), @@ -717,7 +717,7 @@ class ProjectTemplate(models.Model): project.is_wiki_activated = self.is_wiki_activated project.is_issues_activated = self.is_issues_activated project.videoconferences = self.videoconferences - project.videoconferences_salt = self.videoconferences_salt + project.videoconferences_extra_data = self.videoconferences_extra_data for us_status in self.us_statuses: UserStoryStatus.objects.create(