mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-11-25 04:43:10 +00:00
Lerennais remarques
This commit is contained in:
parent
38b119bb8e
commit
4a1d0a1026
5 changed files with 13 additions and 9 deletions
|
@ -96,8 +96,8 @@ def edit_options_template_function(request, section, forms, models):
|
||||||
return redirect(reverse("preferences:display-options"))
|
return redirect(reverse("preferences:display-options"))
|
||||||
|
|
||||||
options_instance, _created = model.objects.get_or_create()
|
options_instance, _created = model.objects.get_or_create()
|
||||||
can, msg, permissions = options_instance.can_edit(request.user)
|
_is_allowed_to_edit, msg, permissions = options_instance.can_edit(request.user)
|
||||||
if not can:
|
if not _is_allowed_to_edit:
|
||||||
messages.error(request, acl_error_message(msg, permissions))
|
messages.error(request, acl_error_message(msg, permissions))
|
||||||
return redirect(reverse("index"))
|
return redirect(reverse("index"))
|
||||||
options = form_instance(
|
options = form_instance(
|
||||||
|
|
|
@ -42,13 +42,14 @@ class NewTicketForm(FormRevMixin, ModelForm):
|
||||||
fields = ["title", "description", "email"]
|
fields = ["title", "description", "email"]
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
request = kwargs.pop("request")
|
request = kwargs.pop("request", None)
|
||||||
super(NewTicketForm, self).__init__(*args, **kwargs)
|
super(NewTicketForm, self).__init__(*args, **kwargs)
|
||||||
if request.user.is_authenticated:
|
if request.user.is_authenticated:
|
||||||
self.fields.pop('email')
|
self.fields.pop('email')
|
||||||
self.instance.user = request.user
|
self.instance.user = request.user
|
||||||
self.fields['description'].help_text = render_to_string('tickets/help_text.html')
|
self.fields['description'].help_text = render_to_string('tickets/help_text.html')
|
||||||
self.instance.language = getattr(request, "LANGUAGE_CODE", "en")
|
self.instance.language = getattr(request, "LANGUAGE_CODE", "en")
|
||||||
|
self.instance.request = request
|
||||||
|
|
||||||
|
|
||||||
class EditTicketForm(FormRevMixin, ModelForm):
|
class EditTicketForm(FormRevMixin, ModelForm):
|
||||||
|
@ -71,7 +72,9 @@ class CommentTicketForm(FormRevMixin, ModelForm):
|
||||||
fields = ["comment"]
|
fields = ["comment"]
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
|
request = kwargs.pop("request", None)
|
||||||
prefix = kwargs.pop("prefix", self.Meta.model.__name__)
|
prefix = kwargs.pop("prefix", self.Meta.model.__name__)
|
||||||
super(CommentTicketForm, self).__init__(*args, prefix=prefix, **kwargs)
|
super(CommentTicketForm, self).__init__(*args, prefix=prefix, **kwargs)
|
||||||
self.fields["comment"].label = _("comment")
|
self.fields["comment"].label = _("comment")
|
||||||
|
self.instance.request = request
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,7 @@ from django.utils.functional import cached_property
|
||||||
from reversion.models import Version
|
from reversion.models import Version
|
||||||
|
|
||||||
from re2o.mixins import AclMixin
|
from re2o.mixins import AclMixin
|
||||||
|
from re2o.mail_utils import send_mail_object
|
||||||
from django.core.mail import EmailMessage
|
from django.core.mail import EmailMessage
|
||||||
|
|
||||||
from preferences.models import GeneralOption
|
from preferences.models import GeneralOption
|
||||||
|
@ -69,6 +70,7 @@ class Ticket(AclMixin, models.Model):
|
||||||
language = models.CharField(
|
language = models.CharField(
|
||||||
max_length=16, help_text=_("Language of the ticket."), default="en"
|
max_length=16, help_text=_("Language of the ticket."), default="en"
|
||||||
)
|
)
|
||||||
|
request = None
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
permissions = (("view_ticket", _("Can view a ticket object")),)
|
permissions = (("view_ticket", _("Can view a ticket object")),)
|
||||||
|
@ -113,7 +115,7 @@ class Ticket(AclMixin, models.Model):
|
||||||
[to_addr],
|
[to_addr],
|
||||||
reply_to=[self.get_mail],
|
reply_to=[self.get_mail],
|
||||||
)
|
)
|
||||||
mail_to_send.send(fail_silently=False)
|
send_mail_object(mail_to_send, self.request)
|
||||||
|
|
||||||
|
|
||||||
def can_view(self, user_request, *_args, **_kwargs):
|
def can_view(self, user_request, *_args, **_kwargs):
|
||||||
|
@ -165,6 +167,7 @@ class CommentTicket(AclMixin, models.Model):
|
||||||
on_delete=models.CASCADE,
|
on_delete=models.CASCADE,
|
||||||
related_name="ticket_comment",
|
related_name="ticket_comment",
|
||||||
)
|
)
|
||||||
|
request = None
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
permissions = (("view_commentticket", _("Can view a ticket object")),)
|
permissions = (("view_commentticket", _("Can view a ticket object")),)
|
||||||
|
@ -221,6 +224,7 @@ class CommentTicket(AclMixin, models.Model):
|
||||||
return "Comment " + str(self.comment_id) + " on " + str(self.parent_ticket)
|
return "Comment " + str(self.comment_id) + " on " + str(self.parent_ticket)
|
||||||
|
|
||||||
def publish_mail(self):
|
def publish_mail(self):
|
||||||
|
"""Send mail to user and admin after new comment"""
|
||||||
site_url = GeneralOption.get_cached_value("main_site_url")
|
site_url = GeneralOption.get_cached_value("main_site_url")
|
||||||
to_addr = TicketOption.get_cached_value("publish_address")
|
to_addr = TicketOption.get_cached_value("publish_address")
|
||||||
context = {"comment": self, "site_url": site_url}
|
context = {"comment": self, "site_url": site_url}
|
||||||
|
@ -236,7 +240,7 @@ class CommentTicket(AclMixin, models.Model):
|
||||||
GeneralOption.get_cached_value("email_from"),
|
GeneralOption.get_cached_value("email_from"),
|
||||||
[to_addr, self.parent_ticket.get_mail],
|
[to_addr, self.parent_ticket.get_mail],
|
||||||
)
|
)
|
||||||
mail_to_send.send(fail_silently=False)
|
send_mail_object(mail_to_send, self.request)
|
||||||
|
|
||||||
|
|
||||||
@receiver(post_save, sender=Ticket)
|
@receiver(post_save, sender=Ticket)
|
||||||
|
|
|
@ -28,11 +28,8 @@ from django.contrib import messages
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
from django.shortcuts import render, redirect
|
from django.shortcuts import render, redirect
|
||||||
from django.template.loader import render_to_string
|
from django.template.loader import render_to_string
|
||||||
from django.views.decorators.cache import cache_page
|
|
||||||
from django.utils.translation import ugettext as _
|
from django.utils.translation import ugettext as _
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.forms import modelformset_factory
|
|
||||||
from re2o.views import form
|
|
||||||
|
|
||||||
from re2o.base import re2o_paginator
|
from re2o.base import re2o_paginator
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,7 @@ def edit_ticket(request, ticket, ticketid):
|
||||||
@can_view(Ticket)
|
@can_view(Ticket)
|
||||||
def add_comment(request, ticket, ticketid):
|
def add_comment(request, ticket, ticketid):
|
||||||
""" Add a comment to a ticket"""
|
""" Add a comment to a ticket"""
|
||||||
commentticket = CommentTicketForm(request.POST or None)
|
commentticket = CommentTicketForm(request.POST or None, request=request)
|
||||||
if commentticket.is_valid():
|
if commentticket.is_valid():
|
||||||
commentticket = commentticket.save(commit=False)
|
commentticket = commentticket.save(commit=False)
|
||||||
commentticket.parent_ticket = ticket
|
commentticket.parent_ticket = ticket
|
||||||
|
|
Loading…
Reference in a new issue