Full table of contentsΒΆ
- Overview
- User guide
- Sysadmin guide
- Maintainer’s guide
- Installing CKAN
- Installing CKAN from package
- Installing CKAN from source
- Installing CKAN using a Docker image
- Deploying a source install
- Upgrading CKAN
- Getting started
- Command Line Interface
- Troubleshooting Paster Commands
- Paster Commands Reference
- celeryd: Control celery daemon
- check-po-files: Check po files for common mistakes
- color: Create or remove a color scheme
- create-test-data: Create test data
- dataset: Manage datasets
- datastore: Perform commands to set up the datastore
- db: Manage databases
- front-end-build: Creates and minifies css and JavaScript files
- less: Compile all root less documents into their CSS counterparts
- minify: Create minified versions of the given Javascript and CSS files
- notify: Send out modification notifications
- plugin-info: Provide info on installed plugins
- profile: Code speed profiler
- ratings: Manage dataset ratings
- rdf-export: Export datasets as RDF
- search-index: Rebuild search index
- sysadmin: Give sysadmin rights
- tracking: Update tracking statistics
- trans: Translation helper functions
- user: Create and manage users
- Organizations and authorization
- Organizations
- Configuration File Options
- ckan.auth.anon_create_dataset
- ckan.auth.create_unowned_dataset
- ckan.auth.create_dataset_if_not_in_organization
- ckan.auth.user_create_groups
- ckan.auth.user_create_organizations
- ckan.auth.user_delete_groups
- ckan.auth.user_delete_organizations
- ckan.auth.create_user_via_api
- ckan.auth.create_user_via_web
- ckan.auth.roles_that_cascade_to_sub_groups
- Extensions
- Data preview and visualization
- FileStore and file uploads
- DataStore extension
- Apps & Ideas
- Tag Vocabularies
- Form Integration
- Linked Data and RDF
- Background tasks
- Email notifications
- Page View Tracking
- Multilingual Extension
- Stats Extension
- Config File Options
- General Settings
- Repoze.who Settings
- Database Settings
- Site Settings
- Authorization Settings
- ckan.auth.anon_create_dataset
- ckan.auth.create_unowned_dataset
- ckan.auth.create_dataset_if_not_in_organization
- ckan.auth.user_create_groups
- ckan.auth.user_create_organizations
- ckan.auth.user_delete_groups
- ckan.auth.user_delete_organizations
- ckan.auth.create_user_via_api
- ckan.auth.create_user_via_web
- ckan.auth.roles_that_cascade_to_sub_groups
- Search Settings
- CORS Settings
- Plugins Settings
- Front-End Settings
- ckan.site_title
- ckan.site_description
- ckan.site_intro_text
- ckan.site_logo
- ckan.site_about
- ckan.main_css
- ckan.favicon
- ckan.legacy_templates
- ckan.datasets_per_page
- package_hide_extras
- ckan.dataset.show_apps_ideas
- ckan.dumps_url
- ckan.dumps_format
- ckan.recaptcha.publickey
- ckan.recaptcha.privatekey
- ckan.featured_groups
- ckan.featured_orgs
- ckan.gravatar_default
- ckan.debug_supress_header
- Resource Views Settings
- Theming Settings
- Storage Settings
- DataPusher Settings
- Activity Streams Settings
- Feeds Settings
- Internationalisation Settings
- Form Settings
- Email Settings
- Multicore Solr setup
- Installing CKAN
- API guide
- Extending guide
- Writing extensions tutorial
- Using custom config settings in extensions
- Testing extensions
- Best practices for writing extensions
- Customizing dataset and resource metadata fields using IDatasetForm
- Plugin interfaces reference
- Plugins toolkit reference
- Validator functions reference
- Theming guide
- Customizing CKAN’s templates
- Creating a CKAN extension
- Replacing a default template file
- Jinja2
- Extending templates with {% ckan_extends %}
- Replacing template blocks with {% block %}
- Extending parent blocks with Jinja’s {{ super() }}
- Template helper functions
- Adding your own template helper functions
- Template snippets
- Adding your own template snippets
- HTML tags and CSS classes
- Accessing custom config settings from templates
- Adding static files
- Customizing CKAN’s CSS
- Adding CSS and JavaScript files using Fanstatic
- Customizing CKAN’s JavaScript
- Best practices for writing CKAN themes
- Don’t use c
- Use url_for()
- Use {% trans %}, {% pluralize %}, _() and ungettext()
- Helper function names should begin with the name of the extension
- Snippet filenames should begin with the name of the extension
- JavaScript modules names should begin with the name of the extension
- JavaScript modules should have docstrings
- JavaScript modules should unsubscribe from events in teardown()
- Don’t overuse pubsub
- Use {% snippet %}, not {% include %}
- Snippets should have docstrings
- Custom Jinja2 tags reference
- Variables and functions available to templates
- Objects and methods available to JavaScript modules
- Template helper functions reference
- Template snippets reference
- JavaScript sandbox reference
- JavaScript API client reference
- CKAN jQuery plugins reference
- Customizing CKAN’s templates
- Contributing guide
- Reporting issues
- Translating CKAN
- Testing CKAN
- Writing commit messages
- Making a pull request
- Reviewing and merging a pull request
- Writing documentation
- Projects for beginner CKAN developers
- CKAN code architecture
- Encapsulate SQLAlchemy in ckan.model
- Don’t pass ORM objects to templates
- Always go through the action functions
- Action functions are exposed in the API
- Use get_action()
- Auth functions and check_access()
- logic.get_or_bust()
- Validation and ckan.logic.schema
- Controller & template helper functions
- Deprecation
- CSS coding standards
- HTML coding standards
- JavaScript coding standards
- Python coding standards
- String internationalization
- Testing coding standards
- Transitioning from legacy to new tests
- Guidelines for writing new-style tests
- How should tests be organized?
- Recipe for a test method
- How detailed should tests be?
- Creating test objects: ckan.new_tests.factories
- Test helper functions: ckan.new_tests.helpers
- Mocking: the mock library
- Writing ckan.logic.action tests
- Writing ckan.logic.auth tests
- Writing converter and validator tests
- No tests for ckan.logic.schema.py
- Writing ckan.controllers tests
- Writing ckan.model tests
- Writing ckan.lib tests
- Writing ckan.plugins tests
- Writing ckan.migration tests
- Writing ckan.ckanext tests
- Frontend development guidelines
- Templating
- Resources
- Creating a new template
- Template Blocks
- Blocks in page.html
- Blocks in base.html
- Building a JavaScript Module
- Install frontend dependencies
- File structure
- Stylesheets
- JavaScript
- Database migrations
- Upgrading CKAN’s dependencies
- Doing a CKAN release
- Changelog