Python dependencies are managed with pip-compile and pip-sync from the pip-tools package. The dependencies are listed in dependencies/pip/, with core requirements in dependencies/pip/requirements.in. You may use pip directly with one of the compiled dependencies/pip/*.txt files, but consider using instead the pip-sync. Do not add new dependencies directly to the compiled dependencies/pip/*.txt files; instead, update the relevant the source dependencies/pip/*.in file(s), and execute make pip_compile after any changes. You can pass arguments to pip-compile with e.g. make pip_compile ARGS='--upgrade-package=xlwt'. To force building, use make --always-make ....
apt dependencies for Ubuntu 16.04 are listed in dependencies/apt_requirements.txt and can be installed with e.g. apt-get install $(cat dependencies/apt_requirements.txt).
- Pull the submodule into the
localedirectory withgit submodule update. - Optionally configure transifex to pull the latest translations into the
localedirectory withtx pull --all - Run
python manage.py compilemessagesto create.mofiles from the.pofiles. - To test out locales in the interface, double click "account actions" in the left navbar, use the dropdown to select a language, and refresh.
Top-level (null-parent) assets and collections can be found by including parent= in the query string. For other searches, construct a string using the Whoosh query language and pass it in as the q parameter, e.g. /assets/?q=name:sanitation. Fields indexed by Whoosh are:
name: a tokenized* representation of the name;name__exact: a space- and comma-escaped representation of the name, e.g. "Fun, Exciting Asset" would be indexed as "Fun--Exciting-Asset";owner__username: a tokenized* representation of the owner's username;owner__username__exact: a space- and comma-escaped representation of the owner's username;parent__name: a tokenized* representation of the parent object's name;parent__name__exact: a space- and comma-escaped representation of the parent object's name;parent__uid: the UID of the parent collection;ancestor__uid: a multi-value field containing the UIDs of all ancestor collections;tag: a multi-valued field holding space- and comma-escaped representations of each tag assigned to the object;asset_type(for assets only): a space- and comma-escaped representation of the asset's type string;text: the search "document," which is built by text templates.
When the q parameter contains a search term without a specified field, e.g. /collections/?q=health, that term is matched against the search "document" (the text field).
Construct a string using the Whoosh query language and pass it in as the q parameter, e.g. /tags/?q=asset_type:block. Fields indexed by Whoosh are:
name__ngram: the tag's name decomposed into n-grams, e.g.?q=name__ngram:catwould match tags named "dogs/cats" and "education";asset_type: a multi-value field containing the types (e.g.form,question,block) of all tagged assets;kind: a multi-value field containing "asset" when assets are tagged, "collection" when collections are tagged, or both;text: a tokenized* representation of the name, which serves as the search "document" (see note below).
When the q parameter contains a search term without a specified field, e.g. /tags/?q=health, that term is matched against the search "document" (the text field).
* Implemented by Haystack as a Whoosh TEXT field using the StemmingAnalyzer. Unsuitable for exact matching.