Aymeric Augustin
4a56a93cc4
Moved the new app cache inside core.
2013-12-17 10:17:46 +01:00
Aymeric Augustin
b3d5efe23f
Restored deprecated aliases for functions in django.db.models.
...
Thanks Marc Tamlyn for the suggestion.
2013-12-17 10:17:46 +01:00
Aymeric Augustin
f831da2fed
Inlined trivial method that was used only once.
2013-12-17 10:17:46 +01:00
Aymeric Augustin
b3e182faba
Fixed incorrect decrementation of nesting_level.
...
Thanks Florian for catching this mistake.
2013-12-17 10:17:45 +01:00
Aymeric Augustin
30bdad1c47
Refactored old test runner to handle apps without a models module.
2013-12-17 10:17:45 +01:00
Aymeric Augustin
5ba743e262
Made it possible to create apps without a models module.
...
This commit reverts f44c4a5d0f
and 39bbd165
.
django.test.simple will be updated in a separate commit as it requires
invasive changes.
2013-12-17 10:17:45 +01:00
Aymeric Augustin
69039becde
Deprecated get_app().
2013-12-17 10:17:45 +01:00
Aymeric Augustin
2732edc5f2
Deprecated get_apps().
2013-12-17 10:17:45 +01:00
Aymeric Augustin
d44de9b933
Removed the _-prefix for populate().
...
Several parts of Django call get_apps() with a comment along this lines
of "this has the side effect of calling _populate()". I fail to see how
this is better than just calling populate()!
2013-12-17 10:17:45 +01:00
Aymeric Augustin
ebda5800ae
Simplified register_models.
...
Since it's never called with more than one model at a time the current
signature is needlessly complicated.
2013-12-17 10:17:45 +01:00
Aymeric Augustin
e85932b54e
Simplified handling of available_apps slightly.
...
It feels more natural for self.available_apps to contain app names (like
INSTALLED_APPS) than app labels, and this is easy to implement now.
2013-12-17 10:17:45 +01:00
Aymeric Augustin
259cd3cd41
Deprecated get_app_package, get_app_path and get_app_paths.
2013-12-17 10:17:45 +01:00
Aymeric Augustin
da36d03fe6
Added get_app_configs() to iterate on app_config instances.
...
Refactored get_apps() to rely on that method.
This commit is fully backwards-compatible.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
a4cb140004
Added get_app_config() to look up app configs by label.
...
Refactored get_app() to rely on that method.
get_app() starts by calling _populate(), which goes through
INSTALLED_APPS and, for each app, imports the app module and attempts to
import the models module. At this point, no further imports are
necessary to return the models module for a given app. Therefore, the
implementation of get_app() can be simplified and the safeguards for
race conditions can be removed.
Besides, the emptyOK parameter isn't used anywhere in Django. It was
introduced in d6c95e93
but not actually used nor documented, and it has
just been carried around since then. Since it's an obscure private API,
it's acceptable to stop supporting it without a deprecation path. This
branch aims at providing first-class support for applications without a
models module eventually.
For backwards-compatibility, get_app() still raises ImproperlyConfigured
when an app isn't found, even though LookupError is technically more
correct. I haven't gone as far as to preserve the exact error messages.
I've adjusted a few tests instead.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
c5eac3a2f6
Fleshed out AppConfig objects.
...
Marginally improved creation of AppConfig stubs for non-installed apps.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
b55282b98b
Moved list of models inside AppConfig instances.
...
This commit is a refactoring with no change of functionality, according
to the following invariants:
- An app_label that was in app_configs and app_models stays in
app_config and has its 'installed' attribute set to True.
- An app_label that was in app_models but not in app_configs is added to
app_configs and has its 'installed' attribute set to True.
As a consequence, all the code that iterated on app_configs is modified
to check for the 'installed' attribute. Code that iterated on app_models
is rewritten in terms of app_configs.
Many tests that stored and restored the state of the app cache were
updated.
In the long term, we should reconsider the usefulness of allowing
importing models from non-installed applications. This doesn't sound
particularly useful, can be a trap in some circumstances, and causes
significant complexity in sensitive areas of Django.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
2c9e84af4a
Removed unused attribute app_errors of the app cache.
...
get_app_errors() always returned an empty dictionary; this behavior is
preserved in django.db.models.loading until that module is deprecated.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
0e9d3472d7
Stored AppConfig objects instead of models modules in the app cache.
...
This is a step towards allowing applications without a models module.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
8662654d6d
Removed module-level functions for the app cache.
...
Since the original ones in django.db.models.loading were kept only for
backwards compatibility, there's no need to recreate them. However, many
internals of Django still relied on them.
They were also imported in django.db.models. They never appear in the
documentation, except a quick mention of get_models and get_app in the
1.2 release notes to document an edge case in GIS. I don't think that
makes them a public API.
This commit doesn't change the overall amount of global state but
clarifies that it's tied to the app_cache object instead of hiding it
behind half a dozen functions.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
334551339d
Removed ModelDict.
...
Its only difference with OrderedDict is that it didn't deepcopy its
keys. However it wasn't used anywhere with models modules as keys, only
as values. So this commit doesn't result in any change in functionality.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
9217b89da3
Removed BaseAppCache.app_store.
...
It was only storing redundant information. This is part of the effort to
allow applications without a models module.
2013-12-17 10:17:44 +01:00
Aymeric Augustin
860c2c8bc5
Moved django.db.models.loading to django.apps.cache.
...
This commit doesn't contain any code changes; it's purely a refactoring.
2013-12-17 10:17:43 +01:00
Artur Barseghyan
fe1389e911
Removed duplicated `TimeField` in __all__.
2013-12-16 17:52:37 -05:00
Loic Bistuer
3ce9829b61
Fixed #17413 -- Serialization of form errors along with all metadata.
2013-12-16 16:33:28 -05:00
Baptiste Mispelon
e2f142030b
Fixed #21564 -- Use local request object when possible in generic views.
...
Thanks to trac user adepue for the report and original patch.
2013-12-16 16:58:08 +01:00
Baptiste Mispelon
3eb58f0dd1
Removed unnecessary function-level import.
2013-12-16 15:30:51 +01:00
Vajrasky Kok
db41778e8c
Removed unnecessary call to force_text in utils.html.clean_html.
...
Refs #21574
2013-12-16 15:22:54 +01:00
Peter Harley
cdd6617da6
Fixed #21619 -- Made SingleObjectMixin.get_object catch a more precise exception.
...
Thanks to Keryn Knight for the report.
2013-12-15 21:49:52 +01:00
Aymeric Augustin
3beffea4b0
Fixed #21621 -- Removed kqueue autoreloader.
2013-12-15 14:43:52 +01:00
Claude Paroz
164a3a388c
Revert "Allowed running GIS form tests that don't require spatial database"
...
This reverts commit 07fe0bf3f4
.
This was not working properly on system without geos library
installed.
2013-12-14 21:03:09 +01:00
Bartolomé Sánchez
8f994f1bcc
Fixed #21250 -- Made HTTP auth user header configurable in tests
...
Currently, if the authentication mechanism uses a custom HTTP header
and not REMOTE_USER, it is not easy to test. This commit modifies
remote user tests in order to make them more generic.
2013-12-14 13:02:56 -05:00
Loic Bistuer
6685713869
Fixed E127 pep8 warnings.
2013-12-14 11:59:15 -05:00
Jakub Gocławski
07fe0bf3f4
Allowed running GIS form tests that don't require spatial database
2013-12-14 13:57:58 +01:00
Jakub Gocławski
2ddf1fc50f
Fixed #21606 -- Fixed default_lat and default_lon override in OSMWidget
2013-12-14 13:53:37 +01:00
Baptiste Mispelon
2c837233f5
Fixed #21574 -- Handle bytes consistently in utils.text.normalize_newlines.
...
All input is now coerced to text before being normalized.
This changes nothing under Python 2 but it allows bytes
to be passed to the function without a TypeError under Python3
(bytes are assumed to be utf-8 encoded text).
Thanks to trac user vajrasky for the report.
2013-12-12 16:09:12 +01:00
Baptiste Mispelon
b9c7234e2a
Fixed PEP257 violations (single-quoted docstrings) in utils.text.
2013-12-12 16:08:59 +01:00
Ludwik Trammer
9922ed46e2
Fixed #21473 -- Limited language preservation to logout
...
Current language is no longer saved to session by LocaleMiddleware
on every response (the behavior introduced in #14825 ).
Instead language stored in session is reintroduced into new session
after logout.
Forward port of c558a43fd6
to master.
2013-12-12 10:24:43 +01:00
Aymeric Augustin
9c5f59f489
Brought comments in sync with the code in BaseAppCache.
2013-12-11 23:16:06 +01:00
Dominic Rodger
5cd6477fd6
Fixed #21462 -- Made `assertNumQueries` print executed queries on failure.
2013-12-11 15:24:17 -05:00
Simon Charette
75924cfa6d
Fixed #21563 -- Single related object descriptors should work with `hasattr`.
...
Thanks to Aymeric Augustin for the review and Trac alias monkut for the report.
2013-12-11 12:49:28 -05:00
Claude Paroz
c7c647419c
Fixed #21510 -- Readded search reset link in changelist search bar
...
Thanks moritz.pfeiffer at alp-phone.ch for the report and
Tim Graham for the initial patch.
2013-12-11 15:30:20 +01:00
Andrew Godwin
5db028affb
Fix altering of SERIAL columns and InnoDB being picky about FK changes
2013-12-11 14:19:05 +00:00
Andrew Godwin
cee4fe7307
Better default name for migrations we can't give nice names to
2013-12-11 13:23:07 +00:00
Andrew Godwin
248fdb1110
Change FKs when what they point to changes
2013-12-11 13:16:29 +00:00
Andrew Godwin
f3582a0594
Fix sqlmigrate's output for parameters
2013-12-11 13:12:23 +00:00
Aymeric Augustin
072e25eee7
Moved imports to the top of the defaultfilters module.
2013-12-10 21:32:58 +01:00
Loic Bistuer
a2814846ca
Fixed E124 pep8 warnings.
2013-12-10 15:12:48 -05:00
Florian Apolloner
c78bd9eff2
Merge pull request #2048 from loic/ValidationError.message_dict
...
Trigger AttributeError in ValidationError.message_dict when error_dict is missing.
2013-12-08 05:06:39 -08:00
maurycyp
e2e2482391
Renamed first argument of class method to cls
2013-12-07 20:13:53 -05:00
Claude Paroz
5c61b8519d
Fixed #18531 -- Deprecated Geo Sitemaps
...
I've chosen a quick deprecation path, as Geo Sitemaps themselves
are deprecated from some time now.
2013-12-07 21:46:03 +01:00
Vajrasky Kok
a7cf48a2b7
Fixed #21573 -- Improved performance of utils.text.normalize_newlines.
2013-12-07 17:19:29 +01:00
Loic Bistuer
2e3c7d8820
Trigger AttributeError in ValidationError.message_dict when error_dict is missing.
...
The goal of this change is twofold; firstly, matching the behavior of Django 1.6
and secondly, an AttributeError is more informative than an obscure ValueError
about mismatching sequence lengths.
Refs #20867 .
2013-12-07 23:01:28 +07:00
Claude Paroz
65faa84de3
Removed unneeded string normalization in contrib.admin
...
With Python 2.7 and up, named parameter keys are not limited to
bytestrings any longer. This mainly reverts 3bd384aa62
.
2013-12-07 15:58:27 +01:00
Loic Bistuer
a8f4553aae
Fixed #21555 -- Made ValidationError pickable.
...
Thanks trac username zanuxzan for the report and original patch.
2013-12-07 18:58:37 +07:00
Claude Paroz
41ebc4838d
Fixed #21551 -- Reenabled loading fixtures from subdirectory
...
This was a regression in Django 1.6 that was only partially
restored in 839940f27f
.
Thanks Jonas Haag for the report.
2013-12-07 10:47:34 +01:00
Claude Paroz
8a9c8bb907
Fixed #21568 -- Added missing ModelMultipleChoiceField to_python method
...
Thanks dibrovsd at gmail.com for the report and Simon Charette
for the review.
2013-12-07 10:14:22 +01:00
Baptiste Mispelon
a020dd0a99
Fixed #21530 -- Prevent AttributeError in default URLconf detection code.
...
Thanks to @dmyerscoug for the report and original patch
and to @alasdairnicol for the added tests.
2013-12-07 03:21:58 +01:00
Alex Gaynor
ffc0e0ca37
Corrected a flake8 issue -- this line is imported for the purpose of re-exposing the name
2013-12-06 13:22:53 -06:00
Roger Hu
bbc73e6a12
Fixed #21566 -- Fixed AttributeError when using bulk_create with ForeignObject.
2013-12-06 20:20:16 +01:00
pegler
38e24d680d
Fixed #21554 -- Incorrect SQL generated when using multiple inheritance.
2013-12-06 14:12:38 -05:00
Ramiro Morales
362dd68fb2
Added new 'srtext' spatialite 4.x SpatialRefSys column to its model.
...
This is for general consistency in the GeoDjango DB backends.
Thanks Claude for the fix.
Refs #19678 .
2013-12-06 12:35:18 -03:00
Baptiste Mispelon
621c25c419
Added missing deconstruct() methods.
2013-12-06 15:23:34 +01:00
Baptiste Mispelon
72479a2957
Made the migration detector use meta.local_fields instead of meta.fields.
...
Refs #21010 .
Thanks to Loïc for the patch.
2013-12-06 15:23:21 +01:00
Baptiste Mispelon
19e4374971
Fixed ModelState breaking when unique_together has unhashable elements.
2013-12-06 15:22:52 +01:00
Baptiste Mispelon
54d9e3ccf6
Fixed error in ManyToManyField.deconstruct().
2013-12-06 15:22:52 +01:00
Baptiste Mispelon
f463789f62
Added app_label to the error message when field reconstructing fails.
2013-12-06 15:22:47 +01:00
Andrew Godwin
a06fd092ef
Merge pull request #2037 from bmispelon/invalidbaseserror
...
Fixed TypeError when rendering ModelState with multiple bases.
2013-12-06 05:48:21 -08:00
Ramiro Morales
9a73e7f40c
Fixed #19678 -- GeoDjango test failure with spatialite >= 3.0.
...
Thanks Julien for the report and Claude for the fix.
2013-12-06 08:51:45 -03:00
Claude Paroz
482ca0cecc
Renamed syncdb to migrate in spatialite backend
2013-12-06 10:00:09 +01:00
maurycyp
4d0c72eb68
Removed unreachable `else` in `try` block.
2013-12-06 01:10:52 -05:00
Baptiste Mispelon
aba75b0d71
Fixed TypeError when rendering ModelState with multiple bases.
2013-12-06 00:55:31 +01:00
Ramiro Morales
e36c165b14
Corrected setting name in gis test error message.
2013-12-05 18:22:37 -03:00
Andrew Godwin
e9c6d04224
Better error reporting when from_app_cache fails
2013-12-05 14:20:30 +00:00
Andrew Godwin
4ca39684ee
Fix poor variable name (flake8 warning)
2013-12-05 14:11:46 +00:00
maurycyp
ae734b75c1
Removed 'return' in __init__
2013-12-05 07:09:36 -05:00
Andrew Godwin
3b8e46cbc7
Migration VCS conflict detection and --merge for makemigrations
2013-12-04 16:01:49 +00:00
Andrew Godwin
ce05b8a69e
Don't make a second migration if there was a force-null-default addcol.
2013-12-04 13:56:22 +00:00
Andrew Godwin
df800b1609
Add clone() method to Field to get clean copies of it.
2013-12-04 13:55:45 +00:00
Andrew Godwin
ab587fa51a
Add --dry-run option to makemigrations
2013-12-04 13:55:20 +00:00
Andrew Godwin
1d20e6df95
Migrate prompts if you need makemigrations, runserver prompts for migrate
2013-12-04 13:34:01 +00:00
Bouke Haarsma
91c38ce4b2
Fixed 21406 -- Made blocktrans 'trimmed' option preserve line numbers.
...
Thanks Bouke Haarsma for report, fix and initial patch.
2013-12-04 08:36:20 -03:00
Aymeric Augustin
4d738fcc3b
Fixed #21546 -- Strengthened kqueue detection.
...
Thanks Loic Bistuer.
2013-12-04 10:11:42 +01:00
Ramiro Morales
12615dab78
Fixed #13476 -- Added support for color in console output under Windows.
...
Detect and use the services of the ANSICON third-party tool if it's
available.
2013-12-02 23:18:04 -03:00
Loic Bistuer
9ccde8cfaf
Fixed #21545 -- autoreload kqueue events weren't cleared which caused an infinite loop.
2013-12-03 00:12:04 +07:00
Krzysztof Jurewicz
b8be3055f1
Fixed #21543 -- Removed base_dir attribute in StaticFilesHandler.
...
This code seems to be an artifact of AdminMediaHandler removed in [5c53e30607
].
2013-12-01 18:03:59 -05:00
Tim Graham
fddb0131d3
Fixed #21535 -- Fixed password hash iteration upgrade.
...
Thanks jared_mess for the report.
2013-11-30 14:18:37 -05:00
Claude Paroz
2080bce695
Fixed #21358 -- Allowed runserver on non-English locales
...
Thanks svartalf for the report.
2013-11-30 19:17:36 +01:00
Tim Graham
f3e7ab366c
Removed gender-based pronouns per [ c0a2daad78
].
2013-11-30 08:37:15 -05:00
Alex Hill
ec73ce5d8a
Fixed comment typos.
2013-11-30 07:59:32 -05:00
Claude Paroz
6310d658b7
Closed file after reading pot file
...
Faulty line was introduced in 50a8ab7cd1
.
2013-11-30 11:31:17 +01:00
Claude Paroz
50a8ab7cd1
Enabled makemessages to support several translation directories
...
Thanks Rémy Hubscher, Ramiro Morales, Unai Zalakain and
Tim Graham for the reviews.
Also fixes #16084 .
2013-11-30 11:00:23 +01:00
Alex Gaynor
9af7e18f35
Fixed an unescisarily gendered pronoun in a docstring
2013-11-29 16:57:36 -06:00
Loic Bistuer
f563c339ca
Fixed #20867 -- Added the Form.add_error() method.
...
Refs #20199 #16986 .
Thanks @akaariai, @bmispelon, @mjtamlyn, @timgraham for the reviews.
2013-11-30 01:00:53 +07:00
Vajrasky Kok
7e2d61a972
Fixed #21380 -- Added a way to set different permission for static directories.
...
Previously when collecting static files, the directories would receive permissions
from the global umask. Now the default permission comes from FILE_UPLOAD_DIRECTORY_PERMISSIONS
and there's an option to specify the permissions by subclassing any of the
static files storage classes and setting the directory_permissions_mode parameter.
2013-11-29 08:01:30 -05:00
Simon Charette
42ac138009
Fixed a deprecation warning introduced by 96dd48c83f
.
2013-11-28 21:42:24 -05:00
Loic Bistuer
91fce675a4
Use 'update_fields' in RelatedManager.clear() when bulk=False.
...
Thanks Simon Charette for the suggestion.
Refs #21169 .
2013-11-29 03:01:08 +07:00
Claude Paroz
34b8a38558
Fixed #21496 -- Fixed crash when GeometryField uses TextInput
...
Thanks Rhett Garber for the report and initial patch.
2013-11-28 18:29:02 +01:00
Christopher Medrela
7477a4ffde
Fixed E125 pep8 warnings
2013-11-28 08:50:11 -05:00
Alex Gaynor
a5b94d9d4e
A handle of flake8 fixes
2013-11-27 16:42:39 -06:00
Loic Bistuer
f450bc9f44
Added a bulk option to RelatedManager remove() and clear() methods
...
Refs #21169
2013-11-27 19:45:22 +02:00