Commit Graph

6355 Commits

Author SHA1 Message Date
Tim Graham 12303ab738 Fixed #21861 -- Fixed typo in 1.7 release notes.
Thanks marktranchant.
2014-01-23 09:29:09 -05:00
Tim Graham 81830ce34f Fixed some punctuation; thanks Chris Jerdonek. 2014-01-23 09:01:26 -05:00
Andrew Godwin b8c8241945 Add docs about converting from South 2014-01-23 11:45:25 +00:00
Baptiste Mispelon 05d36dc06e Always use parentheses when documenting a method with no arguments. 2014-01-22 22:26:10 +01:00
Baptiste Mispelon 79e1d6ebd7 Don't show `self` in the list of arguments of a method.
This is consistent with Python's official documentation
and it's a sphinx recommendation too[1].

[1] http://sphinx-doc.org/markup/desc.html#dir-method

Refs #21855.
2014-01-22 22:17:32 +01:00
Tim Graham 5f9790072d Fixed #20834 -- Described how caching of user permissions works.
Thanks Giggaflop and Jennifer Casavantes.
2014-01-22 13:08:51 -05:00
Tim Graham 4416aa1d3f Added a link to the 1.6 release notes which also fixed a rendering issue. 2014-01-22 11:04:44 -05:00
Tim Graham dfc092622e Fixed #21529 -- Noted that {% url %} encodes its output (refs #13260). 2014-01-22 10:44:50 -05:00
Tim Graham 6f06c749b7 Fixed #21726 -- Clarified that password should not be included in REQUIRED_FIELDS.
Thanks russellm for the report.
2014-01-22 10:17:44 -05:00
Tim Graham 03395b4277 Fixed some markup that caused broken links in the static files docs. 2014-01-22 10:15:27 -05:00
Jannis Leidel 8efd20f96d Added ManifestStaticFilesStorage to staticfiles contrib app.
It uses a static manifest file that is created when running
collectstatic in the JSON format.
2014-01-20 19:32:07 +01:00
Russell Keith-Magee e8920e96d0 Added a missing command to the command line examples for check.
Thanks to Bruno Renie for the report.
2014-01-20 20:46:21 +08:00
Russell Keith-Magee b0602e935c Corrected documentation typo.
Thanks to @cjerdonek for the report.
2014-01-20 19:48:06 +08:00
Russell Keith-Magee 9ddc358e8d Corrected minor typo.
Thanks to @cjerdonek for the report.
2014-01-20 13:13:16 +08:00
Russell Keith-Magee d818e0c9b2 Fixed #16905 -- Added extensible checks (nee validation) framework
This is the result of Christopher Medrela's 2013 Summer of Code project.

Thanks also to Preston Holmes, Tim Graham, Anssi Kääriäinen, Florian
Apolloner, and Alex Gaynor for review notes along the way.

Also: Fixes #8579, fixes #3055, fixes #19844.
2014-01-20 10:45:21 +08:00
Tim Graham 6e7bd0b63b Fixed some admin sphinx definitions so links work properly. 2014-01-19 20:29:09 -05:00
Andrew Godwin 6bbb820014 Fixed #21290: Documented migration serializing and improved error 2014-01-19 19:27:30 +00:00
Andrew Godwin c9de1b4a55 Implement swappable model support for migrations 2014-01-19 16:43:12 +00:00
Tim Graham 5c7ac7494a Fixed #18907 -- Correct docs regard population of model backrefs.
Thanks simonpercivall for the report and Aymeric for the patch.
2014-01-19 09:35:59 -05:00
Aymeric Augustin 10e0cfc0e4 Fixed #21712 -- Moved autodiscover() to AdminConfig.ready().
Thanks Marc Tamlyn for the initial version of the patch.
2014-01-18 23:06:00 +01:00
Anssi Kääriäinen 4dc3be2506 Fixed typos spotted by Claude Paroz 2014-01-18 22:31:35 +02:00
Anssi Kääriäinen 20bab2cf9d Fixed #16187 -- refactored ORM lookup system
Allowed users to specify which lookups or transforms ("nested lookus")
are available for fields. The implementation is now class based.

