Skip to main content

Boilerplate for modelling collections of collecting institutions.

Project description

Requirements Status

Overview

This package contains common code for the SFMOMA website and collection projects, such as:

  • Abstract collection models.

  • Database routers.

  • Elastic Search integration.

Abstract and concrete models

You must implement concrete versions of each abstract collection model in an app named collection within your project.

This will allow you to define different methods and behaviour for the models in each project (as if they were proxy models), but without any foreign key problems (as with proxy models).

Even if multiple projects access a shared database with different concrete collection implementations, only one set of migrations will be defined in the collection_migrations app, and they can be applied by any project.

Model import paths will be the same, so it should be possible to swap in a different concrete implementation by factoring it out of the project into a standalone app and then substituting it for another.

Projects that use a collection app MUST include the following setting to ensure the database is consistent across projects:

MIGRATION_MODULES = {
    'collection': 'collection_migrations',
}

These migrations are stored in the top level collection_migrations package, instead of collection_models.migrations, because collection_models is installed into projects and that confuses Django.

Shared Artwork Images

All projects should symlink the artwork_image_path to a common directory:

COLLECTION_MODELS = {
    'artwork_image_path': 'collection-artwork-images',
}

You can also configure options for artwork thumbnails:

COLLECTION_MODELS = {
    'artwork_thumbnail_options': {'size': (250, 250)},
}

Elastic Search Integration

Install the collection_models.search app and use the index_collection management command to populate the search index:

$ ./manage.py index_collection

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

glamkit_collections-0.36-py2.py3-none-any.whl (64.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file glamkit_collections-0.36-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for glamkit_collections-0.36-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 e634c6698a28edc9a258a8d92b4f01118f54ff3cbaa8ad6ade11bac8301e970c
MD5 5c746b337be39e5992446283fe79f4f3
BLAKE2b-256 028891460d6e5a524094ceaa31d3bffcbfbcc1eaa0a4ea1bc54d9d995125c419

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page