This repository has been archived by the owner on May 29, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
CHANGES.txt
1301 lines (1152 loc) · 54.3 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1.18.0
======
This release needs a formbar version >= 1.2.0.
Changes:
- Form initialisation changed. Now the timezone parameter is passed when
initialising a new form. This information is needed to render datetimes in
correct local time.
- Default format of dates and datetimes changed from short to medium display
(e.g 11.10.12 > 11.10.1912) to make. This fixes an error on sorting dates
with the moment.js library which otherwise must guess if a date is in 1900
or 2000.
- Remove documentation of unimplemented export options --include-relations
and --fields.
Bugfix:
- Support dates in blob forms. When loading the json from the database we will
now try to convert the date ("YYYY-MM-DD") into a python date object.
- Always persist UUIDs of modul items instead of generating new UUIDs for
each export.
1.17.1
======
Improvements:
- Do not start the server in case the configured anonymous user is
misconfigured and can not be found. Before the server exists hard with an
exception.
- Improve error handling in case of non existing module names in context of
"ringo-admin db" command.
- Improve error handling in case of invalid field names in filters in context of
"ringo-admin savedata" command.
- Update moment.js to 2.18.1
- Fixed sorting of Baselists. Sorting on model items is now done on its string
representation.
New:
- Added "app.readmode" configuration. When set to True, the application will
open items from overviews and Listings in readmode. Otherwise the
application will check the permissions of the user and opens the item in
update mode if the user has sufficient permissions.
"ringo-admin savadata" command.
1.17.0
======
Incompatible change in Ringo. This will need a database update to your application!
To update your applications database please ringo/alembic/versions/4b4d1358de99_.py
- Added new "link" permission. The permission to link items in the database is
not explicit set. Prior behavior was that all items which are allowed to
read can also be linked. This is often true, but since we added an anonymous
role there are often the need to be more explicit on this permission.
- Added "admin" attribute to Action items. This attribute makes it possible to
define actions as admin actions. A admin action is excluded from further
checks of ownership or group checks. In this way the admin flag behaves in
the same way as the admin flag which can be used on roles which simply means
that all actions related to this role become admin actions.
Introduced RingoRequest object. The object is available as "request.ringo" in
the current request and will become the central place to access request
related attribute in context of the Ringo application. The object provides an
API to make getting often used values more easy.
- Started to move getting certain values from the request into the
request.ringo object:
- Access History: request.ringo.history
- Access Query parameters : request.ringo.params
- Application locale: request.ringo.locale
- Added Featuretoggles through the "request.ringo.feature" object. See
documentation for more details
- Added new configuration var "app.history.ignore" to add URLs which must not
be added to the history.
- Performance improvements on large overviews.
For maximum performance the feature toggle "dev_optimized_list_load"
must be enabled. Please note, that this flag enables a feature
currently under development. It brings massive performance
improvements if the items use standard permissions checks based on
role, uid and gid. This will *not* work if the permissions checks are
overwritten in the model. On default this feature is turned off.
- Fixed translations. Translations where broken in 1.16.x. Took last working
version from 1.15.4 and updated.
- Adds a improved callback mechanism. It allows you to define the execution
time of the callback with in the view. It can be pre or post the actual view
action.
Implemented recursive Import and export based on a configuration file.
- Removed RecursiveExporter and RecursiveRelationExporter. These exporter has
only been used in the ringo_evalulation extension and are now moved in this
extension
- Add --filter option to the CLI "ringo savedata" command to allow
filtering of what should be exported.
- Add --export-config option to the CLI "ringo savedata" command to allow
recursive exports.
1.16.2
======
Bugfix release. Restore old behaviour of dirty form checks.
Small performance improvements on rendering large overview lists.
1.16.1
======
This updated includes an optional DB Upgrade to add a UNIQUE constraint on
some NM tables. This helps to ensure data integrity of the application.
However this update is not mandatory and can be applied later.
- Added unique constraints on nm_user_roles, nm_user_usergroups and
nm_action_roles table.
- Added app.locale config var to enforce locale setting of the application.
- Added additional attribute to configure the action called when clicking on a
item in the Listingfieldrenderer.
- Improved documentation
1.16.0
======
- Added new config vars for application to allow better customisation
(branding) of applications:
* app.logo
* app.customstatic
See documentation for more details.
- Allow multiple search filters in overview!
- Improved documentation
- Fix #16 Do not save "addrelation" paramenter in session
- Fix #33 Set relations on creation before saving the item to prevent
- Fix #35 Added Json Datatype for columns violation of NOT NULL contraints.
- Added `strict` flag to get_values method. Set this to False to suppress
error logging in case a attribute can not be found.
- Removed wrong "login logging" if a user changes his password.
1.15.4
======
- Added (default) option to define the loadkey on import to the config.
- Added missing adding to the db session while import (Only in some
circumstances, unknown which exactly). Seems so be forgotten.
At least tests shows that this does not work otherwise.
1.15.3
======
- Bugfix. Added missing datatype attribute in dropdown fields.
1.15.2
======
- Removed wrong "login logging" if a user changes his password.
1.15.1
======
- Added loginname to emails when registering a new account.
1.15.0
======
- Bugfix for "app.mode" config option. App mode was broken for all modes
execept "testing" because the test db request was accessed in all cases even
if its not present
- Changed API of importer. Removed "use_uuid" attribute. You must now provide
the key which is used to load items from the database using the "load_key"
attribute which defaults to "uuid".
- Added "renderer" config option to the overview configuration. This lets you
set a custom renderer for a column.
- Added "hidden" and "searchable" configuration options to the tableconfig.
This allows to define which field are searchable. Can be combined to make
hiddenfields searchable.
1.14.0
======
- Rewrite of the documentation.
- Fixed issue21 (https://github.com/ringo-framework/ringo/issues/21). Enabled
sorting config in Listingfieldrenderer.
- Expand values from checkboxes too.
- Added XLSX Export.
- Introduced special suffix `__e_x_p_a_n_d` for attributes which can be used to
access the expanded value of the attribute as alternative to the call of
get_value. This is needed because it is not always possible to call the
get_value method. Example: getattr(obj, 'foo__e_x_p_a_n_d') will return the
expanded value of the `foo` attribute.
- Removed ODF-Converter from Ringo core. It is now part of the
ringo_printtemplate extensions as this is the only place where it is
actually used.
- #5 Show info dialog on circualr dependency error on deletion
- #11 Check uniqueness of name when on creating and update of roles.
- #12 With fix for #5 the admin user can not delete himself anymore, because
of handling of circular dependency.
- #14 Make name field of modules readonly. Field is internal and not meant to
be editable.
- #19 Fixed removing permissions (in general fixed removing items from
nm-relations.)
- Added "button" layout for the Statefieldrenderer.
- Handle "Save and proceed" button (New feature in formbar).
- Added StaticListRenderer. Can be used to render simple static overviews of
items.
- On user registration the password strength is now checked. Password must be
at least 12 chars long und need to have 2 non chars.
- Add option to define rolespecific descriptions of the state.
- Add option to configure a callback after a user has authenticated with the
application. This callback can be used to cancel the authentification or to
further actions after the user logs in.
- Added sorting icons for datatables.
-
1.13.3
======
Bugfix release. Fixes serious problem handling addrelations based on the
session variable. This error may cause wrong relations between items.
1.13
====
- Fixes in scaffold. Improve default MANIFEST and include more files. Make
README a RST-File
- Internal UUID field is now 36 chars long. UUID is now stored as defined in
RFC4122. Please note that existing UUIDs are not converted. You can convert
exitsing UUIDs by using the "ringo-admin db resetuuid" command.
- Fixed #19 (https://github.com/ringo-framework/ringo/issues/19)
- Let users delete their own account. You can define the behavior to items
defined by the user by setting the _owner_cascades class variable with in
the models to e.g configure to delete all items which are owned by the item
to. On default users can only delete their account if the do now own any
items anymore.
- Implemented "roles" config variable for columns in table configs. If
defined columns are only visible to users who have one of the
configured roles.
- Added "target" attribute to the Linkfieldrenderer.
1.12
====
- Be more tolerant in imports. Only log in case the import includes fields
which are not part of the model.
- Added config varibables to define default roles and groups on user
registration.
- Added config variable "layout.show_contextmenu" to configure the visibility
of the context menu.
- Improve result page after a user register a new user account.
- Improve result page after a user request a passwort reset.
1.11.2
======
- Small performance improvement. Added option to enable caching of the
form configuration. This will prevent the application to reload the
configuration on every request which is expensive. This is usefull for
production envirionments as the form will not change here. However it is not
recomended in development mode.
Please refer to the documentation to see how to enable form caching.
- Fixed reraising exception withing general_exception view. Further only use
this view in testing mode.
- Render title tooltips in table header of overviews
- Make registration and activation of users over the webinterface work again. This means
new user can register themself using the webinterface if registration is
enabled.
- Added scaffolds to the MANIFEST.in file. Has been missing.
- Fixed bug which causes exceptions in testcases because new created and
loaded items in different Sqlachemy sessions. Use current db session from
request when invoking the load method of a factory to enforce all items are
attached to the same session.
- Added external requirements.txt file for scaffolds.
- Support DATABASE_URL envirionment variable. If set than this variable will
be used to connect to the database. Eg: postgres://@/ringo
1.11.1
======
Bugfixrelease
- Reraise origin exception (including stacktrace) in case of errors in global
error view to allow better debugging of errors. The origin stackstrace was
hidden since the last version which introduces a global error view. This
error view hides the origin traceback.
1.11.0
======
- Tests are now based on pytest. Removed tests based on the package "behave".
Ringo now requires a package pytest-ringo which provides some helper classes
to make testing more easy. Further the tests now support rollbacks.
- Changed behaviour how Ringo extensions are registered on application
startup. Ringo now only shows a short warning on application start if a new
added or removed extension is detected. It does not ask the user if ringo
should register the extension automatically anymore which make the startup
more robust on servers with no active terminal (e.g starting as WSGI).
Adding or removing extensions in normale usage should be added or removed by
migration scripts.
- Added "ringo-admin app add-extension|remove-extension" command to add
or remove the initial modul and action entries during development.
- Improved documentation on how to add extensions in the application.
1.10.5
======
- Show info dialog at the top to the form in case the validation fails.
This info has been added because users reported data loss because of
formbar/ringo default behaviour of not saving anything in case of
errors. Users seems to expect that the valid part of the data has been
saved. This info should make the user aware of the fact that nothing
has been saved in case of errors
1.10.4
======
Bugfixrelease
- Only log validation errors in DEBUG loglevel.
- Fixed changed field names in user registration.
- Fixed test cases
1.10.3
======
Bugfixrelease
- Fixed bug (Introduced with 1.10.2) when encoding values in GET params. Ringo
uses a special notation for encoding values in the URL as GET param in the
`values` key. This method failed for values containing non ASCII values.
1.10.2
======
Maintenance and Bugfixrelease
- Cleanup after move to Github:
- Removed .coveragerc. Not using coverage at the moment.
- Removed .hgflow. Not using the hg anymore
- Removed .hgignore. Not using the hg anymore
- Removed .tx. Currently not using Transifex for translations.
- Changed links in Documentation and README to refer to Github now.
- Do not log that we are calling get_current_request. This is a long standing
design flaw in Ringo but it does not cause any known problems yet and it is
unlikly to change in the near future. So i replaced the logging with a
"fixme" comment.
- Log "errors" while resolving dot separated values in lists only in the debug
log (was error) in _resolve_attribute. As this might be a sign of an
missconfiguration it is actually handled in the function so we do not log an
error message but give a hint in in the logging in development.
- Log failing CSRF token checks as warning.
- Using encode_values to encode the value for the values attribut in GET
params now returns a urlencoded value. This results in the values will be
double encoded. Added decode_values helper method which can decode
urlencoded values back into a python dictionary. WARNING: If you are using
the values GET param in your application, than you may want to adapt your
code.
- Added/Improved authentification check in setstanding and changepassword
method by adding missing checks and more comments.
- Make fields for the profile while user creation a logical field which is not
stored in the datamodel. This prevents warning messages.
- Make field 'retype_password' a logical field which is not stored in the
datamodel. This prevents warning messages
1.10.1
======
Bugfixrelease
- Updated translations.
- Fixed bug that set the display variable wrong (uses str_repr instead) when
registering a extension.
- Added compatibility mode regading Ringos behaviour on adding "s" to the
modul names when registering modules. The name of the modul of the extension
is defined in the extension itself and should be taken as it is on default.
However. Ringo tries also load the modul by adding an "s" to be compatible
with older versions.
- Changed warning message on application startup when Ringo notices that there
is a extenstion which needs to be registered. Fixed showing name of the
extension.
- Fix scaffold for extensions. Handle case that the user cancel the automatic
registering of the modul.
- Refactored the importer code in ringo/scripts/db.py and make the code better
reusable for other commands.
1.10.0
======
* The behavior of overviews using the Datatable JS library can now be
configured with the JSON table configurations too. Formerly only the columns
can be configured. Now other aspects like, filtering, sorting, paginating
etc. You can also define your own custom filters.
The configuration will be generated on the fly based on the JSON config when
rendering the overview. This generated configuration will replace the static
predefined datatable configurations found in the init.js.
* Added datatable-moment.js plugin to allow sorting datatable tables based on
datefields.
1.9.1
=====
Bugfixrelease
- Fix internal list renderer and handle case if current user has no
permissions at all. Then no links will be rendered.
- Fix has_role method. Handle case if current user is None.
1.9
===
- Log login attemps. Each successfull or failed login will now be saved in a
table called "user_logins".
- Show info on last successful and last failed login on the index page of the
application. Additionally show a warning if there have been more than 5
failed logins since the last successful login.
This feature need to be enabled in the ini file. See documentation for more
details.
1.8
===
- Implemented session timer widget. The widget shows the remaining time in the
session before the autologout will be triggered.
The widget needs to be enabled in the .ini file. See documentation for more
details.
- Dogpile caching for SQL need to be enabled explicit now.
- Enhanced breadcrum feature. Allow to define additional actions which should
be displayed in the breadcrumbs beside the default actions.
- Changed Mailer. The Subject of the Mails do not include a prepended name of the
application anymore.
1.7
===
- Ringo no longer does automatic extension registering on server
startup. Registering a new extension often will write changes to the
database. This is dangerous as this will potentially lead into
failing later migrations. So Ringo will now ask the user what to do on
server start. Default is to abort the registration.
- Added JQuery UI library. This library is currently not used by ringo itself
but it provides basic functionality to other applications.
- Added breadcrumbs feature to Ringo. To be able to use the breadcrumbs you
need to define a sitetree (See lib/sitetree.py for more details.) The
default sitetree of ringo is empty which means no breadcrumbs are shown.
- Added "--format" flag for the "ringo-admin db loaddata" command to define
the format of the inputfile. It is now possible to use the CSV importer
also.
1.6
===
- Add functionallity for users so set their standin. Basically this is adding
and removing other users to the default group of the user. To use this
feature the user needs at least read access to the users he wants to set as
standin.
- Changes favicon format to "ico" to be more compatible with versions of IE.
Improved overwriting of the favicon. The code for favicons are now placed in
favicons.mako which can be overwritten by other applications.
- Fixed handling of bundled delete requests. Two things has been changed:
1. Call the callback before actually deleting it to allow some cleanup.
2. Put the flush of the db operations at the end of the method to
avoid "Closed connection" errors which happens for bundled delete
request after the session has been flushed for the first item.
1.5
===
- Added new configuration variable 'app.mode' to be able to run the
application in a different mode. If set the application will give some
visual indication the the application is in a different mode.
- Changed default rendering of overview pages. Instead of using a
complex overview with advanced search filters e.g Ringo now uses a
simplified overview on default. The behaviour can be changed by either
setting a global `layout.advanced_oveview` configuration varible in
the ini file or per table configuration in the json config of the
table. In the simplified overview features like pagination are currently disabled
regardless what is configured in the table configuration. This may change in
future versions.
- Changed click behaviour in overview tables. Rows are now clickable. With the
change to the simplified overview code the way to select items from the
overview changed also. Links has been removed completely now. Instead the
whole row is clickable.
1.4
===
- Dropped SQLite support because of missing support of data migrations using
alembic. Postgresql is the new default for the DMBS system.
Added psycopg2 as requirement. Actually Sqlite support was broken since
version 1.2.
- Removed fixtures for initial data. Data is now added to the migration
scripts.
- Added new "--format" flag for the "db savadata" command to determine the
export format. Default is JSON.
1.3
===
- Added new configuration varibale (auth.timeout_warning) to configure how
many secods before the autologout happens a warning will be shown.
1.2.2
=====
- BaseFactory now take an optional argument for a request.
- The callback parameter in the views can now take a list of callbacks too.
The handle_callback method is able to handle this correct. Please note that
this mechanism needs some effort of the developer to build this list in the
view function.
- Add additional callback parameter to the create view of users. This allows
other views to overwrite the user create view and add custom callbacks.
1.2.1
=====
- Fixed circular dependency error on migration using alembic after adding
uid and gid fields for users and usergroups which where self referencing.
1.2.0
=====
Beside the major changes which are listed below this version include many
small bugfixes and improvements in the code, usability and performance.
New:
- Add option to provide external validators to the update and create view.
They will be used for additional validation of the form.
- Implemented a simple Warning Dialog if the user leaves of form without
saving the changed data first.
- Added simple spinner which pops up if the loading of the page takes longer
than 400ms.
- Added new "ringo-admin app init" command to initalise a folder containing
a initial config file.
- Password must be at least 12 chars long and include 2 non-letters.
- Added support for loading configurations in case of multi-derived
applications. Added new app.base configuration variable.
- Added new helper command to copie the static files of formbar into to
correct location in ringo.
- Added option to name the authentification cookie. Needed if there are more
than one ringo application on a server.
- Added a warning dialog which shows if the user leaves a form without saving
it before.
- Do permission checks on submitted values for relations on POST requests.
Users are not allowed to set items in relations for which they do not have
read permissions.
- Log changes of uid and gid.
Changed:
- Enabled Mako default HTML escaping for Template rendering globally in ini
file and explicit for form rendering, dialog rendering and listing
rendering. Excluded html escaping for messages and the admin scripts as the
rendered result is not aimed to be displayed in a browser.
- Seperated requirements for testing, installation etc.
- Static files from formbar are only copied on application start if there are
not already the formbar files located in ringo. (Need some work). See
"formbar_static" command.
- Fixed typos in german translation.
- Changed behavior of the warning for a nearing auto logout. Instead of
showing after 95% of the logout time is up it will now be shown 3 Minutes
before the actual logout happens.
- The modules for Roles, Users and Usergroups are now inherited from the
"Owned" mixin class.
- Changed setting the GID for new items. Changed order of determining
the GID (inverse order). First try to get the default_gid from the
modul. If not present use the default_gid from the user. Of no
default_gid is set at all leave the GID of the new item blank.
Removed:
- Removed group role feature. This feature was only rarly used.
- app.url configuration variable which was intended to use in scenarios where
the application is not hosted under the root of the server. See
documentation for deployment for more information on how to setup the
application now.
- Static files of formbar are no longer copied into the static files of ringo
on application start. These files are now dynamically loaded from formbar.
- Invoke command "formbar_static"
1.1.0
=====
New:
- Added "openmodal" option to LinkfieldRenderer
- Added "action" option to LinkfieldRenderer to be able to render other
actions then read and update links.
- Added _get_permission classmethod in the Baseitem class. This class can be
overwritten to implement a custom way to build the ACL for this class and
instances.
- Added info page after login if the account has been disabled.
- Added --path option to load and save fixtures to be able to load alternative
fixtures.
- Implement setting dot-separated values in items.
- Implemented fuzzy search. The search now supports the "~" operator to
trigger a fuzzy search which uses the doublemetaphon as primary algorithm
and falls back to the levenshtein algorithm as secondary it the primary
fails.
Changed:
- Only show "Homepage" on index page if the user is actually logged in.
- Fixed DTListRenderer which was only rarly used and seems to be broken for
some time. The fix onyl gets it working again. There is still work to do to
make it work as the default ListRenderer (Display of Link e.g).
- Allow custom title and body in confirmation dialog.
- Use form parameter when getting the create form. Usefull when you want to
use an alternative form to create an item.
- Hide attribute of ActionItems also affects overview lists.
- "ringo-admin modul add" command does not generate SQL code anymore. Instead
of this it will print out code for the fixtures.
- Make the application base url configurable using the app.url config
parameter.
- Added title tooltips in context menu
- Only save paths in the history and not full qualified URLs.
1.0.0
=====
WARNING! This update is a major upgrade of Ringo which may break your application!
It removes many of the core modules in the application! This will break your
application if you use one of the removed modules. In this case stay with the
0.18.0 version.
The following modules has been removed:
- Removed Log module
- Removed Tags module
- Removed Printtemplate module
- Removed Appointment module
- Removed Comments module
- Removed File module
- Removed News module
- Removed Todo module
The modules will be converted into extensions.
With version 0.16.2 Ringo supports loading extensions to enhance the
functionality of the application. This should be the default way to add
optional features to a Ringo based application. Since the removed modules all
implement general features which are optional to your application and aren't a
basic requirement, they has been removed from the core now. This reduces the
code base and make the core faster and more secure. The later is an important
precondition for post 1.0 goal: Getting much more secure to get ready to build
rock solid web application in Ringo.
New:
- Added Label field to the roles module.
- Added new "fixture" command in ringo-admin to load and save fixtures.
- Added new "revision" db command in ringo admin to generate a new
(autogenerated) alembic migration script.
- Added fixtures for initial data.
- Support german locale in datefields. (Requires new formbar)
- Added showall option for Listfieldrenderer to show all elements regardless
if the user is allowed to read the item. If the user is not allowed to read
the item no link to open the item will be rendererd.
- When creating a new user a usergroup for the new user will be generatated
automatically. The new usergroup will be set as default usergroup for the
new user if no other group is set while creation.
Changed:
- The documentation is now opened in a new browser window instead of opening
it in a modal popup window.
- Modal dialogs can not be closed by clicking in the background.
- Reimplemented openmodal function in listingfields. Has been removed by
accident.
- Changed behaviour of the onlylinked attribute in listingfields. Also removes
the checkboxes now as there is no reason to link/unlink items if only the
linked items should be displayed.
- Improved user language detection in Javascript. Language setting is now
determined by calling a remote function in the Rest API.
- The create method of factories now require a values attribute! It is not
optional but can be empty to get the old behaviour.
- Show
Removed:
- Pre 1.0 Migration scripts removed. The older migrations scripts are now
replaced by one single script. The alembic version of this version is still
the same so that future migration scripts can be applied to old applications
as well.
0.18.0
======
- Added option to open items in a modal window.
- Show spinner when opening items in a modal window.
- Set requirment of formbar to >= 0.9.4.
- Added 'url_prefix' and 'url_scheme' the server configuration in the template
of the ini file in base scaffold. This is usefull if the server is running
behind a reverse proxy.
- Added options to configure the startup of the ODFConverter. On default the
converter is not started! This is a change to the previous behaviour!
- Loading data in ringo-admin command can optinally be done by using the ID of
the item instead of the default UUID. This is usefull for initially loading
data after creating a database in case not all entries in the database have
a UUID.
- Add support for import and and export of NM-relations. (Experimental). To
enable this feature simply add the --include-relations to the savedata
command.
- Improved translations. Added missing calls to translate function at various
places.
- Added experimental support for exanding values for dotted attributes (e.g
relation.value).
- #77 Support alembic >= 0.7.1
This will detect missing foreign keys in your datatable.
Important:
* Please update to a recent version of alembic (currently 0.7.4)
* In case you are using SQLite: Merge
ringo/alembic/versions/46edfd16f379_.py migration script to your migration
scripts and apply it. See
http://alembic.readthedocs.org/en/latest/branches.html for more details on
merging. This will fix errors in the base ringo model.
* Please generate a new migration and apply it. If your missing any foreign
keys they will be generated now. If you are using SQLite please refer to
ringo/alembic/versions/46edfd16f379_.py and see how migration is done for
the base tables.
- #87 Remove alembic_sqlite dependeny.
As alembic now supports some missing operations like add and drop column on
SQLite the helper library alembic_sqlite is not needed anymore.
Important:
* Please search for the string "drop_column_default" and remove this and the
following codeblock from your existing migration files.
0.17.1
======
- Added configuration for transifex
- Fixed error when opening News items.
- Init the form with the correct eval_url. Provide url_prefix when
initialising the form.
- Show hint on errors in formdefinition in formeditor.
- #37: Further fixes.
- #86: Fixed extension specific view mapping.
0.17.0
======
- Improved overview and searching.
- Added clientsided pageination function.
- Added option to add a operators (<, <=, =>, >, ==, !=) to the
search. If the user has provided a opertors the search will use this
operator to do the search instead of a search based on a regular
expression. This is usefull for searches on dates.
- Improved exporting.
- Added RecursiveRelation Exporter.
- Added ODF Converter.
- Insert scaffold of a formdefinition when creating a new form.
- Added support for translations in extensions.
- Status messages are now rendered at the top of the page.
- Added option to set a custom header with logo above the navbar more easily.
- #37: Change ownership only for admins
- #48: Add support to drop columns in SQLite.
- #50: Change behavior of "click-seaerch-filter" in overviews
- #64: Better indication of current edit mode
- #67: No ISE on reading data from the import file. Show error dialog now.
- #68: Installation/Setup fails because of missing files
- #82: Migration of the database for the first module sometimes does not work
- #85: News can't be marked as read
0.16.3
======
- Important: Changed the way how the DBSession is setup. See ringo/__init__.py
file how it is setup now and adapt you application.
- Added commands to generate SQL to restrict and unrestrict access to table of
a modul on database level (only postgres)
- Fixes of loading Form and Overview configuration.
- Add escaping into the renderer
0.16.2
======
- Add function to load ringo extenstions.
- Changed logging in application (Removed and modified)
0.16.1
======
- Allow configuration of caching of pages and static content.
- Add various option to enhance cookie and session security.
- Set headers to enhance security according to
http://ghaandeeonit.tumblr.com/post/65698553805/securing-your-pyramid-application
0.16.0
======
Refactoring of views:
* Seperation of views: Basic views (LCRUDIE) are now located under
views.base.list ... views.base.export. Removed views/base.py.
* Moved REST logic into the corresponding new view modules.
* Moved methods and code from views.json into the new views.api and
views.response modules
* views.api: Modul with method used by the client.
* views.respose: Modul with special Response objects.
* views.request: Modul with methods (handlers) with common logic for various views.
* views.helpers : Modul with helpers methods (getters) to get things like to forms or
information from the request.
Refactoring of model:
* Removal of the request dependecy in the base model.
Refactoring of the setup of the modules.
* Removal of several class methods like get_action_routename and get_item
actions into lib.helpers and others.
Refactoring of lib:
* Splitted large lib/helpers.py into various files under lib/helpers.
* Splitted large lib/renderer.py into various files under lib/renderer.
HOWTO Upgrade:
* The following methods has been moved:
- get_table_config -> lib/table.py
- get_form_config -> lib/form.py
- get_action_routename -> lib/helpers.py
- get_item_list -> model/base.py
- get_item_modul -> lib/helpers.py
Search for these methods in all *.py and *.mako files and adapt the call.
0.15.2
======
* Use app title instead of app name as prefix in subject of notification mails.
* Fix urls in import, export dialogs. Use get_current_route_patch instead of
URL (causes errors with SSL behind an reverse proxy)
* Fix import. Handle NULL values correct for integers.
* Fix handling NULL values in sorting.
* Use new formbar version 0.9.0. Fix some rules.
0.15.1
=======
Refactoring. Cleanup Model and try to get rid of pyramid specific elements
like the request.
* Removed __json__ method. JSON export is now completely handled in the
Exporter (JSONResponse)
New:
* All Mails will have the application name in the subject.
* Add "nolink" Attribute to the DropdownRenderer.
* Added new TagFieldRenderer. Will only show tags which are associated to no
or the items module.
Bugfixes:
* Translate options in dropdown lists.
* Translate headers in newslist.
* Fixed automatic translation in connection with mappings.
* Handle case if an attribute returns a BaseList as selected items in
ListRenderer.
Changes:
* Text in News is now a Textarea.
0.15.0
=======
IMPORTANT: Application will need some work on application initialisation to
stay compatible with this release:
1. rename add_route to setup_modul
2. Move setup of modules into a "includeme" method.
3. Use config.include("appname") to call the includeme method.
4. setup_finished callback is removed.
- Changed the way how the routing is setup on application initialisation. Now
iterate over all available modules from database and configure the routes
for each modul instead hardcoding the configuration including importing the
modules etc.
- Added new ringo-admin command.
- Removed old add-ringo-modul command.
- Automatic logout after a configurable time. Defaults to 1800sec. Some time
before the loggout a warning dialog will be raised.
- Removed deprecated "ignore" filter for selections. Use must use filter now.
- Filter option and items Dropdowns and Listings (Listfield, Comments) on user permissions.
- Changed permission system. Add user roles to the user if the user is member
of the items group. Added group roles additionally.
- Usergroups and Roles now have a description.
- Statemodel of forms only have two states now: Draft, Published
- Added support for Regular expressions in search (again). Now you can
configure if the searchterm is a regular expression or not.
- Show userlisting in roles.
- #47: Added last_login column
- Changed caching. Replaced class based caching partially with request based
caching if possible. Use new Cache object (lib/cache.py) for caching in
general.
0.14.1
=======
- Fixes in the overview
* Sorting on BaseItems is done based on their string representation.
* Filter expressions are now escaped. This allows special chars in the
search. Therefor regular expressions are currently not supported
anymore. See #52.
* Search is now case insesnsitive.
- Fix expandation of value in readonly dropdowns.
- New formencode version 0.8.1
- New registed users will have the user role in addition to the user group now.
- Implement formbar translation.
0.14.0
------
- Update to JQuery to 2.1.1
- Update to Bootstrap 3.1.1
- Changed permission system.
- Add boolean flag to choose if the group roles should be included in the user.get_roles()
- Changed building the principals of the user. Group roles will only be added
to the user if he is actually member of the items group on permission check
- Add option to configure a default group on modul level which will be used on
creation time as group if no special user default group is defined.
- Added information about the users profile to the user form.
- Allow refering to python properties in ListingFieldRenderer.
- Only render link in Dropdownfields if the user is actually allowed to view
or update the linked item.
- Support alternative forms in the update view.
- Fix configuration of default sorting order in tableconfig (Was ignored).
Changed default to asc.
- Add sorting to the ListfieldRenderer based on the tableconfig.
- Show number of items in the header of item overview pages.
- BaseLists are now iterable.
- Add label of the forms modul in the forms overview.
0.13.1
------
- Added option "not specified" to gender field in profile.
- Improved rendering of dropdownfield. Fixed emtpy field if there is no linked
item.
- Worked on importer. Handle uuid values correct on import.
- Fix deleting profiles if a user is gets deleted.
0.13.0
------
- Improved Formbar form editing. Use new ACE (http://ace.c9.io/) JS based
editor to edit the form definition. Requires new formbar lib (>= 0.7)
- Add preview tabs to the form editor, which allow to see a basic preview
of the form. The preview does not support any dynamic now application
specific renderers.
- Write the formbar specific CSS and JS on application start into the ringo
static folder.
- Do not include the JS and CSS code of formbar into the document. Instead use
to dynamically written CSS and JS files to reduce the size of the generated
document.
- Improved password encryption. Replaced use of pythons built in hashlib.md5
algorithm with the use of the passlib library
(https://pythonhosted.org/passlib/index.html) for more secure password.
0.12.1
------
- Improved export of Blobform items. Instead of exporting the "data" attribute
all field in the data field will be flattend and added to the toplevel of
the export.
- Added Import and Export to the profiles module
0.12.0
------
- #12: Implemented basic version of bundled actions. Currently "Delete" and
"Export" is supported.
- Modified export. Export now supports exporting more than one item (Bundled
actions)
0.11.5
------
- Added more testcases
- Added new configuration variable "security.enable_csrf_check" in
configuration files.
- Use default excel dialog on CSV export.
0.11.4
------
- #41: Cleanup of code. Remove init_model function calls, Removed initializedb
script which was used to initialize the database for the application. Now
alembic is used for this.
- Removed default ItemFactories, Removed default __unicode__ functions.
- Added more testcases
0.11.3
------
- Changed order of calls to add relations, handle events and saving the values
in the item. Prevents errors when inheriting informations from linked items.
- Fixed setting max_age in auth_tkt cookie. Fixes error in IE10 for if running
in pyramid > 1.4.5.
- Changed import. Import now allows importing multiple items. After the import
has finished a result page is shown.
- Implemented import and export as CSV.
0.11.2
------
- Splitted requirements. Required packages for testing are now installed
locally.
- Added unittests to test /lib/helpers
- Added unittests to test /views/index
- Enhanced Profile modul. Added gender field. Make some fields desired and required.
- Added "multiple" attribute to Listfield Renderer. Allows the restrict the
selection of items to one item at once. Only implemented on client side.
- Add support for list elements while accessing a "." separated
attributes in the __getattribute__ method of the BaseItem.
- Add relation from tags to modules to allow modul specifc keywords.
- Add tags to forms.
- Add comments to forms.
- Ported "filter" attribute of selectionfield renderer to the listfield renderer.
0.11.1
------
- #36: Another try to fix caching problems. This is another approach to
5c152bd which tried to disable the caching at gets lost. (maybe a merge
error)
0.11.0
------
- Add service under "rest/rule/evaluate" to evaluate rules. Service is used
for client side evaluation of rules in the formulars.
- Provide the user roles as "_roles" value in the form. This value can be used
to model role based rules in the form. Form needs a hidden field which takes
the provided "_roles".
- Removed category from form form and table configuration. It is currently
unused.
- Changed rendering of ringo specif dropdown.
- Add option to configure group and owner inhertinace on creating new
instances in the Owned-Mixin.
- Deletion of Items now cascades to Logs, Comments, Versions and nested
Elements.
- #18: Added some ringo artwork.
- #8: Make documentation available in the application
0.10.0
------
- Add new requirement of py3o.template library.
- Add Printtemplate modul. Printtemplates are ODT or ODS documents which are
used as templates for generating nice looking documents. On processing the
template placeholders in the template will be replaced by values of the
item. The template can include basic python expressions. E.g to iterate over
lists.
- Add Printable Mixin. Inheriting from this mixin will add a print action to
the item.
- Fixes on permission checks. Add button to add new items in listing only if
the user actually has permission to add new items.
- Add "showsearch", "hideadd", "nolinks" attributes to listfield renderer to
enhance configuration of rendering.
- Render permissions of a role as FieldList.