From 9cb59859478f8db5afd9650a87fc9d3d9b71d182 Mon Sep 17 00:00:00 2001 From: fit2bot <68588906+fit2bot@users.noreply.github.com> Date: Wed, 19 Aug 2020 21:44:20 +0800 Subject: [PATCH] =?UTF-8?q?fix(orgs):=20=E5=88=9B=E5=BB=BA=E7=BB=84?= =?UTF-8?q?=E7=BB=87=E7=94=A8=E6=88=B7=E4=B8=8D=E5=BF=85=E5=A1=AB=20(#4515?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(role): 更改role的顺序 * fix(tickets): 修复工单邮件跳转地址 * fix(tickets): 修复工单复制链接地址不对 * fix(orgs): 创建组织用户不必填 Co-authored-by: xinwen --- apps/authentication/views/login.py | 3 ++- apps/common/const/front_urls.py | 2 ++ .../orgs/migrations/0008_auto_20200819_2041.py | 18 ++++++++++++++++++ apps/orgs/models.py | 2 +- apps/orgs/serializers.py | 6 +++--- apps/tickets/utils.py | 7 ++----- .../migrations/0030_auto_20200819_2041.py | 18 ++++++++++++++++++ apps/users/models/user.py | 2 +- 8 files changed, 47 insertions(+), 11 deletions(-) create mode 100644 apps/common/const/front_urls.py create mode 100644 apps/orgs/migrations/0008_auto_20200819_2041.py create mode 100644 apps/users/migrations/0030_auto_20200819_2041.py diff --git a/apps/authentication/views/login.py b/apps/authentication/views/login.py index 5493ac3c7..506a8cc87 100644 --- a/apps/authentication/views/login.py +++ b/apps/authentication/views/login.py @@ -18,6 +18,7 @@ from django.views.generic.edit import FormView from django.conf import settings from django.urls import reverse_lazy +from common.const.front_urls import TICKET_DETAIL from common.utils import get_request_ip, get_object_or_none from users.utils import ( redirect_user_first_login_or_index @@ -185,7 +186,7 @@ class UserLoginWaitConfirmView(TemplateView): context = super().get_context_data(**kwargs) if ticket: timestamp_created = datetime.datetime.timestamp(ticket.date_created) - ticket_detail_url = reverse('tickets:ticket-detail', kwargs={'pk': ticket_id}) + ticket_detail_url = TICKET_DETAIL.format(id=ticket_id) msg = _("""Wait for {} confirm, You also can copy link to her/him
Don't close this page""").format(ticket.assignees_display) else: diff --git a/apps/common/const/front_urls.py b/apps/common/const/front_urls.py new file mode 100644 index 000000000..12d47ed17 --- /dev/null +++ b/apps/common/const/front_urls.py @@ -0,0 +1,2 @@ + +TICKET_DETAIL = '/ui/#/tickets/tickets/{id}' diff --git a/apps/orgs/migrations/0008_auto_20200819_2041.py b/apps/orgs/migrations/0008_auto_20200819_2041.py new file mode 100644 index 000000000..524d29e39 --- /dev/null +++ b/apps/orgs/migrations/0008_auto_20200819_2041.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.13 on 2020-08-19 12:41 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('orgs', '0007_auto_20200728_1805'), + ] + + operations = [ + migrations.AlterField( + model_name='organizationmember', + name='role', + field=models.CharField(choices=[('Admin', 'Organization administrator'), ('Auditor', 'Organization auditor'), ('User', 'User')], default='User', max_length=16, verbose_name='Role'), + ), + ] diff --git a/apps/orgs/models.py b/apps/orgs/models.py index 2c47ed756..f76d88e2a 100644 --- a/apps/orgs/models.py +++ b/apps/orgs/models.py @@ -13,8 +13,8 @@ from common.db.models import ChoiceSet class ROLE(ChoiceSet): ADMIN = choices.ADMIN, _('Organization administrator') - USER = choices.USER, _('User') AUDITOR = choices.AUDITOR, _("Organization auditor") + USER = choices.USER, _('User') class Organization(models.Model): diff --git a/apps/orgs/serializers.py b/apps/orgs/serializers.py index d7e8ae2d1..6d52fdc23 100644 --- a/apps/orgs/serializers.py +++ b/apps/orgs/serializers.py @@ -10,9 +10,9 @@ from .models import Organization, OrganizationMember, ROLE as ORG_ROLE class OrgSerializer(ModelSerializer): - users = serializers.PrimaryKeyRelatedField(many=True, queryset=User.objects.all(), write_only=True) - admins = serializers.PrimaryKeyRelatedField(many=True, queryset=User.objects.all(), write_only=True) - auditors = serializers.PrimaryKeyRelatedField(many=True, queryset=User.objects.all(), write_only=True) + users = serializers.PrimaryKeyRelatedField(many=True, queryset=User.objects.all(), write_only=True, required=False) + admins = serializers.PrimaryKeyRelatedField(many=True, queryset=User.objects.all(), write_only=True, required=False) + auditors = serializers.PrimaryKeyRelatedField(many=True, queryset=User.objects.all(), write_only=True, required=False) class Meta: model = Organization diff --git a/apps/tickets/utils.py b/apps/tickets/utils.py index 152b5182b..f3d6ee91e 100644 --- a/apps/tickets/utils.py +++ b/apps/tickets/utils.py @@ -4,6 +4,7 @@ from urllib.parse import urljoin from django.conf import settings from django.utils.translation import ugettext as _ +from common.const.front_urls import TICKET_DETAIL from common.utils import get_logger from common.tasks import send_mail_async @@ -20,11 +21,7 @@ def send_new_ticket_mail_to_assignees(ticket: Ticket, assignees): subject = '{}: {}'.format(_("New ticket"), ticket.title) # 这里要设置前端地址,因为要直接跳转到页面 - if ticket.type == ticket.TYPE.REQUEST_ASSET_PERM: - detail_url = urljoin(settings.SITE_URL, f'/tickets/tickets/request-asset-perm/{ticket.id}') - else: - detail_url = urljoin(settings.SITE_URL, f'/tickets/tickets/{ticket.id}') - + detail_url = urljoin(settings.SITE_URL, TICKET_DETAIL.format(id=ticket.id)) message = _("""

Your has a new ticket

diff --git a/apps/users/migrations/0030_auto_20200819_2041.py b/apps/users/migrations/0030_auto_20200819_2041.py new file mode 100644 index 000000000..775d38ac5 --- /dev/null +++ b/apps/users/migrations/0030_auto_20200819_2041.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.13 on 2020-08-19 12:41 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('users', '0029_auto_20200814_1650'), + ] + + operations = [ + migrations.AlterField( + model_name='user', + name='role', + field=models.CharField(blank=True, choices=[('Admin', 'System administrator'), ('Auditor', 'System auditor'), ('User', 'User'), ('App', 'Application')], default='User', max_length=10, verbose_name='Role'), + ), + ] diff --git a/apps/users/models/user.py b/apps/users/models/user.py index 310084d06..f65b9398e 100644 --- a/apps/users/models/user.py +++ b/apps/users/models/user.py @@ -155,8 +155,8 @@ class AuthMixin: class RoleMixin: class ROLE(ChoiceSet): ADMIN = choices.ADMIN, _('System administrator') - USER = choices.USER, _('User') AUDITOR = choices.AUDITOR, _('System auditor') + USER = choices.USER, _('User') APP = 'App', _('Application') role = ROLE.USER