1. 22 Ara, 2013 17 kayıt (commit)
    • Aymeric Augustin's avatar
      99bd39ef
    • Aymeric Augustin's avatar
      Complained on override_settings(INSTALLED_APPS=...). · 517c24bc
      Aymeric Augustin yazdı
      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.
      517c24bc
    • Aymeric Augustin's avatar
      Improved set_available_apps() in several ways. · 16aae35c
      Aymeric Augustin yazdı
      - Tested consistency the current app_configs instead of INSTALLED_APPS.
      - Considered applications added with _with_app as available.
      - Added docstrings.
      16aae35c
    • Aymeric Augustin's avatar
      Expurged INSTALLED_APPS from code and tests. · 2239081f
      Aymeric Augustin yazdı
      Except the app cache code and a few specific tests, of course.
      2239081f
    • Aymeric Augustin's avatar
      Stop testing for inclusion in INSTALLED_APPS. · 9cdf1f6d
      Aymeric Augustin yazdı
      Removed some exception masking in the comments app that was harmful and
      couldn't be preserved easily.
      9cdf1f6d
    • Aymeric Augustin's avatar
      Renamed registered_model to has_model. · 70c9654d
      Aymeric Augustin yazdı
      This avoids possible confusion with register_model.
      
      Thanks Marc Tamlyn for the suggestion.
      70c9654d
    • Aymeric Augustin's avatar
      Stopped iterating on INSTALLED_APPS. · 65cd74be
      Aymeric Augustin yazdı
      Used the app cache's get_app_configs() method instead.
      65cd74be
    • Aymeric Augustin's avatar
      d4733b6d
    • Aymeric Augustin's avatar
      Populated models only when necessary in get_app_config[s]. · 45829933
      Aymeric Augustin yazdı
      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.
      45829933
    • Aymeric Augustin's avatar
      Deprecated load_app(). · f25fa9d8
      Aymeric Augustin yazdı
      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.
      f25fa9d8
    • Aymeric Augustin's avatar
    • Aymeric Augustin's avatar
      Terminated AppCache._populate() with extreme prejudice. · 86804ab0
      Aymeric Augustin yazdı
      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.
      86804ab0
    • Aymeric Augustin's avatar
      Implemented two-stage app-cache population. · 2b56d691
      Aymeric Augustin yazdı
      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.
      2b56d691
    • Aymeric Augustin's avatar
      Removed the app_config.installed flag. · 9b3389b7
      Aymeric Augustin yazdı
      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.
      9b3389b7
    • Aymeric Augustin's avatar
      Removed the only_installed argument of get_app_config[s]. · 972babc3
      Aymeric Augustin yazdı
      It wasn't used anywhere and couldn't be implemented any more since
      non-installed apps no longer have a configuration.
      972babc3
    • Aymeric Augustin's avatar
      Refactored registration of models. · 742ed987
      Aymeric Augustin yazdı
      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.
      742ed987
    • Aymeric Augustin's avatar
      73c9e65b
  2. 21 Ara, 2013 1 kayıt (commit)
  3. 20 Ara, 2013 4 kayıt (commit)
  4. 18 Ara, 2013 9 kayıt (commit)
  5. 17 Ara, 2013 9 kayıt (commit)