Commit Graph

2595 Commits

Author SHA1 Message Date
Timothy Hobbs
27b7de5d18 Add JSON extra_fields field to followup module
This is extremely useful when writing custom frontends on top of django
helpdesk. This is similar to the custom_fields except it is normalized and
attached to followups and not tickets. The fact that it is just JSON means that
there is no need for updating the database with new CustomField entries making
for more easily maintained custom frontends.
2024-08-08 10:31:51 +02:00
Christopher Broderick
4adcc7f3d3
Merge pull request #1194 from samsplunks/time_spent
Moving python time_spent calculation to database aggregation
2024-07-22 22:31:56 +01:00
Christopher Broderick
0a2ceca8dd
Merge branch 'main' into time_spent 2024-07-22 11:01:52 +01:00
Christopher Broderick
dbecf0f9c2
Merge pull request #1193 from samsplunks/main
delete_query view should be catching a "pk" field
2024-07-22 11:01:21 +01:00
Christopher Broderick
116e685a65
Merge branch 'main' into main 2024-07-22 10:56:22 +01:00
Christopher Broderick
c6463f2551
Merge pull request #1197 from django-helpdesk/fix-rust-calling
Try to fix CI with new rust check
2024-07-22 10:55:50 +01:00
Benbb96
2d3e7eac13
fix(ci): rust check 2024-07-18 00:06:41 +02:00
Sam Splunks
df46695bb1 Moving python time_spent calculation to database aggregation 2024-07-10 10:54:17 +00:00
Sam Splunks
f7c697ade5 delete_query view is expecting a pk field 2024-07-09 14:04:28 +00:00
Christopher Broderick
f883868361
Merge pull request #1189 from jorge-leon/attachment-enable-setting
Attachment enable setting
2024-06-15 14:32:51 +01:00
Georg Lehner
66ba2d076a
Merge branch 'django-helpdesk:main' into attachment-enable-setting 2024-06-14 18:33:19 +02:00
Christopher Broderick
437287edbc
Merge pull request #1185 from jorge-leon/reverse-dependencies
Add list of 'parent' tickets to ticket description table, solves #1184
2024-06-14 17:29:02 +01:00
Georg Lehner
9228c7fbd0 Fix Fix: correct variable name and test 2024-06-12 15:04:23 +02:00
Georg Lehner
80ae20d1ac Fix: Saving tickets with attachments disabled raises error
Exclude code where followups add their attachments to a new ticket.
Make helper function _attach_files_to_follow_up() more robust.
2024-06-12 14:58:00 +02:00
Georg Lehner
665e4008e7 Cleanup Dependency/Resolves form code 2024-06-10 17:33:08 +02:00
Georg Lehner
0b38f1d5bd Remove superfluous use of Value() in When clause 2024-06-10 17:27:43 +02:00
Georg Lehner
20cd08fe28 Do not show attachments in public tickets if not enabled, fix attachment upload if enabled
Attachments in followups were still shown (if they existed) even if
HELPDESK_ENABLE_ATTACHMENT was set to False.

If attachments were enabled it was not possible to upload them because
the JavaScript code for uploading attachments to public was not loaded
in the template.
2024-06-10 12:47:13 +02:00
Georg Lehner
78cf89ca9b Exclude related JavaScript function from staff Ticket view when attachments are not enabled 2024-06-10 11:24:00 +02:00
Georg Lehner
54864b2c1e Rewrite dependency tickets ordering, using Case annotation 2024-06-10 10:08:07 +02:00
Georg Lehner
ec603347c7 Improve code quality 2024-06-08 22:32:05 +02:00
Georg Lehner
2cb9d382cb Only show open ticket as dependency/parent candidates
It makes no sense to make a ticket depend on an already closed
ticket, or to make a closed ticket depend on another.

The only case I can think of is to create such a relationship in
hindsight for documentation purposes.  This can be implemented by
adding an admin interface or giving the administrator more choices.
2024-06-08 18:49:53 +02:00
Georg Lehner
7bf21685b3 Fix: remove unused and undefined context variable 2024-06-08 12:52:10 +02:00
Georg Lehner
bc764b50c1 Fix: itertools are superseded by NotIn ORM operator 2024-06-08 12:12:56 +02:00
Georg Lehner
25c36a6f5c Restrict ticket selection for dependencies and parents
When adding a dependent or parent ticket, the choice field in the
ticket selection form excludes:

- All existing dependencies of the current ticket.
- All existing parent tickets of the current ticket.
- The current ticket itself.

The first two prevent immediate circular references: A dependency
cannot be a parent and vice versa.  Deeper circular references are
not covered by this: a ticket can still be its own grandchild.

They also prevent current behavior of throwing an `IntegrityException`
when selecting a dependency or parent.

