mirror of https://gitlab.federez.net/re2o/re2o
9 changed files with 258 additions and 42 deletions
@ -0,0 +1,14 @@ |
|||
# Copyright 2021 nanoy |
|||
# |
|||
# Licensed under the Apache License, Version 2.0 (the "License"); |
|||
# you may not use this file except in compliance with the License. |
|||
# You may obtain a copy of the License at |
|||
# |
|||
# http://www.apache.org/licenses/LICENSE-2.0 |
|||
# |
|||
# Unless required by applicable law or agreed to in writing, software |
|||
# distributed under the License is distributed on an "AS IS" BASIS, |
|||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|||
# See the License for the specific language governing permissions and |
|||
# limitations under the License. |
|||
|
|||
@ -0,0 +1,55 @@ |
|||
# -*- mode: python; coding: utf-8 -*- |
|||
# Re2o est un logiciel d'administration développé initiallement au Rézo Metz. Il |
|||
# se veut agnostique au réseau considéré, de manière à être installable en |
|||
# quelques clics. |
|||
# |
|||
# Copyright © 2018 Maël Kervella |
|||
# |
|||
# This program is free software; you can redistribute it and/or modify |
|||
# it under the terms of the GNU General Public License as published by |
|||
# the Free Software Foundation; either version 2 of the License, or |
|||
# (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU General Public License along |
|||
# with this program; if not, write to the Free Software Foundation, Inc., |
|||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
|||
|
|||
from rest_framework import serializers |
|||
|
|||
from tickets.models import Ticket, CommentTicket |
|||
from api.serializers import NamespacedHMSerializer |
|||
|
|||
|
|||
class TicketSerializer(NamespacedHMSerializer): |
|||
"""Serialize `tickets.models.Ticket` objects.""" |
|||
|
|||
class Meta: |
|||
model = Ticket |
|||
fields = ("id", "title", "description", "email", "uuid") |
|||
|
|||
|
|||
class CommentTicketSerializer(NamespacedHMSerializer): |
|||
uuid = serializers.UUIDField() |
|||
|
|||
class Meta: |
|||
model = CommentTicket |
|||
fields = ("comment", "uuid", "parent_ticket", "created_at", "created_by") |
|||
read_only_fields = ("parent_ticket", "created_at", "created_by") |
|||
extra_kwargs = { |
|||
"uuid": {"write_only": True}, |
|||
} |
|||
|
|||
def create(self, validated_data): |
|||
validated_data = { |
|||
"comment": validated_data["comment"], |
|||
"parent_ticket": Ticket.objects.get(uuid=validated_data["uuid"]), |
|||
"created_by": validated_data["created_by"], |
|||
} |
|||
comment = CommentTicket(**validated_data) |
|||
comment.save() |
|||
return comment |
|||
@ -0,0 +1,31 @@ |
|||
# -*- mode: python; coding: utf-8 -*- |
|||
# Re2o est un logiciel d'administration développé initiallement au Rézo Metz. Il |
|||
# se veut agnostique au réseau considéré, de manière à être installable en |
|||
# quelques clics. |
|||
# |
|||
# Copyright © 2018 Maël Kervella |
|||
# |
|||
# This program is free software; you can redistribute it and/or modify |
|||
# it under the terms of the GNU General Public License as published by |
|||
# the Free Software Foundation; either version 2 of the License, or |
|||
# (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU General Public License along |
|||
# with this program; if not, write to the Free Software Foundation, Inc., |
|||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
|||
|
|||
from . import views |
|||
|
|||
urls_viewset = [ |
|||
(r"tickets/tickets", views.TicketsViewSet, None), |
|||
(r"tickets/comments", views.CommentTicketViewSet, None), |
|||
] |
|||
|
|||
# urls_view = [ |
|||
# (r"ticket/tickets", ), |
|||
# ] |
|||
@ -0,0 +1,51 @@ |
|||
# -*- mode: python; coding: utf-8 -*- |
|||
# Re2o est un logiciel d'administration développé initiallement au Rézo Metz. Il |
|||
# se veut agnostique au réseau considéré, de manière à être installable en |
|||
# quelques clics. |
|||
# |
|||
# Copyright © 2018 Maël Kervella |
|||
# |
|||
# This program is free software; you can redistribute it and/or modify |
|||
# it under the terms of the GNU General Public License as published by |
|||
# the Free Software Foundation; either version 2 of the License, or |
|||
# (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU General Public License along |
|||
# with this program; if not, write to the Free Software Foundation, Inc., |
|||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
|||
|
|||
from rest_framework import viewsets |
|||
|
|||
from tickets.models import Ticket, CommentTicket |
|||
from api.permissions import ACLPermission |
|||
|
|||
from . import serializers |
|||
|
|||
|
|||
class TicketsViewSet(viewsets.ModelViewSet): |
|||
|
|||
permission_classes = (ACLPermission,) |
|||
perms_map = { |
|||
"GET": [Ticket.can_view_all], |
|||
"POST": [], |
|||
} |
|||
serializer_class = serializers.TicketSerializer |
|||
queryset = Ticket.objects.all() |
|||
|
|||
|
|||
class CommentTicketViewSet(viewsets.ModelViewSet): |
|||
permission_classes = (ACLPermission,) |
|||
perms_map = { |
|||
"GET": [Ticket.can_view_all], |
|||
"POST": [], |
|||
} |
|||
serializer_class = serializers.CommentTicketSerializer |
|||
queryset = CommentTicket.objects.all() |
|||
|
|||
def perform_create(self, serializer): |
|||
serializer.save(created_by=self.request.user) |
|||
@ -0,0 +1,19 @@ |
|||
# Generated by Django 2.2.18 on 2021-05-09 17:29 |
|||
|
|||
from django.db import migrations, models |
|||
import uuid |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
dependencies = [ |
|||
('tickets', '0002_auto_20210214_1046'), |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.AddField( |
|||
model_name='ticket', |
|||
name='uuid', |
|||
field=models.UUIDField(default=uuid.uuid4, editable=False), |
|||
), |
|||
] |
|||
Loading…
Reference in new issue