Squashed commit of the following:

commit fa7a7195f1
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Jan 18 10:53:24 2014 +0200

    Added lookup registration API docs

commit eb1c8ce164
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Tue Jan 14 18:59:36 2014 +0200

    Release notes and other minor docs changes

commit 11501c29c9
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sun Jan 12 20:53:03 2014 +0200

    Forgot to add custom_lookups tests in prev commit

commit 83173b960e
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sun Jan 12 19:59:12 2014 +0200

    Renamed Extract -> Transform

commit 3b18d9f3a1
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sun Jan 12 19:51:53 2014 +0200

    Removed suggestion of temporary lookup registration from docs

commit 21d0c7631c
Merge: 2509006 f2dc442
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sun Jan 12 09:38:23 2014 -0800

    Merge pull request #2 from mjtamlyn/lookups_3

    Reworked custom lookups docs.

commit f2dc4429a1
Author: Marc Tamlyn <marc.tamlyn@gmail.com>
Date:   Sun Jan 12 13:15:05 2014 +0000

    Reworked custom lookups docs.

    Mostly just formatting and rewording, but also replaced the example
    using ``YearExtract`` to  use an example which is unlikely to ever be
    possible directly in the ORM.

commit 2509006506
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sun Jan 12 13:19:13 2014 +0200

    Removed unused import

commit 4fba5dfaa0
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Jan 11 22:34:41 2014 +0200

    Added docs to index

commit 6d53963f37
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Jan 11 22:10:24 2014 +0200

    Dead code removal

commit f9cc039007
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Jan 11 19:00:43 2014 +0200

    A new try for docs

commit 33aa18a6e3
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Jan 11 14:57:12 2014 +0200

    Renamed get_cols to get_group_by_cols

commit c7d5f8661b
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Jan 11 14:45:53 2014 +0200

    Altered query string customization for backends vendors

    The new way is trying to call first method 'as_' + connection.vendor.
    If that doesn't exist, then call as_sql().

    Also altered how lookup registration is done. There is now
    RegisterLookupMixin class that is used by Field, Extract and
    sql.Aggregate. This allows one to register lookups for extracts and
    aggregates in the same way lookup registration is done for fields.

commit 90e7004ec1
Merge: 66649ff f7c2c0a
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Jan 11 13:21:01 2014 +0200

    Merge branch 'master' into lookups_3

commit 66649ff891
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Jan 11 13:16:01 2014 +0200

    Some rewording in docs

commit 31b8faa627
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sun Dec 29 15:52:29 2013 +0200

    Cleanup based on review comments

commit 1016159f34
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Dec 28 18:37:04 2013 +0200

    Proof-of-concept fix for #16731

    Implemented only for SQLite and PostgreSQL, and only for startswith
    and istartswith lookups.

commit 193cd097ca
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Dec 28 17:57:58 2013 +0200

    Fixed #11722 -- iexact=F() produced invalid SQL

commit 08ed3c3b49
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Dec 21 23:59:52 2013 +0200

    Made Lookup and Extract available from django.db.models

commit b99c8d83c9
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Dec 21 23:06:29 2013 +0200

    Fixed review notes by Loic

commit 049eebc070
Merge: ed8fab7 b80a835
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Dec 21 22:53:10 2013 +0200

    Merge branch 'master' into lookups_3

    Conflicts:
    	django/db/models/fields/__init__.py
    	django/db/models/sql/compiler.py
    	django/db/models/sql/query.py
    	tests/null_queries/tests.py

commit ed8fab7fe8
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Dec 21 22:47:23 2013 +0200

    Made Extracts aware of full lookup path

commit 27a57b7aed
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sun Dec 1 21:10:11 2013 +0200

    Removed debugger import

