Merge pull request #386 from taigaio/issue/2995/add-custom-video-conference
Issue#2995: Add custom video conference systemremotes/origin/enhancement/email-actions
commit
8c60b9f22b
|
@ -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
|
||||
|
|
|
@ -20,5 +20,6 @@ from django.utils.translation import ugettext_lazy as _
|
|||
VIDEOCONFERENCES_CHOICES = (
|
||||
("appear-in", _("AppearIn")),
|
||||
("jitsi", _("Jitsi")),
|
||||
("custom", _("Custom")),
|
||||
("talky", _("Talky")),
|
||||
)
|
||||
|
|
|
@ -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\"}]",
|
||||
|
|
|
@ -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,
|
||||
),
|
||||
]
|
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue