SayIt - a component for recording and storing public statements.


12 Versions


Support Django 1.10 and 1.11.



  • Drop support for Django before 1.8.
  • Add a web interface for importing Akoma Ntoso files. #435
  • Show speaker's speeches most recent first. #482
  • Hebrew and Slovak translations.
  • Improved testing using tox.
  • Use regular arrows in back/forward buttons. #509
  • Akoma Ntoso import
    • Add improved skip/replace/merge import options. #456 #434
    • On directory import, import files in sorted order.
    • Raise exception on empty 'showAs' attributes. #442
    • Warn if docDate missing attribute or doesn't parse. #492
    • Print out statistics in command line import. #460
    • Print traceback for import exceptions. #475
    • Make SSL certificate verification optional. #476
  • Bugfixes
    • Add translation of metadata. #497
    • Fix issue with importing empty docDate/source_url. #484
    • Compare section and speech keys with same type. #472
    • Fix redisplaying of speech date in Django 1.7+.
    • Give sections with no headings a title of 'Untitled'.
    • Fix flake8 part of pre-commit hook, and colour code output.
    • Fix display of speaker name when used in code.

Thanks to James McKinney, Duncan Parkes, Jaroslav Semančík and Matthew Somerville for their work on this release.


  • Improved initial running of example project, providing login links and buttons for adding or importing data. #222 #411 #419

Thanks to Dave Whiteland for suggestions.


  • Fix error in speaker colour display in Python 3.
  • Akoma Ntoso import
    • Better generic error handling, and of missing speaker TLCPersons

Thanks to Jaroslav Semančík and johnfelipe for reporting these issues.


  • Delete/ merge speaker front end interface. #407
  • PopIt and Popolo JSON import management command and front end. #231 #310
  • OpenGraph data output. #364 #416
  • Dots in debate subsection timeline, fix section divider display. #372
  • Spanish translation, bundled .mo files. #356
  • Nicer section and speaker forms. #350
  • Update the slug if you edit speaker or section. #433
  • Show more editing buttons on home/ speakers pages. #417
  • Improve speaker sorting, including ability to provide sort name.
  • Use /section instead of /sections for editing URL endpoints.
  • Akoma Ntoso import
    • Options to clobber or skip existing data on import. #387
    • No error if no files found on --dir import. #409
    • Support for source_url. #354
  • Development
    • Quieten unneeded warning. #406
    • flake8 everything, and add flake8 to pre-commit hook. #432
    • Speed up Travis.

Thanks to Duncan Parkes, James McKinney, and Matthew Somerville for their work on this release.


  • Fix a bug in South migrations introduced in v1.2 (80e3f0b4) where migrating could give an error when it tried to rename the content type.
  • Upgrade django-subdomain-instances to get its migrations.
  • Don't show keyboard instructions when no next/previous section.
  • Fix typo in link in README.

Thanks to Andrew Langhorn, Duncan Parkes, Matthew Somerville, and Martin Wright for their work on this release.


  • Don't error if speaker image caching fails
  • Add new-style migrations for Django 1.7
  • Allow loading of remote Akoma Ntoso files
  • Make it easier to override the ImportCommand behavior that is filesystem-specific
  • Remove requirement to run collectstatic before tests

Thanks to James McKinney and Matthew Somerville for their work on this release.


  • Cache speaker image from URL, using face recognition for thumbnail
  • Improve display of subsections on section pages
  • Unicode slug support
  • Paginate /speeches
  • Link truncated speech text to speech
  • Tweaks to speech templates, including showing speech titles
  • Add a date picker to speech/ section forms
  • Unhide unimportant form sections which contain errors
  • More translatable strings, including form labels
  • Reduce database queries in get_ancestors and search indexing
  • Model additions:
    • Speech 'type'
    • Section start date and time
    • Section/Speech num, heading (renamed from title) and subheading
  • Akoma Ntoso import
    • Allow anonymous speeches
    • Add support for more preface elements
  • Development
    • Easier local development settings override
    • No requirement to have auth middleware installed

Thanks to James McKinney, Duncan Parkes, Matthew Somerville, Martin Wright, and Zarino Zappia for their work on this release.


This is a small change to v1.1, switching to using a hosted version of django-bleach to remove a manual step when using Python 3.



Initial release to PyPI.