commit 074e0f5aca
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sun Dec 1 21:02:16 2013 +0200

    GIS lookup support added

commit 760e28e72b
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sun Dec 1 20:04:31 2013 +0200

    Removed usage of Constraint, used Lookup instead

commit eac4776684
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sun Dec 1 02:22:30 2013 +0200

    Minor cleanup of Lookup API

commit 2adf50428d
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sun Dec 1 02:14:19 2013 +0200

    Added documentation, polished implementation

commit 32c04357a8
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Nov 30 23:10:15 2013 +0200

    Avoid OrderedDict creation on lookup aggregate check

commit 7c8b3a32cc
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Sat Nov 30 23:04:34 2013 +0200

    Implemented nested lookups

    But there is no support of using lookups outside filtering yet.

commit 4d219d4cde
Author: Anssi Kääriäinen <akaariai@gmail.com>
Date:   Wed Nov 27 22:07:30 2013 +0200

    Initial implementation of custom lookups
2014-01-18 11:46:19 +02:00
Tim Graham b87c59b04b Removed some unnecessary __exact operators in filters. 2014-01-17 18:12:45 -05:00
Tim Graham bc7668eb51 Fixed #18942 -- Clarified usage of {% get_static_prefix %}.
Thanks Aymeric for the suggestion.
2014-01-17 16:06:11 -05:00
Tim Graham 4a5aac47a6 Fixed #13116 -- Described scope of variables created by {% url ... as var %} syntax.
Thanks leif_p for the suggestion.
2014-01-17 14:50:47 -05:00
Tim Graham a67e327db5 Fixed #20052 -- Discouraged use of Jython given the current state of django-jython.
Thanks Josh Juneau (maintainer of django-jython) for the review.
2014-01-17 09:21:34 -05:00
Tim Graham dd98ccd482 Fixed #16785 -- Documented some of the design decisions of the cache framework.
Thanks jamesp for the draft patch.
2014-01-16 21:13:08 -05:00
Tim Graham 9173d2cb74 Fixed #18285 -- Documented that bulk_create doesn't work with M2M relationships. 2014-01-16 20:47:02 -05:00
Claude Paroz 2a31d00933 Fixed #21740 -- Stopped using mutable default arguments in test client
Thanks Denver Coneybeare for the report and initial patch, and
Atala for another patch.
2014-01-16 17:44:20 +01:00
Tim Graham a6e3fb80b0 Fixed #21343 -- Noted many-to-many restrictions with intermediate model.
Thanks EvilDMP for the report.
2014-01-16 08:38:40 -05:00
Tim Graham c05b2f58e7 Fixed #21768 -- Corrected TemplateView context section.
Thanks nedbatchelder for the report and claudep for the patch.
2014-01-16 07:58:08 -05:00
Tim Graham d35f2bfd5b Fixed #21727 -- Added some links to help clarify topics/auth/default.txt
Thanks daGrevis for the suggestion.
2014-01-16 07:16:09 -05:00
Tim Graham 9e5033b302 Fixed #21747 -- Added {% elif %} to template topics guide.
Thanks gcc for the suggestion.
2014-01-16 07:07:53 -05:00
Kevin Wood 82f466b571 Fix typo in storage docs 2014-01-15 13:17:08 -08:00
Adrian Holovaty 660b7e7000 Removed BDFL stuff from docs/internals/contributing/bugs-and-features.txt 2014-01-13 10:32:09 -06:00
Adrian Holovaty 4f25d97404 Removed BDFLs section from docs/internals/committers.txt 2014-01-13 10:31:30 -06:00
Adrian Holovaty 132c26649c Negligible change to my bio in docs/internals/committers.txt 2014-01-13 10:30:46 -06:00
Aymeric Augustin d562527a16 Fixed #21477 -- Renamed db to using in pre/post_migrate signals. 2014-01-12 22:24:33 +01:00
Aymeric Augustin fbe1abac4a Fixed #21453 -- Enabled autocommit before calling init_connection_state.
Also ensured the transaction state is clean on Oracle while I was there.

