This is an extension to the Kotti CMS that adds a system for presenting a list of software projects on your site.
This Addon adds two new Content Types to your Kotti site.
To set up the content types add kotti_software.kotti_configure
to the kotti.configurators
setting in your ini file:
kotti.configurators = kotti_software.kotti_configure
Now you can create a software collection and add software projects.
There are different settings to adjust the behavior of the software.
You can select if the software projects in the collection overview
should be batched. If you set
kotti_software.collection_settings.use_batching
to true
(the default value) the software projects will be shown on separate
pages. If you set it to false
all software projects are shown
all together on one page:
kotti_software.collection_settings.use_batching = false
If you use batching you can choose how many software projects are
shown on one page. The default value for
kotti_software.collection_settings.pagesize
is 5:
kotti_software.collection_settings.pagesize = 10
You can use auto batching where the next page of the software projects
is automatically loaded when scrolling down the overview page instead
of showing links to switch the pages. The default for
kotti_software.collection_settings.use_auto_batching
is true
:
kotti_software.collection_settings.use_auto_batching = false
With kotti_software.collection_settings.link_headline_overview
you
can control whether the headline of a software project in the
collection overview is linked to the software project or not. This
setting defaults to true
:
kotti_software.collection_settings.link_headline_overview = false
Parts of kotti_software can be overridden with the setting
kotti_software.asset_overrides
. Have a look to the
Kotti documentation about the asset_overrides setting, which is the
same as in kotti_software
.
Be warned: This addon is in alpha state. Use it at your own risk.
Add a software collection to your site, then to that add software projects. Here are ways to enter software projects:
- Enter the PyPI JSON URL only
- Enter the PyPI JSON URL, along with the GitHub repo info for fetching the GitHub repo information, such as most recent push date and time, or do the same for a Bitbucket repo (You could do both, for a project with both GitHub and Bitbucket repos.
- Enter only the GitHub repo info, or the Bitbucket info, for a repo-only software project.
- Enter the title, description, date and any of: home_page, docs_url, package_url, bugtrack_url (manual entry), and specify that these values are not to be overwritten from values on PyPI, if they exist.
- Enter the date only (bare-bones entry, with just date and title, description, and whatever you wish in body -- useful for defunct projects). Set the date-handling choice to use the entered value.
The date-handling and description-handling select properties should be set according to the usage above, and whether the entered values are to be used, or if values are to be fetched from PyPI or GitHub or Bitbucket.
There are also boolean override properties for using a combination of manually entered values for home_page, docs_url, package_url, and bugtrack_url and the fetching of these values from PyPI.
Instructions for JSON sources:
Enter the url of the form "http://pypi.python.org/pypi/{project name}/json", where {project name} is the case-sensitive name of the project on PyPI. For example, for Kotti the url is "http://pypi.python.org/pypi/Kotti/json".
See http://pypi.python.org/pypi/Kotti/json to see the JSON that is parsed.
Enter the GitHub owner and repo, which will be used to build a GitHub API call of the form: https://api.github.com/repos/{owner}/{repo}, as in https://api.github.com/repos/geojeff/kotti_software. You may enter this GitHub info along with the PyPI URL, or use the GitHub info only.
Enter the Bitbucket owner and repo, which will be used to build a Bitbucket API call of the form: https://api.bitbucket.org/repostories/{owner}/{repo}.
kotti_software
is considered alpha software, not yet suitable for use in
production environments. The current state of the project is in no way feature
complete nor API stable. If you really want to use it in your project(s), make
sure to pin the exact version in your requirements. Not doing so will likely
break your project when future releases become available.
Contributions to kotti_software
are very welcome.
Just clone its GitHub repository and submit your contributions as pull requests.
Note that all development is done on the develop
branch. master
is reserved
for "production-ready state". Therefore, make sure to always base development work
on the current state of the develop
branch.
This follows the highly recommended A successful Git branching model pattern, which is implemented by the excellent gitflow git extension.
kotti_software
has 100% test coverage.
Please make sure that you add tests for new features and that all tests pass before
submitting pull requests. Running the test suite is as easy as running py.test
from the source directory (you might need to run python setup.py dev
to have all
the test requirements installed in your virtualenv).