Adhocracy Changelog
===================

2.5.2 (2014-10-13)
------------------

Improvements:

- Allow to define post_logout_url.

- Allow to hide category navigation item.

- Allow to restrict locale choice.

- Sort milestones by date, secondarily by title.

Bug fixes:

- Fix badge form in overlay after validation error. (#943)

- Fix "Comment" translation. (#941)

- Redirect to entity_url after badge edit. (#940)

- Fix propose_join in non-instance case.


2.5.1 (2014-08-06)
------------------

Improvements:

- Allow to disable SSL verification for Velruse.

- Show short category description in category description view. (#934)

Bug fixes:

- Disable broken mako debugging. (#939)

- Fix config.get_value allow_overwrite for non-instance cases. (#938, #937)

- Fix display of user role in listing. (#936)

- Fix AuthCheck.propose_login. (#935)

- Fix test suite by making Adhocracy egg depend on raven.


2.5.0 (2014-07-20)
------------------

Improvements:

- Allow to log to sentry. (#930, #933)

- Allow to hide milestone timeline. (#931)


Bug fixes:

- No email uniqueness on database level (#932, fixes #790, #364)

- Load captchasdotnet with SSL.

- Raise meaningful exception if amendment doesn't have a selection. (#929)

- Fix category page if long description is empty. (#928)

- Fix category events. (#927)

- Fix iframe setup. (#926)


2.4.6 (2014-06-23)
------------------

This release contains an alembic migration which doesn't work on SQLite. SQLite
users can safely stamp their alembic setup instead of migrating:

    bin/alembic -c etc/adhocracy.ini stamp 1e296c7f5e8c


Improvements:

- Avoid multiple submits (e.g. double-click). (#925)

- Add traditional chines (Taiwan). Thanks to Charles Chuang. (#918, #924)

- Allow to hide proposal comments. (#919)

- Hide proposal rate_poll results (experimental). (#916)

- Add permission poll.show_result.

- Generic instance setting overwrites (#915). This is by default enabled for
  the following settings:

  - adhocracy.hide_individual_votes
  - adhocracy.listings.instance_proposal.sorting
  - adhocracy.comment_wording

- Better flash messages after sending of activation links - with spam hint.
  (#914)


Bug fixes:

- Fix custom submit handlers in JavaScript in iframes.

- Fix data-baseurl in overlays. This fixes JavaScript issues in overlays.

- Fix pluralization issues when compiling translations.
  (see upstream: camptocamp/c2c.recipe.msgfmt#3).


2.4.5 (2014-06-13)
------------------

Improvements:

- Better flash messages after sending of activation links - with spam hint

- Allow to add html in category long_description (#913)

- Open formatting links in new tab

Bug fixes:

- Fix non-instance user badge form

- Fix abuse message function

- Allow advisors and higher to delete own comments by default


2.4.4 (2014-06-05)
------------------

Improvements:

- Improve fix-autojoin flash message if autojoin isn't needed.

Bug fixes:

- Autojoin imported users after activation. (#911, #907)

- Don't show sentiment in sectionpage comment edit form (#910, #899)

- Proper membership check in can.proposal.create (#908)


2.4.3 (2014-05-31)
------------------

Improvements:

- Allow to disable proposal pagination on instance level. (#906)

- Optionally require user to accept terms on register. (#903)

- Allow to define 'hide_individual_votes' on instance level. (#897)

Bug fixes:

- The guard decorator was not thread-safe. This allowed perpetrators to
  let other users execute controller functions with manipulated
  parameters. However, we could not find any siginifcant exploits based on
  this bug. (#905)

- Fix some permission checks in the context of containerpages. (#901)

- Fix userbadge assignment within overlay. (#900)

- Don't try to solr index form-feed characters.

- Don't allow amendment creation for non-joined members.


2.4.2 (2014-05-18)
------------------

Improvements:

- Show comment and sectionpage events in category event view. (#896)

- Use icon font for event and milestone icons.

- New tiny row type for event view (#888)

- Automatically choose button and various other colors  based on contrast.
  (#889)

- Allow to show instance list as tiles. (#890)

Bug fixes:

- Fix Brazilian translation. (#895)

- Fix regression in feedback form.

- Fix message in username choice dialog after OpenID login. (#892)

- Proper font invalidation

- Strip HTML from description in milestone row


2.4.1 (2014-04-30)
------------------

Release 2.4.0 had two minor bugs which are fixed in this patch release.

Bug fixes:

- The 2.4.0 release notes contained an error - solr reindexing requires a -c
  parameter.

- Do not fail displaying error messages.


2.4.0 (2014-04-30)
------------------

This update requires some manual adjustments:

- The translation files (.mo) are no longer included in the repository.
  Please run `bin/buildout install translations` to create them automatically.

- A Solr reindexing is necessary: `bin/paster index -c etc/adhocracy.ini`

- Due to a bug, some notifications failed to be created in the past. Please
  run `bin/adhocpy scripts/replay_notifications.py etc/adhocracy.ini` to
  create the missing notifications.

Improvements:

- Allow to configure separate domains per instance. This does not yet invlove
  single-sign-on between different domains. (#886)

- Improve error pages. (#884)

- Add description, events and milestones views for categories. They are mostly
  useful for embedding. (#883)

- Add captchas.net captcha verification. (#878)

- Scroll into view if needed after overlay resize. (#870)

- Solr-based milestone proposal pager (#865)

- Make maximum category long description length configurable. (#863)

- Add a new proposal sorting which is a combination of support and impact.
  (#858)

- Document adhocracy's mime type requirements. (#862)

- Document all settings in adhocracy.ini. (#857)

- Allow to configure default proposal sorting. (#860, #868)

- Responsive Search widget (#854)

- The translation files (.mo) are now built automatically when running
  buildout. (#741)

- Show item count in a tooltip in tagcloud facet. (#851)

- Better handling of connection erros with the external navigation. (#848)

- Instance specific static pages (#845)

- Link to category pages from proposal and page sidebars. (#847, #850)

- Gitignore generated CSS. (#839)

- Distinct styling for different kinds of show-hide buttons. (#841)

- Hide old dates on event carousel. (#838)

Bug fixes:

- Add a workaround for a caching issue with proposal lists if the description
  is displayed inline.

- Show 404 errors instead of blank pages on nonexistent instance subdomains.
  (#881)

- Avoid unnecessary requests on startup. (#882)

- Add missing documentation for upgrading an existing adhocracy installation
  in UPGRADING.rst . (#879)

- Avoid uneccessary delegateable invalidation. This significantly improves the
  performance of creation and update of proposals, norms and instances. (#876)

- Replace only specific message variables in mass messages. This avoids errors
  when using {}. (#875)

- Allow global admins to send mass messages in hidden instances as well.

- Warn user about exposing her email address when creating a message. (#873)

- Fix multiple bugs in traverse_watchlist, which resulted in missing
  notifications. (#871)

- Fix multiple small issues with mass messages. (#869)

- Don't query static pages in the same locale multiple times.

- Make sure badge impact is commited before proposal update. (#866)

- Fix some wrong redirects in badge management. (#831)

- Prevent moderators to elevate their permissions. (#840)

- Provide a fallback if `came_from` is missing in the velruse controller. (#853)

- Fix page/proposal title validation. (#849, #852)

- Various syntax fixes in INSTALL.rst, thanks to Rowan Thorpe (#843)

- Fix some issues with entity deletion. (#842, #846)


2.3.0 (2014-03-31)
------------------

Improvements:

- Add external StaticPage backend which can be used with the adhocracy.kotti
  or the adhocracy.plone backend.

- Add Brazilian Portuguese translation, thanks to Fabiano Rocha. (#817)

- The permission for user badge management is now separated from user group
  management. (#837)

- More work on responsive design. (#798)

- Enable sectionpages by default.

- Add script which allows to merge instances. (#806)

- Move mass message button to members list. (#822)

- Add preset "planning ideas". (#828)

- Allow to not show instance settings after instance create.

- Preview of a simple oEmbed API. (#795)

Bug fixes:

- Fix wrong redirect after badge management. (#831)

- Don't close overlay after badge management.

- Fix redirect after Velruse (Facebook) login. (#830)

- Fix warning if OpenID and Velruse login is disabled.

- Full width instance background. (#820)

- Fix certain links in overlays. (#816)

- Fix advanced settings for instance admins. (#821)

- Fix missing dependency in installation documentation.

- Fix register page.


2.2.1 (2014-03-21)
------------------

Improvements:

- Moderators can change the instance description and some other things by
  default.

- Instance overview now displays a button to the form where it can be edited
  for anyone with sufficient authorization.

- Instance Settings now contain an embed code for the event carousel.

- Several improvements concerning Facebook Login. (#813, #810)

- Compass and SASS are updated to the latest versions. (#812)

- Instance overview can be replaced by static pages. (#814)

Bug fixes:

- Fix URL query parameter encoding. (#808)

- Fix avatar for usernames with underscores. (#811)


2.2.0 (2014-03-19)
------------------

Improvements:

- Facebook login (#807)

- Admins can give other users the permission to edit and manage badges;
  moderators can edit and manage instances badges by default. (#805)

- Clean up notification priorities and user interface for selecting a
  priority over which users will receive an email. (#804)

- You can send a message to supporters/opponents/creators of proposals. (#679)

- All messages are now available in the dashboard. (#801)

- Allow to display instance logo as background image instead. (#793)

- Allow instance admins to choose from multiple themes. (#791)

- Add a profiling middleware for simple debugging. (#792)

- Allow to display tag facet filter as tag cloud. (#799)

- Prepare for responsive design. (Not all widgets have been converted yet)
  (#779, #780)

- Add a event carousel widget. (#776, #794)

- Allow to filter event stream by event type. (#776, #797)

- Show abstract instead of truncate content in page tiles. (#777)

- Add context variable "body_css_classes" to append context specific css
  classes to the body tag. The default classes are:
  * logged_in|not_logged_in,
  * instance_key_<key>,
  * global_nav_home|global_nav_instances,
  * added_static_content,
  * css_classes from the static pages backend.
  * instance-<instance_key>
  * controller-<controller_identifier>
  * area-<area_identifier>
  [joka] (#772)

- Update proposal list design. (#773)

- Update category page design to look more like the proposal list. (#774)

Bug fixes:

- Rewrite internal links in overlays to point to overlays. (#571)

- Avoid generic 403 error pages and display useful information instead. (#786)

- Fix unicode issues with urlquote. (#782)

- Strip markdown syntax on truncated texts. (#775)


2.1.3 (2014-02-21)
------------------

Improvements:

- Adopt breadcrumbs if proposal tab is disabled and category pages are enabled
  (#768)

- Hide dashboard instance chooser in single instance settings through
  instance.index permission. (#766)

- Sort milestone select items by date. (#769)

- Show milestone date in milestone select. (#770)

- Make user max bio length configurable. (#771)

Bug fixes:

- Fix broken solr connection with non-ascii characters (regression introduced
  in 2.1.2).

- Fix broken registration (regression introduced in 2.1.2).

- Fix build issues with non-ascii characters in scss files. (#761)

- Fix flex based grid tiles in Safari. (#763)

- Fix section page display issue with touch devices. (#764)


2.1.2 (2014-02-18)
------------------

This is mainly a bugfix release.

Improvements:

- a11y: Updated js.socialshareprivacy to 1.5 permits keyboard navigation.
  (#755)

- Sort instance member lists by member, not user age. (#750)

- More configuration options for Shibboleth authentication.

Bug fixes:

- Proper fallback on non-existant sort order entry. (#758)

- Only display locally relevant user badges in event stream. (#754)

- Remove user from member list after user left instance. (#753)

- Fix instance selector in user profile. (#751)

- Fix regression causing instance join to raise a 403 error.

- Fix adding subcomments on touch devices. (#748)

- Nicer display of grid tiles. (#757)

- Fix editing of database backed static pages.


2.1.1 (2014-02-04)
------------------

This is a patch release which actually allows upgrading to 2.1.x with the
instructions given below in the `2.1.0` sections. When upgrading from 2.0.0
to 2.1.x, simply jump to 2.1.1 directly by doing `git checkout 2.1.1`.

Changes:

- Make sure the `src/adhocracy/alembic/versions` directory actually exists in
  order to make `bin/paster setup-app ...` work.

- Update some dependencies.

- Fix search box placeholder for instances with quotes in title. (#740)


2.1.0 (2014-02-04)
------------------

This upgrade only splits the SQLAlchemy-related changes from the 2.0.0 release
in order to make sure all migrations are executed and the database remains in
a consistent state.

Changes:

- Update SQLAlchemy from 0.7.10 to 0.9.1.

- Switch from sqlalchemy-migrate to Alembic. (#219)


Upgrade instructions:
~~~~~~~~~~~~~~~~~~~~~

If you haven't upgraded for a long time (say six months or more), it's best to
delete ``parts``, ``eggs``, ``python/python-2.7`` and ``python/parts``
directories and rebuild everything according to ``INSTALLATION.rst``.

In any case, don't upgrade to 2.1.0 in one go, but upgrade to 2.0.0 first by
running::

    git checkout 2.0.0
    bin/buildout
    bin/paster setup-app etc/adhocracy.ini --name=content

And upgrade to 2.1.0 in a second step::

    git checkout 2.1.0
    bin/buildout
    bin/paster setup-app etc/adhocracy.ini --name=content

This makes sure the remaining sqlalchemy-migration based migrations are
executed in the first step, and the Alembic environment is initialized properly
in the second step.


2.0.0 (2014-02-03)
------------------

- Start doing releases using semantic versioning (#77). This release's
  changelog contains many changes from the past two years, but rather
  incomplete.

- Allow to list norms in a tiled fashion. (#714)

- Add container pages. These special norms act as containers of other norms.
  (#709)

- Proposal descriptions can now be shown directly in proposal lists. (#733)

- It is now possible to translate the English source strings through Transifex
  as it is done in all other languages. In Transifex, the `en_GB` language
  is used as the "translated" English langauage in contrast to the "source"
  English langauage and doesn't imply that british English shall be used.
  (#102)

- Automatically crop and center uploaded images (logos etc) to the desired
  size. (#711)

- Badges can now be managed in context. (#713)

- Add images and long description texts to categories. Categories can now be
  listed and individually displayed, each showing all assigned proposals.
  (#695)

- Added user import script. (#649)

- We redesigned the instance settings. The most notable change is the added
  possibility to select presets on instance creation. (#680)

  The user import and massmessage services have been moved.  They can be found
  on the members index and instance overview, respectively.

- It is now possible to follow instances. (#655)

- All milestones now must have a date. (#658)

- Added installation option to freeze the complete installation. (#289)

- It is possible to select whether other users can edit a proposal.
  We added an instance option to set the default value of that option. (#632)

- a11y improvements.

- Added replay notification script, which recreates notifications inside the
  database which would have been created before notifications were stored in
  the database. (#624)

- We completely redesigned the user profile (#430) and dashboard (#429): User
  can upload an avatar now (#641) and view notifications online.

- Email texts are now wrapped at 78 characters per line. Long links are
  preserved. (#593)

- Added travis configuration which automatically builds Adhocracy using
  build.sh and runs the test suite.

- It is now possible to assign user badges in user import.
  It is also possible to define additional variables which can be used in
  the welcome email.

- Added an installation option to redirect to an instance instead of showing
  the front page. This is useful for single-instance installations. (#431)

- New comment design.

- Subnorms can now be displayed as sections. This way you can add a large
  document consisting of multiple sections and have each of these sections
  discussed separately.

- It is now possible to show all open proposals in the proposal list of future
  milestones. For milestones in the past, this doesn't have any effect. (#562)

  This will be used in the following scenario:

  - There's regular (offline) board meetings. These are entered as milestones.
    During a meeting, the board shall work on as many of the highest rated,
    non-frozen proposals as time permits.
  - All covered proposals will be assigned to the respective milestone, marked
    as frozen and badged as "implemented" (or whatever).
  - All not covered proposals will be covered in successive meetings.

- It is now possible to freeze single proposals. (#559)

- Overlays have their own urls now, so you can link to them. (#553)

- Add warning to users of unsupported browsers. (#111)

- Better user settings layout. (#174)

- Allow footer customization through static URLs. (#472)

- Add custom "show more" markdown extension. (#120)

- build.sh now has Fedora support

- Refactor all CSS and some of the templates to make development and
  theming easier. We also switched to SCSS.

- Added varnish reverse proxy [joka]

- Readd bin/test to run tests (wrapper for py.test) [joka]

- Update python from 2.7.4 to 2.7.5. Please rebuild python:

    * cd python
    * bin/buildout

  [joka]

- Use pytest testrunner instead of nose. (#343)

- Add shibboleth based authentication. (#359)

- Allow to disable tutorials installation-wide. (#54)

- Update buildout from 1.7 to 2.1.0 (#241). Rerun buildout with::

      bin/buildout -n

  If you have versions conflicts with distribute delete the old one::

      rm -r eggs/distribute..".

  [joka]

- The default way to isolate your python environment is now to compile
  python and PIL now instead of using virtualenv::

    Upgrade manual installation:
    ----------------------------

    Checkout python buildout

    * git submodule init
    * git submodule update

    Compile python:

    * cd python
    * python boostrap.py && bin/buildout

    Reinstall Adhocracy:

    * cd ../
    * rm -rf eggs/*
    * bin/python bootstrap.py
    * bin/buildout

    Upgrade build.sh:
    -----------------

    * rm -rf eggs/*
    * sh build.sh -u
    * sh build.sh -s

    [joka]

- Add controversy sorting method to proposals. (#258)

- Allow to hide voting lists from the UI. (#189)

- Badges with thumbnails. (#191)

- Option to disable registration. (#43)

- Login via email address

- Hierarchical categories. (#95)

- Formatted norms. (#192)

- Replace RabbitMQ/amqp with redis/rq (#220). This means that you have to
  provide a working redis instance if you want to use asyncronous
  jobs (highly recommended in production).
  The background process that processes the jobs is renamed from
  'background' to 'worker'. You can call it with
  `bin/paster --plugin=adhocracy worker -c etc/adhocracy.ini`

  Configuration changes:

  * dropped: adhocracy.amqp.* settings are not required anymore.
  * new: adhocracy.redis.host: An IP address redis can bind to
    (not a hostname!)
  * new: adhocracy.redis.port: The port redis will open
  * new: adhocracy.redis.queue: The queue name

- Mandatory email validation. (#142)

- Invisible badges. (#116)

- Instance-based user rating sorting. (#190)

- Disallow multiple usernames with only case differences. (#171)

- Dashboard style instance overview page. (#90)

- Support path based instances instead of subdomain only. (#62)

- Feedback instance pull in form. (#88)

- Lamson mailserver dummy for development purposes.

- Added facet search to the instance listing. The listing is based on solr now,
  please reindex. [joka]

- Instances can have badges now. To create instance badges use the
  site-administration -> badges form. To assign badges use the
  instance listing. [joka]

- New config option "adhocracy.registration.email.blacklist" that
  accepts a whitespace seperated list of email address and
  blocks registrations with those. Dots will be stripped before
  the test (to catch gmail addresses where dots are ignored by gmail).
  [csenger]

- New config option "adhocracy.listings.instance.sorting" that makes
  the sort options for the instance listing configurable. This
  possible values are: OLDEST, NEWEST, ACTIVITY and ALPHA. [csenger]

- Permission change: When we test the 'norm.create' permission
  (permission to create Norms/Topics/Themen we do no longer
  restrict it to users who also have 'instance.admin'. The main
  permission we check now is 'page.create'.

  Please check the permission 'page.create' in your permission
  settings (<base_url>/admin -> Permissions). [csenger]

- Give the users the option to permanently activate the twitter,
  facebook or google+ buttons. Save the setting in a wildcard
  subdomain cookie so it is valid across all instances.

  This requires a updated js.socialshareprivacy to work with
  our auth cookie. [csenger]

- Add the possibility to overwrite templates in <adhocracy.site>/templates
  directory (like it's possible for static resources and static pages already.
  New templates there need a server restart to be picked up.
  [csenger]

- Deliver (almost) all resources with fanstatic. [csenger]

- Delegateables can have category badges. [joka]

- Instances can have badges, they are only valid inside that instance. [joka]

- Added option to set the smtp port. [joka]

- Many bugfixes.

- Many other unmentioned improvements.


1.2a4
-----

- Tooltips use jquery tools now. [joka]
- Open helper link, login and register form with overlay. [joka]
- Recaptcha support (disabled by default). [joka]
- Proposals can have badgets #263. [joka]


1.2a1
-----

- Users can have badgets #214. [carsten]
- Proposal listing with natural sort #212. [joka]


1.1 (2010-12-05)
----------------

- Join "Goal" and "Implementation" pages on proposals.
- Migrate from whoosh to solr.
- Allow single-instance mode of operation.
- Allow per-instance deactivation of norms.
- Remove wiki from system.
- Change from cron-initiated regular background processing.
  to continuous background queue polling process.
- Add INSTALL.txt and CHANGES.txt.
- Change from BSD license to AGPL-3.
- Update to SQLAlchemy 0.6.
- Many smaller bug fixes.


1.0 (2010-07-24)
----------------

- Initial stable release.