This change cannot be backported to 1.6 because it's
backwards-incompatible for custom database backends.
2014-01-12 20:31:07 +01:00
Claude Paroz 3d4ed28dce Fixed #21547 -- Updated GeoDjango tutorial with PostGIS 2 output
Thanks awilliams at cironline.org for the report.
2014-01-11 17:58:29 +01:00
Claude Paroz 0179852d7f Fixed #8898 -- Obsoleted SplitDateTimeWidget usage with DateTimeField
Thanks Tim Graham for the review.
2014-01-11 15:50:34 +01:00
Alex Gaynor f7c2c0a3be Removed a man page for a command that was removed 2014-01-10 15:23:06 -08:00
Aymeric Augustin 3326a412cc Deprecated importing a model before loading its application.
Refs #21719, #21680.
2014-01-10 23:43:10 +01:00
Unai Zalakain 9eb16031ca Fixed #12571 -- Attached originating WSGIRequest to test client responses.
Originating WSGIRequests are now attached to the ``wsgi_request`` attribute of
the ``HttpResponse`` returned by the testing client.

Thanks rvdrijst for the suggestion.
2014-01-09 18:50:03 -05:00
Aymeric Augustin 6a320cc14a Fixed #21718 -- Renamed has_app to is_installed. 2014-01-06 22:48:41 +01:00
Aymeric Augustin 021b0b0029 Added an app-loading feature to the release notes. 2014-01-05 21:10:15 +01:00
Aymeric Augustin f630373b92 Fixed #21711 -- Enforced unicity of model names. 2014-01-05 20:52:53 +01:00
Claude Paroz c717ebbfec Fixed #21730 -- Removed superfluous db_index in custom auth docs
Thanks rafalp for the report.
2014-01-04 16:11:21 +01:00
Tim Graham 4d27d311f6 Fixed a sentence in the session security docs; thanks claudep. 2014-01-03 12:02:58 -05:00
Tianyi Wang e6800ea136 Fixed #21728 -- Corrected an inadvertent path change in docs/intro/contributing.txt. 2014-01-03 11:59:15 -05:00
Anssi Kääriäinen 4e6142ee84 Merge pull request #2094 from coder9042/ticket_21478
Changed documentation for db_type()
2014-01-03 01:30:52 -08:00
Vajrasky Kok ea83102d0f Fixed #21319 -- Added documentation for the Form.fields attribute.
Thanks pydanny for the report. Also, added documentation about
base_fields attribute and its difference with fields attribute.
2014-01-02 19:43:26 -05:00
Aymeric Augustin 756a6accdb Updated my bio. 2014-01-02 23:14:54 +01:00
Aymeric Augustin 449ede03b8 Changed convention for modules storing AppConfigs.
The app/apps dichotomy was more confusing than valuable.
2014-01-02 23:07:33 +01:00
Tim Graham 07711e9997 Fixed #21722 -- Added a warning for avoiding XSS vulnerabilities when reusing built-in filters.
Thanks Stephen McDonald for the suggestion.
2014-01-02 16:29:59 -05:00
Nathan Smith 44d40ba521 Fixed minor typos. 2014-01-02 15:14:11 -05:00
Frank Tobia 6dd8631617 Fixed typos. Changed grammar.
Minor typos. Some grammar changes.
2014-01-02 14:22:52 -05:00
Marc Tamlyn 7a30eab06e Fix typo in 0ce945a671.
Thanks to Loic for the report.
2014-01-02 09:06:52 +00:00
Aymeric Augustin 1386075f62 Updated release notes on app_label.
Django determines automatically which application models belong to,
provided the application can be imported without importing models.
2014-01-01 19:45:43 +01:00
Aymeric Augustin 0ce945a671 Fixed #21018 -- Reversed precedence order for management commands. 2014-01-01 18:11:15 +01:00
Aymeric Augustin 8a2f304a79 Documented unicity rules in INSTALLED_APPS.
Refs #12288, #21679.
2014-01-01 16:51:58 +01:00
Matt Robenolt a502bbb2f0 Django sees more than 1mm hits per hour
Disqus regularly does 40-50k/s
2013-12-31 16:23:20 -08:00
Loic Bistuer 4befb3015c Fixed #21581 -- Fixed a number of issues with collectstatic.
When STATIC_ROOT wasn't set, collectstatic --clear would delete
every files within the current directory and its descendants.