The third one prevents also a quirky behavior: until now, specifying the
ticket itself as parent or dependency just does not save the
dependency and does not issue a warning either.
2024-06-08 12:11:01 +02:00
Georg Lehner
b52ab69c42 Order dependend ticket with NotIn ORM operator instead of itertools 2024-06-08 12:00:43 +02:00
Georg Lehner
3dcbdad638 Fix: helpdesk settings are imported as settings 2024-06-07 18:04:05 +02:00
Georg Lehner
a2f944b475 Enable attachments by default
In order to not break existing django-helpdesk installations
upon upgrade.
2024-06-07 17:58:41 +02:00
Georg Lehner
d3553d9335 Add warning about new default to HELPDESK_ENABLE_ATTACHEMENTS 2024-06-06 16:55:53 +02:00
Georg Lehner
2d5c350f00 Add documentation for the HELPDESK_ENABLE_ATTACHMENTS setting 2024-06-06 16:42:13 +02:00
Georg Lehner
cc1b125d53 Disable email attachment processing and email saving if attachments are not enabled.
Caution: untested
2024-06-06 15:58:27 +02:00
Georg Lehner
dd4c04945a Add HELPDESK_ENABLE_ATTACHMENTS setting and make it show/hide attachment related UI
Default setting is false. This is not backward compatible.
The rationale is: attachments contain most likely sensitive information.
By default they are served without access control.  Currently there is
no simple feature to configure access control.  To avoid unintentional
disclosure attachments should be an opt in: you have been warned.
2024-06-06 15:47:50 +02:00
Georg Lehner
887483a6d6 Remove status from ticket heading, since it is now shown in the description table 2024-06-06 00:34:28 +02:00
Georg Lehner
d7afcb6578 Reformat Resolves/Depends lists into tables. Allow adding/deleting of parent tickets 2024-06-06 00:28:36 +02:00
Georg Lehner
5b2441b994 Add list of 'parent' tickets to ticket description table
'parent' tickets are all tickets on which the current ticket depends.

The parent tickets can only be resolved if the current tickets is closed.

This patch splits the current |Dependencies|Total time spent| table row
in two rows.  The table layout is now

    |Status |Total time spent|
    |Depends|Resolves        |

Status and Total time only have one line.  Status was chosen as filler
field, because I believe it should be moved out of the title to reduce
visual distraction.

Depends and Resolve will have a variable number of lines and are closely
related.

Depends was chosen instead of "Dependencies", to indicate directly what
the listed tickets do and because it is shorter.

The commit also simplifies the wording of the tooltips and harmonizes with
the other tooltips in the same table: It indicates directly what happens
when the button is clicked (or touched!).

Notes:

- The complete row could be omitted if now Depends or Resolves exists for
  a ticket.  This would reduce visual distraction but was not implemented
  because it could lead to misled expectations.
- No button for removing/adding parent tickets was added. If considered
  important this can be added any time.  Currently a user has to go to
  the parent ticket and delete the dependency (easy) or remember the ticket
  id/title, search for the parent and add the ticket as dependency (difficult)
2024-05-17 12:34:40 +02:00
Christopher Broderick
c77bb30035
Merge pull request #1182 from jorge-leon/graceful-datatable-errors
Pop up a nice error message when an AJAX request fails. Closes #1179
2024-05-15 09:08:07 +01:00
Georg Lehner
95755125fb Add datatables error message to error pop up 2024-05-14 21:46:18 +02:00
Georg Lehner
25f338cfc5 Pop up a nice error message when an AJAX request fails. 2024-05-11 16:41:01 +02:00
Christopher Broderick
d7b75087dc
Merge pull request #1181 from django-helpdesk/fix-logout
Fix logout in Django 5 with POST action instead of GET
2024-05-09 22:22:45 +01:00
Benbb96
306a01a8b4
add login again button and reformat logged_out.html 2024-05-08 16:25:49 +02:00
Benbb96
ef5a43a3e2
remove unused import 2024-05-08 16:05:22 +02:00
Benbb96
7643e18acc
Explain login/logout redirect settings in documentation 2024-05-08 16:01:26 +02:00
Benbb96
485ac1294c
remove next_page parameter and show how to set LOGOUT_REDIRECT_URL in settings 2024-05-08 15:47:14 +02:00
Benbb96
b1316214c7
replace hardcoded path ../ to reverse_lazy URL 2024-05-07 15:50:51 +02:00
Benbb96
2d561d15c8
fix design on login/logout button when not staff 2024-05-07 15:43:12 +02:00
Benbb96
6fe5f1681f
fix logout in Django 5 with POST action instead of GET 2024-05-07 14:54:05 +02:00
Christopher Broderick
ba9935e792
Merge pull request #1178 from ilikerobots/main
repair pre-set replies broken due to raw url parameter name mismatch
2024-05-06 15:42:12 +01:00
ilikerobots
89ab173034 update raw parameter name to match view 2024-05-03 10:38:17 +03:00
Christopher Broderick
dce3c0c73f
Merge pull request #1173 from django-helpdesk/new_release_1.2.0
Update release number for package creation
2024-04-29 21:27:58 +01:00
Christopher Broderick
6456a1f951
Merge pull request #1161 from timthelion/view_protectors
Add some convenient functions for protecting views in custom installations
2024-04-29 21:26:57 +01:00
Christopher Broderick
a6bb99f1e8
Merge branch 'main' into view_protectors 2024-04-29 21:25:36 +01:00