Commit Graph

4024 Commits

Author SHA1 Message Date
Oskar Hahn
9eef4da21c remove old client 2018-10-25 16:04:28 +02:00
Maximilian Krambach
126a16b553 Implement tags 2018-10-24 11:23:34 +02:00
Oskar Hahn
5b5d0e395a new autoupdate format 2018-10-19 07:35:59 +02:00
Oskar Hahn
bc442210fb Improve redis cache
* delete only keys with prefix
* Make redis_provider atomic with transactions and lua scripts
* improve lock
* generate change_id in redis to make sure it is uniq
* use miliseconds as starttime
* add argument use max_change_id to get_{full|resticted}_data
2018-10-15 23:37:26 +02:00
Oskar Hahn
b1fa3ca263 Merge remote-tracking branch 'upstream/OpenSlides-3' into new-master 2018-10-13 07:38:09 +02:00
FinnStutzenstein
1e4eacecfd New superadmin group 2018-10-12 07:58:18 +02:00
FinnStutzenstein
f7d392f1fc New motion features
- Added weight and sort_parent fields to the motion model
- Added motion sort view (adapted from agenda)
- Added statute-paragraph model and tests for it
- Added statute_paragraph foreign key to the motion model
- Created migrations for sorting and statute-paragraph
2018-10-12 07:15:58 +02:00
FinnStutzenstein
b1ea59ea28 Motion comment section list 2018-10-09 13:57:55 +02:00
Emanuel Schütze
d4f9da9cdb
Merge pull request #3889 from FinnStutzenstein/fixImagePlugin
Fix image plugin
2018-09-24 13:06:50 +02:00
Oskar Hahn
9af6bf1606 ensures test on startup 2018-09-23 16:57:49 +02:00
FinnStutzenstein
eebd7a1fce Fix image plugin 2018-09-20 13:06:02 +02:00
Emanuel Schütze
dca94333e8 Update version to 2.3.1-dev 2018-09-20 09:27:03 +02:00
Emanuel Schütze
772c032357 Release 2.3 2018-09-20 09:24:34 +02:00
Emanuel Schütze
7b9d84dabd
Merge pull request #3886 from FinnStutzenstein/export-filename
Fixed filenames in motion export dialog
2018-09-18 19:37:02 +02:00
FinnStutzenstein
2815d5f62c Fixed filenames in motion export dialog 2018-09-18 15:03:55 +02:00
Emanuel Schütze
7a9921a85f Updated German translations. 2018-09-18 10:42:57 +02:00
FinnStutzenstein
f17951f363 Little fixes for current master (fixes #3883, fixes #3882, fixes #3880) 2018-09-18 09:49:40 +02:00
FinnStutzenstein
180dedfc38 Moved the collection of config variables before the generation of angular constants 2018-09-18 07:50:33 +02:00
FinnStutzenstein
1ee76de417 Handling of titles, projection and content objects in items
Restructure the titles for motion, motion-block, assignment and topic.
Less possibilities for more clear code. Added mote base models enabling
functionalities of projection and being a content object for items
2018-09-14 08:36:35 +02:00
FinnStutzenstein
3e0618063b Routing for the privacy policy and legal notice.
Save those values in a new service, that will also watch for changes in
config variables. UI is not good; this can be done later

Share legal notice and privacy policy

Created some containers for them
2018-09-10 11:39:46 +02:00
FinnStutzenstein
f1ddd16dc6 Motion rework
- remove motion version
- migrations for versions and change recommendations
- Redone motion comments. Wording changed from comment fields to comment
  sections
- fixed test order, tests are not atomic
- introduce get_group_model. Just use OpenSlides Groups and not the
django's ones.
2018-09-10 09:00:55 +02:00
Finn Stutzenstein
befbaba525
Merge pull request #3853 from FinnStutzenstein/workflowId
Expose the workflow id during motion serialization
2018-09-07 11:12:07 +02:00
Jochen Saalfeld
b5366ea90f
fixing pytest version and continue if db not available 2018-09-07 10:39:16 +02:00
FinnStutzenstein
9226874010 Expose the workflow id during motion serialization 2018-09-06 13:39:16 +02:00
FinnStutzenstein
ea71d0a942 moved privacy policy to users, adapt client 2018-09-04 08:57:54 +02:00
Oskar Hahn
732de97ec2 Make Consumer real async again 2018-09-04 08:57:50 +02:00
FinnStutzenstein
8adaa6118a Angular constants via WebSocket
- new format for constants on the server
- adaptions for the old client
2018-09-04 08:57:11 +02:00
Emanuel Schütze
865940bd12 Update version to 2.3b2-dev 2018-08-30 15:24:42 +02:00
Emanuel Schütze
90370ea628 Release 2.3b1 2018-08-30 15:24:42 +02:00
Emanuel Schütze
48537dbfbf Updated all translations. 2018-08-30 15:08:51 +02:00
Emanuel Schütze
6bae5cf87a Fixed translation strings and permission check. Updated Changelog. 2018-08-30 15:05:08 +02:00
Emanuel Schütze
1dd1a4bac8
Merge pull request #3832 from FinnStutzenstein/hideSortInAgenda
Hide Sort button in agenda (closes #3812)
2018-08-27 12:14:26 +02:00
FinnStutzenstein
d1b52a9302 Hide Sort button in agenda (closes #3812) 2018-08-27 11:24:52 +02:00
Emanuel Schütze
702bc67334 Change default for motion export dialog. 2018-08-24 16:14:01 +02:00
Emanuel Schütze
6c2fbf7389 Enable/disable category in motion PDF. 2018-08-24 14:00:53 +02:00
Oskar Hahn
dc7ca5e2c4 fix empty values in rest 2018-08-24 12:14:02 +02:00
Oskar Hahn
401e7821ae Merge remote-tracking branch 'upstream/master' into OpenSlides-3 2018-08-23 21:31:24 +02:00
Norman Jäckel
7dd7bb1b8d
Merge pull request #3807 from ostcar/websocket_protocol
Add a protocol for websocket
2018-08-23 21:15:48 +02:00
Norman Jäckel
39e27c740e
Merge pull request #3817 from ostcar/extra_requirements
Add an easier way to install big_mode
2018-08-23 21:05:31 +02:00
FinnStutzenstein
22f7d84cae New websocket message format for both clients 2018-08-23 21:02:59 +02:00
Oskar Hahn
fed6d6f435 Add a protocol for websocket
{'type': STRING, 'content': ANY}
2018-08-23 21:02:52 +02:00
Oskar Hahn
d21d7dc49e Add an easier way to install big_mode 2018-08-23 20:58:56 +02:00
Oskar Hahn
aac9dcabf5 drop python 3.5 2018-08-23 17:51:30 +02:00
Emanuel Schütze
96637e18c4
Merge pull request #3804 from normanjaeckel/ChangeCollectStatic
Fixed collectstattic command so that it does not write into openslide…
2018-08-23 17:38:26 +02:00
Emanuel Schütze
7d24066be7 Updated German translations. 2018-08-23 17:20:40 +02:00
Emanuel Schütze
c49eb8bf64
Merge pull request #3808 from FinnStutzenstein/diverses
Layout changes for motion detail view and PDF
2018-08-23 16:49:30 +02:00
FinnStutzenstein
cece35b3a5 Layout changes for motion detail view and PDF 2018-08-23 16:38:12 +02:00
Norman Jäckel
e012589ab0
Merge pull request #3814 from emanuelschuetze/fix3813
Fixed TypeError in Motion and Assignment Slides (Fixed#3813)
2018-08-23 15:48:15 +02:00
Emanuel Schütze
8ed043bbe8
Merge pull request #3806 from normanjaeckel/FixAgenda
Fixed agenda get_restricted_data() if no agenda items exist.
2018-08-23 15:47:34 +02:00
Norman Jäckel
3578d0e850 Fixed collectstattic command so that it does not write into openslides app dir. 2018-08-23 15:47:19 +02:00
Emanuel Schütze
c852f72c20
Merge pull request #3811 from normanjaeckel/ElectionBar
Fixed assignment election bar for votes mode. Fixed #3598.
2018-08-23 15:42:50 +02:00
Emanuel Schütze
0036567f7d Fixed TypeError in Motion and Assignment Slides (Fixed#3813)
in MotionPollDecimalPlaces and AssignmentPollDecimalPlaces
2018-08-23 15:39:15 +02:00
Finn Stutzenstein
172f1ed890
Merge pull request #3810 from emanuelschuetze/workflow-sorting
Fix sorting of states in workflow detail view.
2018-08-23 14:35:04 +02:00
Norman Jäckel
cbd970ba9d Fixed assignment election bar for votes mode. Fixed #3598. 2018-08-23 11:30:46 +02:00
Norman Jäckel
123b7c702b
Merge pull request #3803 from FinnStutzenstein/voting_decimal_places
Support for decimal places in motion and assignment polls
2018-08-23 11:28:26 +02:00
Emanuel Schütze
2cd8262025 Fix sorting of states in workflow detail view. 2018-08-23 11:12:53 +02:00
Norman Jäckel
dc4fd6a93e Fixed agenda get_restricted_data() if no agenda items exist. 2018-08-23 09:48:47 +02:00
Emanuel Schütze
768c97e89c
Merge pull request #3785 from FinnStutzenstein/no-changeable-first-state
Do not allow changing a workflow's first state (closes #3778)
2018-08-23 09:24:29 +02:00
FinnStutzenstein
9c1290ee0b Do not allow changing a workflow's first state (closes #3778) 2018-08-23 09:09:18 +02:00
FinnStutzenstein
9bac396b67 Support for decimal places in motion and assignment polls 2018-08-23 08:53:59 +02:00
Oskar Hahn
d09086f08c
Merge pull request #3798 from ostcar/url-schema
New url schema
2018-08-22 22:14:05 +02:00
Oskar Hahn
e5dd857e87 New url schema 2018-08-22 22:05:06 +02:00
Norman Jäckel
27e0564a23 Changed default agenda type for new topics. 2018-08-22 17:27:21 +02:00
Norman Jäckel
48a2a3fe53 Fixed settings creation for windows. 2018-08-22 16:51:46 +02:00
Norman Jäckel
07ffb3b6c5 Fixed settings creation for windows. 2018-08-22 12:39:59 +02:00
Oskar Hahn
10b3bb6497 Update to channels 2
* geis does not work with channels2 and never will be (it has to be python now)
* pytest
* rewrote cache system
* use username instead of pk for admin user in tests
2018-08-22 06:30:11 +02:00
Emanuel Schütze
6bbaf39bce Updated German translations. 2018-08-17 09:13:09 +02:00
FinnStutzenstein
65ec9cbf73 Layout changes, config for enabling amendments in motions table
- fixed update form bug, explicit link to parent motion
- br space in pdf and motion-text (restrict to linenumbermode none)
2018-08-17 08:38:41 +02:00
Emanuel Schütze
4605d4429c
Merge pull request #3790 from FinnStutzenstein/hidden-items
New item type internal.
2018-08-17 08:24:07 +02:00
FinnStutzenstein
1a17862d6b New item type internal.
The old hidden type was used as internal, so everything is changed to
not be shown if the item is internal. hidden is "new", and actually
behaves as hidden now.
2018-08-16 15:28:30 +02:00
Emanuel Schütze
32e20aa670
Merge pull request #3789 from FinnStutzenstein/redis-session
Use newer version of django-redis-sessions, new settings format
2018-08-15 11:45:52 +02:00
FinnStutzenstein
78dab97673 Use newer version of django-redis-sessions, new settings format 2018-08-15 11:37:20 +02:00
Emanuel Schütze
ab587b48cd Updated German translations. 2018-08-14 15:33:33 +02:00
Emanuel Schütze
4b6936572f
Merge pull request #3781 from FinnStutzenstein/modified-final-version
New temporal field for editing the final version of a motion.
2018-08-14 14:24:08 +02:00
FinnStutzenstein
e073084f74 New temporal field for editing the final version of a motion. 2018-08-14 14:15:11 +02:00
FinnStutzenstein
9f24ec559b Added missing templatehook for the voting plugin 2018-08-14 13:26:54 +02:00
Emanuel Schütze
e9ad439cdd
Merge pull request #3774 from FinnStutzenstein/abstain-no-for-assignment-votes
Added general abstain/no fields for assignments. Used in votes mode.
2018-08-14 09:34:37 +02:00
Oskar Hahn
92a39a3fc6 support python 3.7
fix new pep8 stype
2018-08-08 21:46:56 +02:00
Oskar Hahn
acceeff8f8 * Update python requirements
* drop python 3.4
2018-08-07 15:23:11 +02:00
FinnStutzenstein
bb654f7517 Added general abstain/no fields for assignments. Used in votes mode. 2018-07-28 12:29:26 +02:00
Sean Engelhardt
6e4665041e Added page numbers and categories in TOC of motion PDF. 2018-07-13 14:26:29 +02:00
Emanuel Schütze
732f5e7327 Updated German translations. 2018-07-13 13:47:13 +02:00
FinnStutzenstein
56cdfebe85 Added migrations for the available logos and move old values to new ones, remove old entries in the database 2018-07-13 13:20:22 +02:00
Sean Engelhardt
a6ed54eb92 Added new config options to show logos on the right side in motion PDF. 2018-07-13 13:19:55 +02:00
FinnStutzenstein
9e4cafd0f0 Custom workflows and states:
- Added new workflow list view
 - Added state table for each workflow
 - Added new StateViewSet to handle states of workflows
2018-07-13 10:29:06 +02:00
FinnStutzenstein
26d168110f make the privacy policy available for non logged in users (closes #3757) 2018-06-25 17:28:24 +02:00
Emanuel Schütze
8dca3b5321 Updated German translations.
Changed some strings in source.
Fixed some regressions introduces by new sort-submitters and amendment features.
2018-06-14 13:08:52 +02:00
Emanuel Schütze
5a5475299c
Merge pull request #3637 from CatoTH/Paragraph-Based-Amendments
Paragraph based amendments / Diff
2018-06-14 11:11:39 +02:00
Tobias Hößl
d9c08b65b7 New Feature: Paragraph based amendments
With new amendment list table:
- Removed title from table, leadmotion can be selected now
- rename the new list, added the export dialog, multiselect actions and supporter badge in the amendment list view
- Moved collission detection to own factory, compute collissions in the amendment list view
- Delegates can now enter paragraph based amendments
- new amendment list as pdf/csv export
- improved caching of amendments
- Parse styles in headings and removed all double-quotes
- Performance improvements:
  * Removed ng-mouseover/mouseleave actions in amendment-list
  * disable collission detection in amendment list view.
  * Improved state/recommendation dropdown in amendment list.
2018-06-14 11:01:03 +02:00
FinnStutzenstein
66c72f4345 Fixed remarks (closes #3760) 2018-06-14 07:24:55 +02:00
FinnStutzenstein
b0a42e19e1 Sort submitters 2018-06-13 14:16:25 +02:00
Emanuel Schütze
a5a8a1371e
Merge pull request #3748 from FinnStutzenstein/scrollProjectorToLine
Scroll projector to a given line
2018-06-12 13:31:19 +02:00
Emanuel Schütze
97bf5adc6a
Merge pull request #3749 from FinnStutzenstein/motionNumberingException
Removed the ValidationError in motion numbering (fixed #3680)
2018-06-12 13:06:29 +02:00
FinnStutzenstein
252ba02e86 Scroll projector to a given line 2018-06-12 13:02:22 +02:00
Emanuel Schütze
2c1ce6ff37 Update version to 2.3-dev. 2018-06-06 14:23:35 +02:00
Emanuel Schütze
8d64c586bc Release 2.2 2018-06-06 14:16:46 +02:00
Emanuel Schütze
407b640f80
Merge pull request #3740 from FinnStutzenstein/voting-plugin
Changes for the voting plugin and usability improvements
2018-05-29 15:02:37 +02:00
Emanuel Schütze
e4e6becf02 Updated all translations for 2.2 release. 2018-05-23 16:43:17 +02:00
Emanuel Schütze
1b321fb680
Merge pull request #3750 from FinnStutzenstein/assignmentPollInputs
no negative votes and better scrolling in forms with number inputs (c…
2018-05-23 15:58:01 +02:00
Jochen Saalfeld
9e66f05603
adding working privacy policy
In order to archive GDPR compliance we need a privacy policy.
2018-05-23 15:13:05 +02:00
FinnStutzenstein
e4735b9437 no negative votes and better scrolling in forms with number inputs (closes #3739) 2018-05-22 14:30:25 +02:00
FinnStutzenstein
5833393268 Messaging docstring and user callback
only hide votes for unpublished polls
2018-05-22 09:20:19 +02:00
FinnStutzenstein
562d620851 Removed the ValidationError in motion numbering (fixed #3680) 2018-05-22 07:44:21 +02:00
Emanuel Schütze
682a5eea5a Minor template improvements and fixes
- Fix back-to-motion-block-link in item detail view.
- Show projector name in window title.
- Fix sorting for motion blocks and categories in motion list view.
- Fix missing permission check for editing motion block.
- Improved style of rejected CR in motionn detail view.
2018-05-16 17:50:24 +02:00
Emanuel Schütze
8d7bcedd32
Merge pull request #3746 from FinnStutzenstein/pdfImageErrors
Throw errors, if the pds generation fails, if an image could not be l…
2018-05-16 17:24:52 +02:00
FinnStutzenstein
ecb76fd888 Throw errors if pdf generation fails, if an image could not be loaded (fixes #3730) 2018-05-16 17:06:42 +02:00
FinnStutzenstein
185055d604 Autoupdate with affected users on group delete (fixes #3455) 2018-05-16 13:03:37 +02:00
Emanuel Schütze
f8df7ddda6
Merge pull request #3742 from FinnStutzenstein/deleteUserChache
Delete restricted data cache on permission changes (closes #3396)
2018-05-16 12:39:40 +02:00
FinnStutzenstein
0fd1cd688b Fixed logic for saving motion comments 2018-05-16 11:54:46 +02:00
FinnStutzenstein
2989024cca Delete restricted data cache on permission changes (closes #3396) 2018-05-16 10:59:00 +02:00
Emanuel Schütze
a7af01b507
Merge pull request #3738 from FinnStutzenstein/moveCode
fixed #3708
2018-05-15 09:35:14 +02:00
FinnStutzenstein
c7a2f5c47c Fixed percentage for special values (fixes #3736), added config to couple the candidates with the list of speakers (closes #3737) 2018-05-11 15:15:53 +02:00
FinnStutzenstein
f1ab2b3afc fixed #3708 2018-05-09 08:48:37 +02:00
FinnStutzenstein
0a141adbd1 Fixes for the item projection (fixes #3733) 2018-05-04 10:27:39 +02:00
Emanuel Schütze
7b9d8d11a6
Merge pull request #3732 from FinnStutzenstein/MotionProjectorFix
Fixed deleted comment fields
2018-05-04 09:34:08 +02:00
FinnStutzenstein
d189e5bca8 Fixed deleted comment fields 2018-05-03 17:26:47 +02:00
Emanuel Schütze
cb42af7c8b
Merge pull request #3731 from FinnStutzenstein/MotionCommentsInlineEditingFix
Fixed wrong index for inline editors
2018-05-02 20:18:54 +02:00
FinnStutzenstein
902ca96a16 Fixed wrong index for inline editors 2018-05-02 15:35:49 +02:00
Emanuel Schütze
b37bad72ef
Merge pull request #3729 from FinnStutzenstein/pdfImageSize
Fixed parsing of image sizes
2018-05-02 13:53:34 +02:00
FinnStutzenstein
06ddd8ee46 Fixed parsing of image sizes 2018-05-02 13:44:35 +02:00
Emanuel Schütze
cc5a1ea0fe
Merge pull request #3702 from FinnStutzenstein/motionAgendaTitle
new style for motion agenda title
2018-05-02 13:37:44 +02:00
FinnStutzenstein
754040570d New style for motion agenda title and list of speakers
Improved list of speakers slide title:
- h2 subtitle: use always motion identifier only (like in motion slides)
- h1 title: use always "list of speakers" (long motion title not useful
  if an other projector shows the motion slide with full title
  (identifier is enough)
2018-05-02 13:29:59 +02:00
FinnStutzenstein
0224c4287a Fixed stylistic remarks from #3682 (fixes #3709) 2018-05-02 10:13:45 +02:00
Emanuel Schütze
d522e8e308 Updated German translations. 2018-04-25 16:01:59 +02:00
Emanuel Schütze
bf27b6f016
Merge pull request #3723 from emanuelschuetze/fixes
Template improvements
2018-04-25 16:01:21 +02:00
Emanuel Schütze
ef2a22fefe Template improvements
- Show item duration and done for normal users correctly.
- Fixed CSS class for countdown warning time.
- Improved projector manage button layout.
- Updated fontawsome icons to 4.7.
- Fixed iframe width/height to show border correctly.
- Improved 'close list of speakers' button.
- Improved 'clear all filter' icons.
- Fixed election pdf if candidate was deleted.
- Moved ban icon for internal icons.
- Improved edit projector form. Show simple scaling steps instead of
  width/height resolution.
- Consolidated both agenda item filters.
- Used better sort icon.
- Installed colordialog plugin for ckeditor to select more colors.
- Several css improvements.
2018-04-25 15:47:39 +02:00
Emanuel Schütze
8680d4af85
Merge pull request #3722 from FinnStutzenstein/betterProjectorButton
precalculate projectorchanges in the client
2018-04-25 14:13:52 +02:00
FinnStutzenstein
08045638ab precalculate projectorchanges in the client 2018-04-25 11:08:23 +02:00
Sean Engelhardt
85e329b9b3 add template hook in user div 2018-04-24 11:53:31 +02:00
Emanuel Schütze
231d8de036
Merge pull request #3719 from FinnStutzenstein/changeMediafileProtectionLogicAgain
Changed mediafile protection logic (closes #3707)
2018-04-24 11:48:21 +02:00
Emanuel Schütze
334a6880b5
Merge pull request #3718 from FinnStutzenstein/autoupdateAmendments
Watch for changes of amendments in the motion detail view.
2018-04-24 11:38:56 +02:00
Emanuel Schütze
15d8a5fbc0
Merge pull request #3717 from FinnStutzenstein/motionProjectorRequirements
Added motions from state and recommendation to the projector requirem…
2018-04-24 11:33:48 +02:00
FinnStutzenstein
2220856e5d Changed mediafile protection logic (closes #3707) 2018-04-24 11:32:17 +02:00
FinnStutzenstein
07f3880ad3 Watch for changes of amendments in the motion detail view. 2018-04-24 11:27:33 +02:00
FinnStutzenstein
d4a9751474 Added motions from state and recommendation to the projector requirements 2018-04-24 11:22:24 +02:00
FinnStutzenstein
83edfc2af0 Remove projector from projector-all 2018-04-24 11:20:15 +02:00
FinnStutzenstein
10038b782f One request for each projection. Added some validation for clear_elements and prune_elements 2018-04-24 10:23:28 +02:00
Emanuel Schütze
03b17837ed Update version to 2.2b4-dev 2018-04-13 16:08:01 +02:00
Emanuel Schütze
a0ac02d391 Release 2.2b3 2018-04-13 16:07:33 +02:00
Emanuel Schütze
13921da15b Updated German translations. 2018-04-13 15:21:26 +02:00
Emanuel Schütze
b6ebc78e85
Merge pull request #3682 from FinnStutzenstein/voting-plugin
Changes for the voting plugin
2018-04-13 15:11:48 +02:00
Emanuel Schütze
a6537fb919
Merge pull request #3695 from FinnStutzenstein/fixRemarks
fixed remarks from #3525 (closes #3681)
2018-04-13 15:07:05 +02:00
Emanuel Schütze
11ba5a7c37
Merge pull request #3704 from emanuelschuetze/fixRecommendationExtensionField
Add missing permission check for recommendation extension field.
2018-04-13 14:21:47 +02:00
Emanuel Schütze
b95a76493d
Merge pull request #3697 from FinnStutzenstein/protectNumbering
Protect numbering of the agenda
2018-04-13 14:21:06 +02:00
Emanuel Schütze
4a2410a596
Merge pull request #3700 from FinnStutzenstein/titleInMotionBlockSlide
Added a short title in the motion block slide
2018-04-13 14:20:31 +02:00
FinnStutzenstein
595bcab845 Added shortened motion title to motion block slide. 2018-04-13 10:13:17 +02:00
FinnStutzenstein
fa5b81dad8 Protect numbering of the agenda 2018-04-13 10:09:22 +02:00
Emanuel Schütze
71b3cc181f
Merge pull request #3698 from FinnStutzenstein/topPagination
Proposal for top pagenavigation
2018-04-13 10:06:01 +02:00
Emanuel Schütze
22975b75e5
Merge pull request #3701 from FinnStutzenstein/agendaConfigHiddenItems
Config variable to hide internal items on projector
2018-04-13 10:04:54 +02:00
Emanuel Schütze
384a7869ec
Merge pull request #3699 from FinnStutzenstein/attachmentsOrder
Order attachments by title
2018-04-13 10:00:48 +02:00