This patch makes the following changes:

Prevent collectstatic from running if STATIC_ROOT isn't set.

Fixed an issue that prevented collectstatic from displaying the
destination directory.

Changed the warning header to notify when the command is run
in dry-run mode.
2013-12-31 14:58:49 -05:00
Tim Graham 4d8d76e7a8 Fixed #21484 -- Documented that SQL logging does not include "framework level" queries. 2013-12-31 13:02:01 -05:00
Claude Paroz b8e3373f45 Fixed #21714 -- Moved logging configuration to global setup()
Thanks Aymeric Augustin for the report and the review.
2013-12-31 18:35:00 +01:00
Aymeric Augustin 1d23d766ab Renamed AppConfig.setup to ready.
Thanks Jannis and Marc for the feedback.

Fixed #21717.
2013-12-31 18:04:54 +01:00
Aymeric Augustin 63137a8304 Enforced unicity of app labels.
Fixed #21679.
2013-12-31 18:04:54 +01:00
Aymeric Augustin c40209dcc0 Made it possible to change an application's label in its configuration.
Fixed #21683.
2013-12-31 17:30:58 +01:00
Tim Graham 69f0249d7b Fixed #19395 -- Added a simple example logging config.
Thanks ken.nelson at maclaren.com.
2013-12-31 10:20:44 -05:00
Aymeric Augustin f46603f830 Fleshed out release notes for app loading.
Fixed #21715.
2013-12-31 15:27:25 +01:00
Tim Graham 9953e98e6a Fixed #21701 -- Improved testing doc titles and added testing/tools.txt.
Thanks cjerdonek for the suggestion.
2013-12-31 08:14:09 -05:00
Aymeric Augustin a5e2a0e569 Added release notes for today's app-loading improvements. 2013-12-31 00:10:49 +01:00
Aymeric Augustin bfcc686d22 Removed the only_with_models_module argument of get_model[s].
Now that the refactorings are complete, it isn't particularly useful any
more, nor very well named. Let's keep the API as simple as possible.

Fixed #21689.
2013-12-30 23:59:34 +01:00
Tim Graham ec020cab7e Fixed a broken link in docs/intro/tutorial01.txt. 2013-12-30 17:59:18 -05:00
Tim Graham 270f7e2167 Fixed #21708 -- Added some headings to separate unrelated topics.
Thanks ashley at ashleymills.com for the suggestion.
2013-12-30 17:55:12 -05:00
Tim Graham 0150830687 Fixed #21710 -- Documented User.get_short_name()
Thanks Keryn Knight for the report.
2013-12-30 17:42:11 -05:00
Aymeric Augustin 80d74097b4 Stopped populating the app registry as a side effect.
Since it triggers imports, it shouldn't be done lightly.

