Blog by Piotr Banaszkiewicz

AMY release v1.6

After (I think) 12 days of delay and 7 days of postponing, we finally closed and released AMY v1.6. It packs a whole lot of changes and bugfixes!

New features

  • I implemented a Data-Carpentry form for submitting requests for running self-organized workshops.
  • I added a histogram into frequency of instructors teaching report page.
  • Aditya Narayan added “Contact all” button on the all persons page.
  • Aditya Narayan continued W. Trevor King’s work on the Language model and now we can accurately track languages amongst multiple forms and related models (e.g. events and persons).
  • Aditya Narayan added a summary of tasks per role on person’s details page.
  • Chris Medrela added an application form for individuals wanting to become instructors.
  • I added Language support in additional forms (original PR was missing language support in some forms).
  • Big: Chris Medrela worked hard to bring GitHub authentication into AMY (with success!). There are some caveats, but we’ll smoothen them out for the next release. This work included opening AMY to other users (a move we were afraid of), and tests for each and every test to ensure we got the permissions right.
  • In the same PR, Chris Medrela added an AutoUpdateProfileForm used by users (who can log in from GitHub) to self-populate their profiles.
  • Aditya Narayan defined sorting of tasks on the person’s details page.

Bug fixes

  • I fixed a bug that caused IntegrityError when people with similar tasks (task has a role, person, and an event; tasks for these people were the same except person was different) were being merged. IntegrityError means that a uniqueness constraint was violated (ie. after the merge there were two Task(role, personA, event), which is prohibited).
  • Chris Medrela fixed interpolation on some of our charts that looked like the data was swinging, while in reality it wasn’t.
  • Aditya Narayan fixed default field values on the “All activities over time” page; now the fields have meaningful default values and the datetime inputs have a proper calendar widget.
  • Aditya Narayan reworked teaching frequency report to eliminate bug that duplicated numbers for people simultaneously marked as SWC and DC instructors.
  • I fixed some corner cases in event validation (behavior for required or optional tags/metadata (see below)).
  • I fixed a bug resulting in 500 Server error when accessing weblink to a non-existing Host.
  • Chris Medrela added one small migrations missing from the codebase.
  • Greg Wilson fixed a bug in API that prevented list from working on the generator objects for some renderers (CSV and Yaml).
  • Prerit Garg fixed a specific bug preventing saving a permissions form when person’s email field is empty.
  • Chris Medrela fixed a TrainingRequest form that display additional fields (that weren’t supposed to appear).


  • Chris Medrela refactored “tags” to “metadata”; tags as key-value pairs describing workshops’ date, times, location, instructors and helpers. We changed the naming to “metadata” to not confuse with Tag model.
  • Chris Medrela sped up our tests by changing hashing algorithm to a slower one, which – surprisingly – is one of suggested test speedup suggestions by Django development team.


I’d like to thank Greg Wilson for supporting us throughout the exams, and even when we disappointed him by continuously not delivering and rescheduling this release. Greg, you’re awesome!

Finally I also want to point to Chris Medrela’s blog where he regularly posts AMY’s development during this Summer of Code.