summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-12-24Renamed AppCache to Apps.Aymeric Augustin
Also renamed app_cache to apps and "app cache" to "app registry". Deprecated AppCache.app_cache_ready() in favor of Apps.ready().
2013-12-24Use cached_property for request.GET and request.COOKIESCurtis
2013-12-24Invalidated get_models cache in a few more places.Aymeric Augustin
2013-12-24Replaced ad-hoc caching of get_models with lru_cache.Aymeric Augustin
Invalidate properly the cache whenever all_models or app_configs change. This fixes some isolation issues in the test suite.
2013-12-24Fixed override_settings when set_available_apps raises an exception.Aymeric Augustin
Previously, this would corrupt the settings, because __exit__ isn't called when __enter__raises an exception.
2013-12-23Renamed two tests so they actually run.Aymeric Augustin
2013-12-23Avoided loading repeatedly the same models module.Aymeric Augustin
2013-12-23Imported override_settings from its new location.Aymeric Augustin
2013-12-23Dropped AppCache._empty, _with_app and _without_app.Aymeric Augustin
It's now easier to achieve the same effect with modify_settings or override_settings.
2013-12-23Added modify_settings to alter settings containing lists of values.Aymeric Augustin
2013-12-23Refactored INSTALLED_APPS overrides.Aymeric Augustin
* Introduced [un]set_installed_apps to handle changes to the INSTALLED_APPS setting. * Refactored [un]set_available_apps to share its implementation with [un]set_installed_apps. * Implemented a receiver to clear some app-related caches. * Removed test_missing_app as it is basically impossible to reproduce this situation with public methods of the new app cache.
2013-12-23Used a more translator-friendly format in admin sites.pyClaude Paroz
2013-12-22Fixed #21651 -- Remove recapitalize.Marc Tamlyn
It was not used inside Django, is not tested or documented. Consequently remove without deprecation path. Thanks to @vajrasky for bringing it to our attention.
2013-12-22Fixed a flaky test.Aymeric Augustin
2013-12-22Made apps available for loading traslations in a test.Aymeric Augustin
2013-12-22Moved a test that didn't require Selenium.Aymeric Augustin
2013-12-22Syntax error.Aymeric Augustin
2013-12-22Renamed has_model to get_registered_models.Aymeric Augustin
That matches its return type better.
2013-12-22Changed has_app to return a boolean.Aymeric Augustin
That matches its name ad its purpose better.
2013-12-22Used application verbose names in the admin.Aymeric Augustin
2013-12-22Made AppConfig importable from django.apps.Aymeric Augustin
It is a public API.
2013-12-22Moved apps back in the toplevel django namespace.Aymeric Augustin
Reverted 4a56a93cc458e9ab4dcab95d9f5067d4975dd1a2.
2013-12-22Added the ability to supply custom app configs.Aymeric Augustin
2013-12-22Complained on override_settings(INSTALLED_APPS=...).Aymeric Augustin
Currently such overrides aren't reflected in the app cache. It would be possible to handle them. But that doesn't look like a very good API. It makes it complicated to express "add this app" and "remove this app", which are the most common operations on INSTALLED_APPS.
2013-12-22Improved set_available_apps() in several ways.Aymeric Augustin
- Tested consistency the current app_configs instead of INSTALLED_APPS. - Considered applications added with _with_app as available. - Added docstrings.
2013-12-22Expurged INSTALLED_APPS from code and tests.Aymeric Augustin
Except the app cache code and a few specific tests, of course.
2013-12-22Stop testing for inclusion in INSTALLED_APPS.Aymeric Augustin
Removed some exception masking in the comments app that was harmful and couldn't be preserved easily.
2013-12-22Renamed registered_model to has_model.Aymeric Augustin
This avoids possible confusion with register_model. Thanks Marc Tamlyn for the suggestion.
2013-12-22Stopped iterating on INSTALLED_APPS.Aymeric Augustin
Used the app cache's get_app_configs() method instead.
2013-12-22Not all Python modules have a __path__.Aymeric Augustin
2013-12-22Populated models only when necessary in get_app_config[s].Aymeric Augustin
Took this opportunity to change get_app[s] to only consider applications containing a model module as that seems slightly more backwards compatible. Since callers that care about models pass only_with_models_module=True, this has very few consequences. Only AppCommand needed a change.
2013-12-22Deprecated load_app().Aymeric Augustin
Adjusted several tests that used it to add apps to the app cache and then attempted to remove them by manipulating attributes directly. Also renamed invalid_models to invalid_models_tests to avoid clashing application labels between the outer and the inner invalid_models applications.
2013-12-22Added an _-prefix to pending lookups because it's transient.Aymeric Augustin
2013-12-22Terminated AppCache._populate() with extreme prejudice.Aymeric Augustin
It was called _populate() before I renamed it to populate(). Since it has been superseded by populate_models() there's no reason to keep it. Removed the can_postpone argument of load_app() as it was only used by populate(). It's a private API and there's no replacement. Simplified load_app() accordingly. Then new version behaves exactly like the old one even though it's much shorter.
2013-12-22Implemented two-stage app-cache population.Aymeric Augustin
First stage imports app modules. It doesn't catch import errors. This matches the previous behavior and keeps the code simple. Second stage import models modules. It catches import errors and retries them after walking through the entire list once. This matches the previous behavior and seems useful. populate_models() is intended to be equivalent to populate(). It isn't wired yet. That is coming in the next commit.
2013-12-22Removed the app_config.installed flag.Aymeric Augustin
Since applications that aren't installed no longer have an application configuration, it is now always True in practice. Provided an abstraction to temporarily add or remove applications as several tests messed with app_config.installed to achieve this effect. For now this API is _-prefixed because it looks dangerous.
2013-12-22Removed the only_installed argument of get_app_config[s].Aymeric Augustin
It wasn't used anywhere and couldn't be implemented any more since non-installed apps no longer have a configuration.
2013-12-22Refactored registration of models.Aymeric Augustin
Got rid of AppConfig._stub. As a side effect, app_cache.app_configs now only contains entries for applications that are in INSTALLED_APPS, which is a good thing and will allow dramatic simplifications (which I will perform in the next commit). That required adjusting all methods that iterate on app_configs without checking the "installed" flag, hence the large changes in get_model[s]. Introduced AppCache.all_models to store models: - while the app cache is being populated and a suitable app config object to register models isn't available yet; - for applications that aren't in INSTALLED_APPS since they don't have an app config any longer. Replaced get_model(seed_cache=False) by registered_model() which can be kept simple and safe to call at any time, and removed the seed_cache argument to get_model[s]. There's no replacement for that private API. Allowed non-master app caches to go through populate() as it is now safe to do so. They were introduced in 1.7 so backwards compatibility isn't a concern as long as the migrations framework keeps working.
2013-12-22Added a context manager to hold the import lock.Aymeric Augustin
2013-12-22Fixed #21643 -- repeated execution of qs with F() + timedeltaAlexey Voronov
Thanks Tim Graham for review.
2013-12-20Revert "Changed admin/templates/admin/index.html to make <caption> translatable"Aymeric Augustin
This reverts commit a25fe3b65e39ff6f59ac545d7934461be6c13612. It didn't do anything. It merely added to every PO file: msgid "%(name)s" msgstr "%(name)s" Thanks Ramiro Morales for the report at: https://groups.google.com/d/msg/Django-I18N/vc2vQzv80UQ/EuaW38V7X7sJ Conflicts: django/contrib/admin/templates/admin/index.html
2013-12-20Set stacklevel for the override_settings warning.Aymeric Augustin
Refs #19031.
2013-12-19Small flake8 fixes -- number of blank lines between top level definitionsAlex Gaynor
2013-12-20Fixed #21639 -- Implemented RenderContext.__getitem__Alex Hill
It's now consistent with RenderContext.get.
2013-12-19Fixed #21478 -- Corrected docs for when Field.db_type() is called.Anubhav Joshi
2013-12-18Fixed #21585 -- Updated some links to 3rd party database projects.Tim Graham
Thanks graeme.perrow at sap.com for the original report.
2013-12-18Fixed #21613 -- Removed a hardcoded input id from the tutorial.Tim Graham
Thanks Bruno Brouard for the report.
2013-12-18Simplied some code in django.conf.__init__.Ondrej Sika
2013-12-18Fixed #21386 -- Removed admindocs dependence on sites frameworkBouke Haarsma
* Removed ADMIN_FOR setting and warn warning * Group view functions by namespace instead of site * Added a test verifying namespaces are listed Thanks to Claude Paroz for reviewing and ideas for improvement.
2013-12-18Fixed #11629 -- Deprecated callable arguments to queryset methods.Baptiste Mispelon
Callable arguments were an untested and undocumented feature.