This commit adds a public API for doing it explicitly, django.setup(),
and does it automatically when using manage.py and wsgi.py.
2013-12-30 22:11:17 +01:00
Aymeric Augustin c31d7c4813 Updated advice on connecting signals at startup. 2013-12-30 22:11:17 +01:00
Aymeric Augustin e187caa3af Added AppConfig.setup() to run setup code. 2013-12-30 22:11:16 +01:00
Aymeric Augustin e5c89c62f2 Pointed intersphinx links to Python's default version.
Currently it's 3.3.
2013-12-30 19:09:45 +01:00
Aymeric Augustin 99649ddcb2 Assumed Python 3 throughout docs/intro.
Various small fixes while I was proof-reading.
2013-12-30 19:09:45 +01:00
Aymeric Augustin 34a215d506 Deprecated the app argument of apps.get_models.
Use app_config.get_models() instead.
2013-12-29 21:48:58 +01:00
Aymeric Augustin 7b88a96553 Added AppConfig.get_models(). 2013-12-29 20:31:59 +01:00
Aymeric Augustin 00110904ac Refactored the migration signals to use app configs.
De-aliased pre/post_syncdb to pre/post_migrate to increase
backwards-compatibility.
2013-12-29 17:53:42 +01:00
Claude Paroz 6d66ba5948 Fixed #21242 -- Allowed more IANA schemes in URLValidator
Thanks Sascha Peilicke for the report and initial patch, and
Tim Graham for the review.
2013-12-28 21:25:32 +01:00
Aymeric Augustin 9f13c33281 Removed the only_installed argument of Apps.get_models.
Refs #15903, #15866, #15850.
2013-12-28 20:54:26 +01:00
Aymeric Augustin ba7206cd81 Changed get_model to raise an exception on errors.
Returning None on errors required unpythonic error checking and was
inconsistent with get_app_config.

get_model was a private API until the previous commit, but given that it
was certainly used in third party software, the change is explained in
the release notes.

Applied the same change to get_registered_model, which is a new private
API introduced during the recent refactoring.
2013-12-28 20:53:00 +01:00
Aymeric Augustin 54790e669d Simplified Apps.get_model and added AppConfig.get_model.
Documented them as public APIs.
2013-12-28 20:43:29 +01:00
Tim Graham 81a5e35c8d Fixed doc indentation in previous commit. 2013-12-28 11:33:24 -05:00
ijl 71a03e01aa Fixed #20346 -- Made cache middleware vary on the full URL.
Previously, only the URL path was included in the cache key.

Thanks jamey for the suggestion.
2013-12-28 11:20:18 -05:00
Claude Paroz b7a7baa554 Fixed #21618 -- Added hints about openlayers.js hosting
Thanks kz26 for the report and Tim Graham for the excellent
review.
2013-12-28 11:08:50 +01:00
Aymeric Augustin c81fae6b95 Used app_label instead of appname.
The last component of the dotted path to the application module is
consistently referenced as the application "label". For instance it's
AppConfig.label. appname could be confused with AppConfig.name, which is
the full dotted path.
2013-12-28 09:53:02 +01:00
Aymeric Augustin bb8ec71f61 Updated the AppCommand API to support apps without a models module. 2013-12-28 09:42:59 +01:00
Tim Graham 85270ef3f5 Fixed #21650 -- Corrected bad advice for plural translation.
Thanks nedbatchelder and claudep.
2013-12-27 10:02:22 -05:00
Tim Graham 025ec2e7fe Fixed #21582 -- Corrected URL namespace example.
Thanks oubiga for the report.
2013-12-26 20:04:28 -05:00
Tim Graham d8d83777eb Fixed #21629 -- Added instructions for loading MySQL time zone definitions.
Thanks Aymeric for the suggestion.
2013-12-26 15:50:33 -05:00
Aymeric Augustin ce1bc2c94b Made the AppConfig API marginally more consistent.
Eliminated the app_ prefix that was more confusing than useful.
2013-12-26 19:25:09 +01:00
Jon Lønne 398642fd9b Fixed #21627 -- Added unicode_literals to changepassword command.
Fixed a crash when executing changepassword command when the user object
representation contained non-ASCII characters.
2013-12-26 07:35:50 -05:00
Claude Paroz 318cdc07de Added 1.6.2 release note for 542198c1d 2013-12-26 11:10:50 +01:00
Aymeric Augustin 7df049c417 Swapped app registry and app config API docs.
Thanks David Larlet for the suggestion.

Also fixed some Sphinx warnings and improved ReST markup.
2013-12-25 21:57:52 +01:00