Skip to content
This repository has been archived by the owner on Sep 5, 2019. It is now read-only.

Commit

Permalink
Improves ticket state change error handling
Browse files Browse the repository at this point in the history
Resolves #126
  • Loading branch information
Denis Krienbühl committed Dec 16, 2015
1 parent d75c323 commit 38a9063
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 18 deletions.
3 changes: 3 additions & 0 deletions HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ Changelog
Unreleased
~~~~~~~~~~

- Improves ticket state change error handling.
[href]

0.11.2 (2015-12-08)
~~~~~~~~~~~~~~~~~~~

Expand Down
17 changes: 13 additions & 4 deletions onegov/town/locale/de_ch/LC_MESSAGES/onegov.town.po
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE 1.0\n"
"POT-Creation-Date: 2015-12-04 14:53+0100\n"
"POT-Creation-Date: 2015-12-16 09:23+0100\n"
"PO-Revision-Date: 2015-10-15 09:42+0200\n"
"Last-Translator: Denis Krienbühl <denis.krienbuehl@seantis.ch>\n"
"Language-Team: German\n"
Expand Down Expand Up @@ -1261,6 +1261,9 @@ msgstr "Suche Nicht Verfügbar"
msgid "Resources"
msgstr "Reservationen"

msgid "Your request has been submitted"
msgstr "Anfrage eingereicht"

#, python-format
msgid "You have accepted ticket ${number}"
msgstr "Sie haben das Ticket ${number} angenommen"
Expand All @@ -1273,15 +1276,21 @@ msgstr "Sie haben das Ticket ${number} abgeschlossen"
msgid "You have reopened ticket ${number}"
msgstr "Sie haben das Ticket ${number} wieder geöffnet"

msgid "Your request has been submitted"
msgstr "Anfrage eingereicht"

msgid "Your request is currently pending"
msgstr "Ihr Anliegen wird zur Zeit bearbeitet"

msgid "Ticket Status"
msgstr "Ticket Status"

msgid "The ticket cannot be accepted because it's not open"
msgstr "Das Ticket kann nicht akzeptiert werden da es nicht offen ist"

msgid "The ticket cannot be closed because it's not pending"
msgstr "Das Ticket kann nicht geschlossen werden da es nicht in Bearbeitung ist."

msgid "The ticket cannot be re-opened because it's not closed."
msgstr "Das Ticket kann nicht wieder geöffnet werden da es nicht geschlossen ist."

msgid "Your request has been processed"
msgstr "Ihr Anliegen wurde abgeschlossen"

Expand Down
43 changes: 29 additions & 14 deletions onegov/town/views/ticket.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from onegov.core.security import Public, Private
from onegov.ticket import Ticket, TicketCollection
from onegov.ticket.errors import InvalidStateChange
from onegov.town import _, TownApp
from onegov.town.elements import Link
from onegov.town.mail import send_html_mail
Expand Down Expand Up @@ -39,11 +40,14 @@ def accept_ticket(self, request):
user = UserCollection(request.app.session()).by_username(
request.identity.userid)

self.accept_ticket(user)

request.success(_("You have accepted ticket ${number}", mapping={
'number': self.number
}))
try:
self.accept_ticket(user)
except InvalidStateChange:
request.alert(_("The ticket cannot be accepted because it's not open"))
else:
request.success(_("You have accepted ticket ${number}", mapping={
'number': self.number
}))

request.app.update_ticket_count()

Expand All @@ -52,11 +56,17 @@ def accept_ticket(self, request):

@TownApp.view(model=Ticket, name='close', permission=Private)
def close_ticket(self, request):
self.close_ticket()

request.success(_("You have closed ticket ${number}", mapping={
'number': self.number
}))
try:
self.close_ticket()
except InvalidStateChange:
request.alert(
_("The ticket cannot be closed because it's not pending")
)
else:
request.success(_("You have closed ticket ${number}", mapping={
'number': self.number
}))

email = self.snapshot.get('email') or self.handler.email

Expand All @@ -81,11 +91,16 @@ def reopen_ticket(self, request):
user = UserCollection(request.app.session()).by_username(
request.identity.userid)

self.reopen_ticket(user)

request.success(_("You have reopened ticket ${number}", mapping={
'number': self.number
}))
try:
self.reopen_ticket(user)
except InvalidStateChange:
request.alert(
_("The ticket cannot be re-opened because it's not closed.")
)
else:
request.success(_("You have reopened ticket ${number}", mapping={
'number': self.number
}))

email = self.snapshot.get('email') or self.handler.email

Expand Down

0 comments on commit 38a9063

Please sign in to comment.