Package: kotti_software
This is an extension to the Kotti CMS that adds a system for presenting
a list of software projects on your site.Find out more about KottiSetting up kotti_softwareThis Addon adds two new Content Types to your Kotti site.
To set up the content types addkotti_software.kotti_configureto thekotti.configuratorssetting in your ini file:kotti.configurators = kotti_software.kotti_configureNow 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 setkotti_software.collection_settings.use_batchingtotrue(the default value) the software projects will be shown on separate
pages. If you set it tofalseall software projects are shown
all together on one page:kotti_software.collection_settings.use_batching = falseIf you use batching you can choose how many software projects are
shown on one page. The default value forkotti_software.collection_settings.pagesizeis 5:kotti_software.collection_settings.pagesize = 10You 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 forkotti_software.collection_settings.use_auto_batchingistrue:kotti_software.collection_settings.use_auto_batching = falseWithkotti_software.collection_settings.link_headline_overviewyou
can control whether the headline of a software project in the
collection overview is linked to the software project or not. This
setting defaults totrue:kotti_software.collection_settings.link_headline_overview = falseParts of kotti_software can be overridden with the settingkotti_software.asset_overrides. Have a look to theKotti documentation about the asset_overrides setting, which is the
same as inkotti_software.Be warned: This addon is in alpha state. Use it at your own risk.Using kotti_softwareAdd a software collection to your site, then to that add software projects.
Here are ways to enter software projects:Enter the PyPI JSON URL onlyEnter 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:PyPIEnter 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”.Seehttp://pypi.python.org/pypi/Kotti/jsonto see the JSON that is parsed.GitHubEnter 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 inhttps://api.github.com/repos/geojeff/kotti_software. You may enter this GitHub
info along with the PyPI URL, or use the GitHub info only.BitbucketEnter 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}.Work in progresskotti_softwareis 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.DevelopmentContributions tokotti_softwareare very welcome.
Just clone itsGitHub repositoryand submit your contributions as pull requests.Note that all development is done on thedevelopbranch.masteris reserved
for “production-ready state”.  Therefore, make sure to always base development work
on the current state of thedevelopbranch.This follows the highly recommendedA successful Git branching modelpattern,
which is implemented by the excellentgitflowgit extension.Testingkotti_softwarehas 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 runningpy.testfrom the source directory (you might need to runpython setup.py devto have all
the test requirements installed in your virtualenv).TODOAdd i18nAdd navpill-style and table-style list views for projects; make list style
selectable in edit menu [Can/should this be punted to Kotti folder view?]Sort out and document metadata items available in setup.py vs. those
requiring manual entry on pypi or in kotti_software. See what happens when
bugtrack_url, home_page, and download_url are added to setup.py. What is
download_url vs. package_url? Does url in setup.py map to home_page?
[Home page, Download URL, and Bugtrack URL are editable on pypi. If they
are not available in setup.py, then if set manually on pypi, are they
overwritten by new release pushes to pypi, or do they stick?]Check on need for required testing dependencies copied from kotti_mediaAdd support for using tags to categorize by group with an example,
or add a “sub-collection” property if the tags route is not workable.Presently, the view for SoftwareCollection does a site-wide search for all
SoftwareProject items. Should this be changed to context.children? [Ties in
with tags and/or categorization question.]Change use of all-jambed-up softwarecollection to software-collection and
software_collection; same for softwareproject. Or, OK as is?Add better visual separation between items in default list view (the only
list view style available now; see above todo item)Are on-load refreshes from pypi and github too expensive? What are
alternatives? Nightly cron job? More frequent cron job? Refreshing on a
timer? Every 5 minutes? Every hour? Manual trigger by admin?AuthorsJeff Pittman [geojeff]kotti_software started as a copy of kotti_blog, and also follows some design
and layout features of kotti_media.for kotti_media:Andreas Kaiser [disko]for kotti_blog:Marco Scheidhuber [j23d]
Mike Orr [mikeorr]CHANGES0.1.4Updated readme for revised usage instructions.0.1.3Renamed user to owner for github and bitbucket.In property descriptions, now using PyPI, GitHub, and Bitbucket spellings.Added bitbucket as JSON source.Removed generic JSON source option, and made all references explicit for
PyPI.0.1.2Added support for sorting in either ascending or descending order (default
is still descending).Added github repo API call as an alternate or sole JSON source.Cleaned up sorting code.0.1.1Added missing TODO.txt.Changed test urls to hit pypi/Kotti/json.Prepared MANIFEST.in.Updated README following pattern of kotti_media.0.1Initial release.Started with copy of kotti_blog.During development referred to kotti_media for adding url properties,
for setting up view classes, and for preparation of tests and use of
travis-ci.org.