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.
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.
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.
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.
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.
'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)