44
================

06/04/21 Popup warning field for animals #970
06/04/21 Use created date as default sort for media icon view
04/04/21 Support autocomplete/autofill in online forms #991
03/04/21 Stop line breaks in online form recipients breaking headers
01/04/21 Stop diary notifications using inaccurate substring match #989
01/04/21 Prevent invalid dates stopping additional fields being written
30/03/21 Audit changes to additional fields #988 
30/03/21 Audit changes made by clone_from_template #988
29/03/21 Failure to create trx should not stop receiving payments
25/03/21 Fix bug that set current owner to original on deceased animals
25/03/21 Use best practice cookie-based "remember me" #982
24/03/21 Permit inserts via sql interface to sensitive tables/columns
24/03/21 Configurable PDF zoom level via CSS
24/03/21 When deduplicating, validate that mobile phone contains digits
24/03/21 Allow voucher codes to be searched via global search
23/03/21 Update browser build targets for babel (minimum for CSP2)
23/03/21 Retire "remember me" due to potential security issues #982
23/03/21 Drop IE11 support
22/03/21 Choose from address book on bulk emails #968
22/03/21 Add extra incident animal keys and animal/incident jurisdiction #983
22/03/21 Online form: support additional fields for other records #986
22/03/21 Pick up areas where email auditing is missing #639
21/03/21 Update Hebrew translation (Saggi Neumann)
21/03/21 Update Spanish translation (Marga Gomis)
20/03/21 Strip potentially harmful tags before PDFising documents
19/03/21 Prevent hash tampering at SQL interface
19/03/21 Separate icon for locked/signed #985
19/03/21 Make Content-Security-Policy a sitedef instead
19/03/21 Fix bug in location filters cancelling each other on animal open
18/03/21 Leaking chooser destructors on medical screens
18/03/21 Lazy load changelog on about screen
18/03/21 Remove img.onerror inline code in favour of event delegate
18/03/21 Python 3 bug in HTML publish/image scaling
16/03/21 Add CSP and other security headers
16/03/21 Update moment.js to 2.29.1 (regex security flaw)
13/03/21 Hash stored online form submissions #974
12/03/21 CardCom Payment Gateway support (Saggi Neumann) #972
12/03/21 Microchip token for incident linked animals in doc templates
11/03/21 Unified solution for disabling autocomplete/autofill
26/02/21 Include expires on vaccinations wordkey
25/02/21 Last movement and last fosterer keys for querybuilder #271
25/02/21 Person last movement #271
24/02/21 Stop fosterers being placed into the owner field
19/02/21 Squash nulls when exporting as CSV
14/02/21 Separate transport time wordkeys
12/02/21 Show records created from online form as form/user #768
12/02/21 Prevent forms having GDPR out of sync with exclude #737
12/02/21 Avoid unnecessary audits updating adopter flag #958
12/02/21 Form validation on adoptables for old iOS devices
08/02/21 Support for current vet in CSV import/export
05/02/21 Include vacc and microchip stats on annual figures
05/02/21 output for Yes/No additional fields in query builder
02/02/21 utils.atoi strips leading 0, breaks phone comparison
02/02/21 Calendar view list/links don't work #961
01/02/21 Online form developer view without caching #960
27/01/21 Suggested linked emails when sending from animal/media
26/01/21 (depleted) stock level option to view 0 balances #637
26/01/21 Update Hebrew translation, rtl css (Saggi Neuemann)
25/01/21 csvimport: person should not be mandatory for 4,6,7
24/01/21 autocomplete attributes for username/passwords
24/01/21 document_repository service method to allow links to docs
24/01/21 Try to prevent browser autofill on email addresses
22/01/21 Preview incoming forms in a new page on mobile #932
22/01/21 Indicate adoptable status in mobile interface #27
22/01/21 Show a returning column on foster/retailer book
21/01/21 Support importing of animal logs #524
21/01/21 Fix focus bugs in TinyMCE 5 #938
21/01/21 Move owner req euth to Death, enable for non-shelter
19/01/21 Never overwrite RabiesTag with a blank
19/01/21 Add DisplayXIf* fields for PetPlan/form overlays
19/01/21 Online forms: support multiple ANDed showIf rules
19/01/21 Online forms: Yes/No defaults to blank so user must choose
19/01/21 Fix mail merge recipient list to cope with NULL
14/01/21 Showif can reference checkbox groups as nameI (0 based)
14/01/21 Cope with malformed showif rules
08/01/21 Option to skip fosterer emails if no medical items due
07/01/21 Fix for custom from addresses not loading
05/01/21 Searching does not trigger dirty form handling #492
05/01/21 Consistent transition speeds (and a little faster)
04/01/21 Do not clear the not for adoption flag during reclaim
02/01/21 Mail merge option to get the email recipient list #732
02/01/21 Refactor messy old address auto completion #562
02/01/21 Option to restrict state entry to US 2 letter codes #562
02/01/21 Exclude TNRs from annual figures species intake
31/12/20 Phone number formatting for US/UK/AU #499
31/12/20 Shelter view site mode #948
21/12/20 Fix #892 - bad disabled parameter to button
17/12/20 Temporarily roll back #892 due to unexpected side effects
17/12/20 Use case insensitive sort when regenerating person flags
16/12/20 Make "regenerate person flags" actually check and regenerate
15/12/20 Fix serious performance bug when selecting media #892
15/12/20 Do not allow media links to be emailed #892
14/12/20 Allow rabies tag to be cleared, update on delete #323
13/12/20 Update bg translation and correct date format
13/12/20 Suppress nulls when outputting subtable values in documents
13/12/20 Hide old rabies tag for new installs
12/12/20 Simple search includes historic rabies tag numbers
10/12/20 New icon for not neutered/spayed for clarity #749
10/12/20 Add an emblem and alert for no rabies vaccination #431
10/12/20 Move rabies tag to vaccination screens #323
09/12/20 Include exclude from bulk email in report criteria
09/12/20 Fix stock comments not being decoded in other languages
28/11/20 Fix waiting list/lost/found emails being sent as plain text
24/11/20 Include a link to Desktop/Tablet UI from smartphone #937
23/11/20 Add <<Signature>> wordkey since TinyMCE5 hides invalid images
22/11/20 Allow a blank in vaccination edit dialog/given by #930
20/11/20 PR and SOL: Stop no adoptables preventing cancellation #935
16/11/20 Include trial adoptions in timeline #764
12/11/20 Fix display of TNR and other special movements #933
12/11/20 Unredeemed voucher book view #934
12/11/20 strip csv values before imports
11/11/20 csvimport support to update weight and dob on existing
09/11/20 HomeAgain require city in a new TownCity tag
06/11/20 Add ActiveDiet fields to query builder
04/11/20 Include administering vet in medical table keys #779
02/11/20 Omit hidden conditional fields from form posts #931
02/11/20 Fix bug when calculating vacc reschedule dates
02/11/20 Add vaccination due to query builder
30/10/20 Undeletes for document repository and extra images
30/10/20 Add Kenyan locale
30/10/20 Image resizing should be a sitedef, not configuration
27/10/20 QB criteria: Add "Size is"
27/10/20 Check the adopter flag after a person merge
26/10/20 Fix deduct stocklevel from writing positive usage records
25/10/20 Include status data with <<AnimalMedicals>>
23/10/20 Prevent media.delete/expired from removing media
23/10/20 Stop reset_db from removing media
22/10/20 QB criteria: date brought in, vacc given/not given #602
17/10/20 Upgrade to TinyMCE 5.5.1
17/10/20 Fix TinyMCE mobile display and table borders
16/10/20 Support additional fields in query builder #602
16/10/20 Support people and incidents in query builder #602
15/10/20 Visual query builder #602
15/10/20 Correct schema handling of views for SQL editing
14/10/20 Fix SavourLife bug where fail condition marked adopted
13/10/20 Leave DBFS intact on delete for later deletion if needed
12/10/20 Support report SQL tokens in SQL Interface #901
09/10/20 Merge person comments when importing from CSV
09/10/20 Option to hide record views in audit trail (on by default)
08/10/20 Hide TinyMCE outline/drag handles during printing
07/10/20 maint_db_dump_lookups cron target
06/10/20 Fix TinyMCE default fontsize to match old version
06/10/20 Allow template paths to be specified in rename
06/10/20 Overridable default cut off of 3 years for PetLink chips
06/10/20 Allow OSM tile location to be overridden
05/10/20 Add locale for Mauritius, correct currency symbol for India
05/10/20 Extra common punctuation in alphanumber for tattoo/chip
05/10/20 Upgrade to TinyMCE 5.3.1
05/10/20 Start date missing from AnimalMedicals wordkey
05/10/20 Non-neutered adoptable status should use alert config item
01/10/20 SavourLife now support deleting listings via API
30/09/20 asm3-adoptable-reserved class and manual example
30/09/20 Support for writing record and report views to audit log #703
30/09/20 Support for writing sent emails to the audit log #639
29/09/20 Support MOVEMENTTYPE==0 to create reservations in import
29/09/20 ANIMALENTRYCATEGORY import field, export new fields
28/09/20 Diary note completion messages linked to wrong config item
27/09/20 Add ANIMALJURISDICTION csv import field
26/09/20 Close prediction attack flaw in document signing by email #917
26/09/20 Consistent keyboard handling for alphanumber widget #914
25/09/20 Email address books #179
25/09/20 Add HomeCheckedDate person wordkey
24/09/20 Use pickup address and brought in by when lost->shelter matching
23/09/20 Support good with kids over 5/12 when csv importing
22/09/20 Completion actions not appearing under audit slider #909
22/09/20 AnimalLogsTYPE wordkey/token #912
22/09/20 Remove signature placeholders on document sign preview #910
11/09/20 Advanced find for pickup location/reason for entry #683
11/09/20 Missing view person permission breaks staff rota
07/09/20 Apply DST to service calls #899
07/09/20 Merge additional fields during csv import #894
07/09/20 Prompt to clone animal #907
07/09/20 Prevent additional fields overriding base values #904
07/09/20 Stop control keys dirtying form, fix autofocus delay #906
06/09/20 Stop csvimport/merge duplicates creating blank lookups #900
05/09/20 Fix for subtle bug with trailing commas on units
04/09/20 Complete Portuguese translation (Nuno Leal)
31/08/20 Extra shelter view filters for color, species/breed+color
27/08/20 Fix fractional weight display on documents
26/08/20 Incorporate DST into locales and option to auto adjust #899
24/08/20 Prevent double-submit of online forms #897
23/08/20 Consistent handling of breed1 and colour fields for online forms
17/08/20 Online form person deduplication should not require address
17/08/20 Include diary for in email notifications
17/08/20 Reduce cache time of json/xml_adoptable_animals to 10 minutes
15/08/20 Fix adoptapet mappings for Budgie and Chinchilla
13/08/20 Option to include submission in form confirmation email #872
11/08/20 Image watermarking (Thanks Connor9220) #881
05/08/20 Options->Reports for emailing empty reports
04/08/20 $CURRENT_DATE+/-DAY$ report tokens
02/08/20 Merging animals and people should not update log.LastChangedBy
01/08/20 Update owner when active movement person is edited
31/07/20 Include vouchers when generating person documents #876
31/07/20 Add back deleted users that are dispatched ACO #889
31/07/20 Email empty reports by default and hidden config switch #890
31/07/20 Weight should be exported/imported #891
31/07/20 Include diary time on emails #885
31/07/20 Do not validate deceased date against intake for non-shelter
31/07/20 Use current user's site when finding similar people #664
27/07/20 Diary limits should not apply to edit screens, only home page
20/07/20 Online form: Email address field type #616
20/07/20 Substitute $$TITLE$$ token when attaching online forms #882
18/07/20 Fix for title case in online forms with scandinavian characters
13/07/20 Allow UTF-8 to be chosen for encoding of PayPal files
11/07/20 Update lookingfor limit to 5000
08/07/20 Advanced find animal filter for unaltered #873
07/07/20 LitterMates wordkey outputting too many records if LitterID blank
30/06/20 Never register chips if microchipped box is unticked
29/06/20 online forms should generate sheltercode if manual codes are on #869
29/06/20 Stop online form showif/multiselect becoming required
23/06/20 Use movement mod date to prevent intake blocking adopter reg #868
20/06/20 create_document_media passing str instead of bytes #867
19/06/20 Include diary note creator in email
19/06/20 Show match added/expires on looking for report #845
19/06/20 Suppress multiple spaces in flag names #866
16/06/20 Additional fields protected by wrong MODIFY_LOOKUPS permission
16/06/20 Add animal Jurisdiction field and hide/show/default config #650
15/06/20 translate relative img looking for wrong param animal/animalthumb
14/06/20 IncidentLogs table wordkey
12/06/20 Accept comments on move_* screens #860
11/06/20 Auto reload application without the button
11/06/20 PetRescue: display_contact_preferred_method_only support
10/06/20 PetRescue: Option to control contact phone numbers
09/06/20 Fix reload application bug in a cross-browser compliant way
09/06/20 Email dialog won't use name portion for multiple email addresses
09/06/20 Include ShowIf when copying, exporting and importing online forms
09/06/20 json/xml_held_animals service calls
08/06/20 Indicate not flag in emblem tooltip
07/06/20 Remove redundant minify_js from build, simplify rollup #850
06/06/20 Online form checkboxgroup fields #527
06/06/20 Allow flags to exclude animals from some services #849
05/06/20 Encode backticks when storing #848
05/06/20 Fix bug in email dialog that kept spawning events
05/06/20 Request payment email now correctly references all linked data
05/06/20 move_adopt: not for adoption should only be a warning
04/06/20 Fix email address when requesting newly created due payments
04/06/20 Fix bad substitution of & in HTML template URLs 
04/06/20 "needsfoster" additional field for Petrescue/SavourLife
03/06/20 Add "ActiveDate" alias to movements to combine dates for sorts
03/06/20 Support for async/await for older browsers #800
02/06/20 Validate times in online forms on submit #840
01/06/20 Apply client side image rotation, remove exifrestorer dep #844
01/06/20 Do not scale images twice, fix iOS applying orientation #844
31/05/20 Fix for null values when sorting from search
30/05/20 Support for Petcademy #832
29/05/20 Trailing empty flags caused by merge/adopter #838
29/05/20 Allow Created Date as a person find column #841
29/05/20 Validate dates in online forms on submit #840
29/05/20 Allow CSV import for animal flags #842
28/05/20 Fall back to old thumbnails if object-fit unavailable #839
28/05/20 Compatibility layer for older Safari and IE11 #800
27/05/20 Filters to show previously given on all medical books
26/05/20 Separate online form permissions for adding and deleting forms
26/05/20 Fix bad casing on known online form fields #835
26/05/20 Add separate permission for viewing online forms
26/05/20 Choose a sane default email when emailing from an animal
25/05/20 Include payments when generating person documents
25/05/20 Allow customising of reply-to/msg on fosterer weekly email #537
25/05/20 Option to have PDF copy of signed document sent to signer #517
25/05/20 Updated Hebrew translation (Saggi Neumann)
23/05/20 animalthumb translation broken when generating PDF
22/05/20 Use inline buttons for editing in tables for consistent style
22/05/20 Add copy service URL button for extra images 
22/05/20 Media disable scaling option did nothing for DnD
22/05/20 dbms.get_id_cache for safer id generation on non-postgres
21/05/20 Buttons to copy extra images and form URLs to clipboard #834
21/05/20 Prompt user to reload when new software is deployed #833
21/05/20 Fix bad icon alignment, fix no longer needed in JQuery UI
21/05/20 Handle flipped EXIF orientations (selfies, etc)
21/05/20 Support for Chinese characters in mailing labels via unifont
21/05/20 Make CTRL+A select all transactions in accounts screen
21/05/20 Minimum lengths when looking for similar cell/email
21/05/20 Allow < and > operators for Show If #294
20/05/20 PetFinder require the CSV headings to process blank file
19/05/20 Fix for broken mail merge params after refactoring
19/05/20 Support RTL when editing documents in Hebrew/Arabic #831
19/05/20 Add cache-busting protection for common method calls #830
19/05/20 Protect csv_report and html_report from abuse #830
19/05/20 Implement flood protection earlier in the chain #830
18/05/20 Fix for payment widget assuming tax rates are whole %
18/05/20 Show spinner when creating records from incoming forms #829
18/05/20 Perform S3 delete/put in background to improve responsiveness #829
18/05/20 Log and do not retry when Stripe notifies us of non-ASM payments
18/05/20 Add en_BM locale for Bermuda
18/05/20 Remove build time from home page, add about dialog #824
18/05/20 Show warning message for IE11 users that support is ending #800
18/05/20 Refactoring: remove IIFE for common, use const and use strict
17/05/20 Switch to jshint for static js checking, remove < IE11 support #800
17/05/20 Fix csv_parse to handle accidentally included UTF8 BOM #826
17/05/20 Add separate view staff rota and merge animal permissions #682
16/05/20 Only potentially create a blank reserve for the first reserveanimalname
16/05/20 Show warning icon when create person updates a banned person #586
16/05/20 Show an icon when online form create animal/person exists #586
16/05/20 Strip base64 data uris from online form emails #823
15/05/20 Merge person should update new current owner field
15/05/20 Make sure to/subject included when logging every email #820
15/05/20 Better HTML to text support for emails #820
15/05/20 Refactor timeline to work with SQLite so all queries unit tested
15/05/20 Remove news and cached reports from config and put in disk cache #821
14/05/20 Fix null error when auto-emailing diary notes
14/05/20 Fix ShowIf to work with radio buttons
14/05/20 Attach license documents to both animal and person
14/05/20 Fix looking for to use updated good with children values
14/05/20 Remove taxes/fees from stats
14/05/20 Add PaymentFee wordkeys, PaymentAmount becomes net for compatibility
14/05/20 Do not include received payments in payrefs at the checkout
14/05/20 Support for separate tax income transactions, fix gross payments
14/05/20 Show "Email To" column when editing reports
14/05/20 Show full totals on payments, fix move_adopt sales tax on fees
13/05/20 Rename stripe to stripeh to avoid collisions on Python2
13/05/20 Option to calculate sales tax exclusively
11/05/20 Include owner<>currentowner when showing person links and icon #180
11/05/20 Do not show original owner/non shelter on person links #180
11/05/20 Reparent audit records during merge #792
10/05/20 Add visible option for when to highlight over due reserves
10/05/20 Make "exclude under weeks" publishing option an editable number
09/05/20 Hide HTML5 required attribute from invisible fields so form submits #294
09/05/20 When no animals available, send blank files to FTP adoption sites #751
09/05/20 Fix malformed HTML in media/signing menu
09/05/20 View littermates from litters should include deceased
08/05/20 Payment amounts should be gross #614
08/05/20 Add owner field for animals independent of movements #180
08/05/20 Stack emails vertically in edit online forms to help layout
07/05/20 Online Form: Skip Logic/Show If functionality #294
07/05/20 Fix introduced bug in person docs with no animal on reserve
06/05/20 Make animals optional for reservations #785
06/05/20 Fix bug in nb locale when issuing update queries
06/05/20 Fix sorting of notes containing dates in media table view
05/05/20 Fix writing of insert SQL to handle apostrophes correctly
05/05/20 PetLink will not accept more than 1 email address, strip/split if found
05/05/20 If minimap editing is on, allow right click to move pin #815
05/05/20 pdf renderer directive to switch to pisa over external cmd
04/05/20 Filter out empty CSV rows during imports to prevent harmless errors
04/05/20 AdoptAPet: Missing mapping for Havana->Havana Brown
04/05/20 Show ID on additional field editing screen
03/05/20 Don't strip protocol-less absolute URLs from documents when translating
03/05/20 Hide asilomar fields for non-dogs and cats #813
03/05/20 Auto translate relative image links in the html_report service call
02/05/20 Allow homechecked by/date fields to be on all the time #812
02/05/20 Fix for embedded images in emails #738
02/05/20 Python2 fix for importing CSV files
01/05/20 Add "datelost" and "datefound" online form fields for lost/found
01/05/20 Add support for "microchip" online form field to lost/found
01/05/20 Better rewriting of img links in docs, add media_file service call
01/05/20 Hide auto remove text if option is off #810
01/05/20 Add created since to person search
01/05/20 Add bounds checking to config numbers, tidy up
01/05/20 Configuration for removing incoming forms after complaints! #810
30/04/20 Strip dead img src before feeding to wkhtmltopdf #811
30/04/20 Show an emblem on NOT flag #805
30/04/20 Add selection of unicode glyphs to emblems #805
30/04/20 Fix find person columns not sorting in options #769
30/04/20 Add "Adoptable" find animal result column #711
30/04/20 Ability to view old litter records #807
30/04/20 Email button on animal records #809
30/04/20 Email documents from document repository #687
30/04/20 Leaving the incoming forms screen deletes processed forms #810
30/04/20 make format_date and format_time consistent with each other #808
30/04/20 Omit seconds for word processor clinic output (Julian Poidevin) #808
29/04/20 Fix display after reloading media table on edit
29/04/20 Option to share picture from share menu
29/04/20 Fix introduced bug in saving currency fields
28/04/20 Display option to turn off pink/blue borders
28/04/20 Mask Stripe secret key for security #799
28/04/20 Fixes for PayPal CSV import encoding (cp1252)
28/04/20 Refactor/rewrite of CSV parsing for py2/3 compatibility
28/04/20 Add media screen icon mode after universal user hatred of table #652
27/04/20 Online forms: Fix mandatory sig/image bugs caused by required move
27/04/20 Signed/unsigned document requests search/alerts #507
27/04/20 Fix all thumbnails to a consistent size with object-fit css
27/04/20 Use position: fixed with pageX/pageY for positioning callouts
27/04/20 Substitute animal tokens in email templates #759
26/04/20 Send media emails as multiple attachments to one message #405
26/04/20 Keep separate media created date #796
26/04/20 Retain media UI #343
26/04/20 Rewrite media UI to use a table #652
25/04/20 Stop online form signatures breaking layout in phone/portrait
25/04/20 Validate payrefs before generating checkout pages #463
24/04/20 Payment processor integration: Stripe support #463
23/04/20 csv import: allow import of unknown, fix match age
23/04/20 Strip whitespace from incoming form fields
22/04/20 Disk cache should only mkdir path folders in put operations
22/04/20 New default online form header with responsive design for mobile
22/04/20 Add location (no virtual) shelter view mode #791
22/04/20 Update online form image cap to 384Kb, clear invalid images
22/04/20 Update fr_CA translation (Stephanie Cordeau)
21/04/20 Payment processor integration: PayPal support #463
20/04/20 Remove old redudant table/col code from sql handler
20/04/20 Set online form explicit font sizes (fixes Chrome mobile) #787
20/04/20 Py3 fix for signing documents
19/04/20 Add released/TNR stats to home page #679
19/04/20 Add nullable change fields to animallitter to match ASM2 imports #496
19/04/20 Cell data-sort attribute, fix timeonshelter/age sorts in results #780
19/04/20 Online forms: put required indicator with label to prevent wrap issues
19/04/20 Remove unreadable mandatory column from form editor, use label indicator
19/04/20 Do not set reply-to header on form notifications if email submitter off #781
19/04/20 Increase quality of online form images to 640px
19/04/20 Add fortnightly payment frequency
19/04/20 Gracefully handle exif orientation missing in auto-rotate
18/04/20 Do not deactive found.org if login fails
17/04/20 Consider reserveanimalname when using online form Attach->Animal
17/04/20 identibase/anibaseuk incorrectly using US date format
16/04/20 Refactor decode_html to use HTMLParser and remove cruft
16/04/20 Fix unicode email header handling #771
16/04/20 Py3 fix for signing page service call
16/04/20 Restrict online form field labels to match field length
15/04/20 Require at least 6 digits for searching phone numbers
14/04/20 Add ReservationDate wordkey for active reserve on animals #777
13/04/20 Assign IDs and link labels correctly on online forms
13/04/20 Deduplicate owners on cell/mobile phone number #436
13/04/20 Strip non-numbers from phone number fields and query in search #776
13/04/20 Add log creation to bulk change animals #773
12/04/20 Use fixed short translatable field names in online form preview
12/04/20 Use DBFSID when accessing media for speed/accuracy
11/04/20 Audit user agent on login/logout #772
11/04/20 Don't update user activity on some endpoints for performance
10/04/20 Use field names for online form preview to save space
10/04/20 Remove foster only restriction on coordinator/fosterer shelterview
10/04/20 Add Hong Kong locale
09/04/20 Refactor to generate all possible js statically #770
08/04/20 Use flock/mutex around disk cache to prevent multiprocess bugs
08/04/20 Online form create animal not setting size or default location
07/04/20 Add missing OrganisationEmail wordkey
06/04/20 Selecting OwnerAddress twice in get_donation_query breaks view

43
================

06/04/20 animaltest dbupdate creates every time instead of checking
06/04/20 Check types from disk cache in case of collisions
05/04/20 When publisher checks mappings, only consider current shelter animals
05/04/20 Remove whitespace from FTP passwords
04/04/20 Log and fail gracefully for badly encoded unicode parameters in input
04/04/20 Prevent drag and drop firing for same location #765
03/04/20 Fix broken date sort caused by #700
01/04/20 Hide timeline entries involving people if user does not have permission
01/04/20 Hide location emblem if user does not have view person permission
31/03/20 Trigger batch can regenerate person additionalflag column #762
31/03/20 Only force code change if year/month are not now #761
30/03/20 Password reset mechanism from login page #758
29/03/20 Also use disk rather than RAM for common query cache
29/03/20 Use disk rather than RAM for config cache
29/03/20 Substitute person tokens in new email templates #759
28/03/20 Do not create negative accounting transactions #756
28/03/20 Assume M/D/Y when importing dates in en_CA locale
28/03/20 Complete French translation (Julian Poidevin) #753
27/03/20 Built-in adopter person flag #726
27/03/20 Allow dotted/hyphenated date formats for locales #700
27/03/20 Do not count trial adoptions on annual figures
26/03/20 Shelter view "good with" section, add counts to flag mode
26/03/20 Email templates in dialogs and mail merges #502
26/03/20 Add "Location and Breed" shelter view mode
25/03/20 Fix for JQuery3 breaking Codemirror fullscreen
25/03/20 Python3 fix for signing pad
25/03/20 Python3 fix for importing online forms from HTML
25/03/20 Online form create person should update address of existing #222
23/03/20 Add incident completion time field #438
23/03/20 Display option to show ID numbers with lookup data
23/03/20 Manually add UTF-8 BOM to CSV files to stop Excel mangling them
23/03/20 Add styling for fullcalendar widget to asm theme
23/03/20 Rearrange CSS load order so JQUI theme can style other widgets
22/03/20 Include additional fields when exporting animal/person/incident csv #621
22/03/20 Remove species/litter fields from animal medical tabs
22/03/20 Import/Export animal tests and override key duplicate values #541
21/03/20 Show original owner address when matching lost to shelter animals #45
21/03/20 Optional animalviewnotadoptable template for unavailable animals #501
21/03/20 Fix action asm theme button styles since JQUI update
21/03/20 Add vaccination expiry/reschedule period #466
21/03/20 Add microchip to lost/found #392
17/03/20 AnimalTests wordkey: do not show result for ungiven tests
17/03/20 Show mandatory when browsing online form fields #626
17/03/20 Hide homechecker slider for non-homecheckers #379
17/03/20 Embedded add person including inactive jurisdictions #675
17/03/20 Make flags column available to find person/animal #735
17/03/20 Make person looking for summary column available to find person #645 
16/03/20 Undo button on medical regimens to ungive treatments #370
16/03/20 Person advanced search/phone contains not searching home phone #748
15/03/20 Refactor visibility of type slider fields #181
15/03/20 Reservation book sort desc, config for overdue display #725
15/03/20 OwnerLookingFor person wordkey #693
15/03/20 LitterMates animal wordkey #380
15/03/20 Options to send diary emails on add/change/complete #704
14/03/20 Hidden config switch for PetFinderHideUnaltered #743
14/03/20 Add voucher wordkeys and document functionality #35
14/03/20 Add voucher book and new fields Presented/Code/Animal #34
14/03/20 Fix splash to center/no-repeat for incorrect sized images
13/03/20 User roles screen broken by JQUI upgrade
12/03/20 Show cancelled reservations on the timeline #433
12/03/20 Fix JQuery Mobile by adding JQuery 2.2.4 #739
12/03/20 Show alert for clinic appointments due today #635
12/03/20 Configurable publisher frequency for adoption websites #686
12/03/20 Use Credit/Debit instead of Deposit/Withdrawal labels #393
12/03/20 Fix staff rota display after JQUI update
11/03/20 Add missing lkstransportstatus #742
11/03/20 Extra categories for good with children #454
07/03/20 Upgrade to JQuery 3.4.1 and JQueryUI 1.12.1 #739
05/03/20 Show description on stock level screen
02/03/20 Fix bug that caused 2 slashes in a value to break table sorting
01/03/20 Use standard flag code for online forms (fix missing exclude bulk)
29/02/20 Chrome shuffle bug: detect Back and force reload #716
29/02/20 Allow configurable thumbnail size under publishing options
28/02/20 PetLink only allow 2-letter ISO codes in country field
22/02/20 Add year dropdown to online form datepicker
19/02/20 Bug in SavourLife that prevented adopted animals being removed
18/02/20 PetLink, SmartTag, HomeAgain, AKC: Send person country #733
12/02/20 Copy diary notes from template animals #731
12/02/20 Form thank you page should scroll to top in case form is in iframe
11/02/20 Add MovementPayments wordkey
10/02/20 Decode addresses before loading into transport fields #729
10/02/20 Org tags missing from clinic documents #730
05/02/20 Write an initial location change for new animals #673
04/02/20 Merge additional fields on existing when processing online forms #712
04/02/20 Set animal location to user's site if default is invisible #723
30/01/20 Add full CSV escaping/quoting to all publishers
28/01/20 Better date of birth handling creating animals from forms
27/01/20 Unicode bug in tableform multiselect (affected form flags)
27/01/20 Allow a species to be chosen for online form adoptables #613
26/01/20 Advanced search cannot find flags with extended chars #715
17/01/20 Fix limit bug in adoptable_js add SHUFFLE sort #717
16/01/20 Fix OR bug that incorrectly showed completed diary notes for user
14/01/20 Add PaymentPersonAddress/City/State/Zipcode wordkeys
10/01/20 Enable Maddies publisher for all English speakers
10/01/20 Bug displaying animals in transactions with no shortcode
09/01/20 Workaround for Google Chrome 70 back bug from photo #716
08/01/20 Tokens for DocumentImgQRLink50/100/150/200 for size
07/01/20 Allow online forms to create new animal records #563
02/01/20 Consistent post_data return types between Python 2 and 3
31/12/19 found.org: Fail if we could not chdir to FTP folder
30/12/19 Fix bug displaying rota week dropdown in first week of year
28/12/19 PetLink: cancel and remove successes if username/pass is wrong #713
28/12/19 Set person country field when creating from online form #714
24/12/19 Bug in display of flags in find animal results
21/12/19 Retry AKC for 54103 and 54107 errors
17/12/19 Complete French translation (Roxanne ENGINDENIZ & Julian POIDEVIN) #699
17/12/19 Added support for French microchip ID #707
17/12/19 AppointmentFor wordkey shows real name #705
16/12/19 Movement date cannot be before intake date #651
16/12/19 Show pickup/dropoff on person links #706
12/12/19 Lint fixes to onlineform and bad required pattern
12/12/19 Logging should not convert the msg string
10/12/19 Show fosters in a separate category in multi chooser #691
03/12/19 Fix bug with use of # in dict config items #702
02/12/19 Debugging/tweaks of new AKC integration
02/12/19 found.org stop sending items overn 3 years old #697
29/11/19 Limit display of medical items for performance #701
28/11/19 Consistent limit of now+30 for datebroughtin
28/11/19 First version of standalone AKC Reunite publisher
26/11/19 Fix name2codepoint python3 reference
25/11/19 Add animal: Reload unit list on reset
24/11/19 Clinic: add shelter filter, fix bug in calendar links
23/11/19 Include manufacturer in <<AnimalVaccinations>>
22/11/19 Allow shelter animals to be booked into clinic #625
20/11/19 Hidden config for overdue days on fosterer emails
18/11/19 Do not include custom emblems when sorting tables #663
16/11/19 First draft of direct HomeAgain registration service
12/11/19 Remove arbitrary 100 link limit on home page
12/11/19 Send 9910010 chips to AKC
09/11/19 Export animals as CSV should be async due to CDN #692
06/11/19 Write audit records for changes to lookups #666
04/11/19 Wordkeys for medical and log history #689
04/11/19 Complete diary notes on death of animal #259
04/11/19 Find animal rename Comments contain to Description contains #688
01/11/19 PICKUPLOCATION and PICKUPADDRESS wordkeys only display for pickup
01/11/19 Default sort for lost/found is date desc
29/10/19 Fix online form race condition in collation id generator #690
25/10/19 Fix bad formatting of <<LicenseFee>> wordkey
24/10/19 Show date deceased in left shelter for on-shelter death #658
21/10/19 Calculate balances based on reconciled filter #685
21/10/19 Use (any sex) instead of (any gender) as default filter text
20/10/19 Add entry category to bulk change animals #669
20/10/19 Retain audit records for 6 months instead of 3 #681
09/10/19 Logging sent emails should be the default #665
09/10/19 CSV exports not escaping double quotes #676
09/10/19 PetFinder: Option to send photo URLs instead of images via FTP
08/10/19 PetRescue: support for states animals are adoptable in
30/09/19 Convert smartquotes to ASCII before sending to PetFinder
28/09/19 Up the report items to 120 before switching to accordion
28/09/19 Updated Spanish translation (Marga Gomis)
26/09/19 PetFinder: always reupload images due to FTP bug at PF
25/09/19 Add DisplayXIfGoodWith and DisplayXIfBadWith keys
16/09/19 PetRescue: Look back 6 months, dont repeat status updates #662
12/09/19 Validate against invalid estimated ages
12/09/19 Fix display of additional field labels on find results
12/09/19 Allow additional fields in waiting list results #657
12/09/19 Fix textarea bug that can cause labels to overlap
12/09/19 Py2/3 compatible unicode fix for CSV exporting #634
11/09/19 Final PetFinder change to send images by FTP for now #644
10/09/19 PetFinder require a specific order for the new format #644
09/09/19 Fix errors when account mappings are blank
06/09/19 Extra PetFinder fields send photo URLs instead #644
03/09/19 Validation when updating stock levels that we have valid ID
03/09/19 Remove circular deps between al, utils, i18n and configuration
02/09/19 Fix "message too long" errors from logger
31/08/19 Refactor publishers and write unit tests #655
29/08/19 Make sure manual deletion of online forms can be restored #654
29/08/19 Only override destination account if received was blank
27/08/19 Splash screen should cover the container #653
26/08/19 Clone animal should include all flags
24/08/19 Polyglot code to support Python3 (tagged PYTHON3) #634
24/08/19 Refactored into asm3 package to avoid Py3 collisions #634
23/08/19 Options for microchip/neuter alerts on specific species #638
22/08/19 Fix DONATIONGIFTAID type - check not integer
22/08/19 Prevent clone_from_template breaking default flags #647
15/08/19 Add <<MedicalLastTreatmentCommentsX>> token
14/08/19 Copy flags when cloning from template #632
12/08/19 Update hungarian translation (NOE Allatotthon Titkarsag)
08/08/19 Prevent drag and drop returning future adoptions #643
07/08/19 SavourLife.com.au publisher (Australia)
07/08/19 ExtraIDs column to hold animal IDs from 3rd party systems
03/08/19 Show person links for additional fields linked to incidents
02/08/19 Allow bulk deletion of animals #641
02/08/19 Allow setting of altered by on bulk change animals #642
21/07/19 Show trial adoption as an adoption status in shelter view
20/07/19 Allow decimal fraction lb weights #596
19/07/19 Allow option to hide financial stats on the home page
18/07/19 Prevent negatives and zeroes being used in regimens
18/07/19 Add DONATIONGIFTAID CSV import field #630
17/07/19 Petrescue: Bad access to SOURCENUMBER
17/07/19 Some preliminary Python3 work #634
15/07/19 Minor bug fix to bonded animal merging when publishing
11/07/19 IPv6 IP restriction support #631
05/07/19 Allow html_flagged_animals to search all animals #628
02/07/19 Add LogTime keys and DocumentImgSrc/Link for incidents #624
02/07/19 Fix fault uploading extra images due to bad unload #556
13/06/19 Use mark and sweep algorithm for removal #620
13/06/19 Fix the order of output for bonded animals to their IDs #620
12/06/19 Include readable fields when auditing changes (eg: users -> USERNAME)
12/06/19 Show additional person flags in fosterer mode of shelterview #597
12/06/19 Install recommended reports on home page if none installed #576
11/06/19 Add undelete backend support #391
07/06/19 Callout/info for staff record on user account #505
07/06/19 Show adoption coordinator in foster, reserve, trial books #618
07/06/19 PetRescue: Add new mandatory regional fields
07/06/19 Fix to prevent multiple favourite images showing duplicates
07/06/19 Add Current/Reserved/BroughtInBy/Original OwnerJuridsiction keys
04/06/19 Add new Portugese translation (Stelmo Barbosa)

42
================

01/06/19 Option to disable auto reload of medical book/tab on new
31/05/19 Fix for Chrome F11 bug (finally!) #512
30/05/19 Add en_AE locale for UAE
25/05/19 Record animal/person merge record IDs in audit trail
19/05/19 Fix bug where date was being cast incorrectly by get_stats
19/05/19 Add html_flagged_animals service call #610
19/05/19 Include submitted images as attachments with online form emails #160
19/05/19 Allow proper mimetypes instead of forcing octet-stream #405
19/05/19 Allow send_email to handle multiple attachments #405
17/05/19 Use a generator function for Export Animals as CSV #609
17/05/19 Use / instead of , as bonded animal separator to workaround PF bug
17/05/19 When deleting preferred media choose only non-exclude photos #608
17/05/19 Fix for non-int ID types coming back from MySQLdb driver #608
16/05/19 Include separate copy of online form images on media tab #607
15/05/19 Set default entry reason when creating animal from waiting list
15/05/19 Online form image field type #160
13/05/19 Allow payment and cost types to be unlinked from accounts
13/05/19 Only allow bank accounts to be used for destination override #605
10/05/19 Allow preview of HTML templates that bypasses cache #603
09/05/19 Register old-style 10-digit hex HomeAgain chips with Found
09/05/19 Output animal name in alt attribute of adoptable_js #587
09/05/19 Allow transaction fees with payments, set by PayPal import #566
07/05/19 When importing CSV/PayPal records include importing username #600
02/05/19 Allow VAT/GST to be selectively chosen by payment type #568
29/04/19 Fix bug where using "My Fosters" with no fosters shows all
27/04/19 Allow custom emblems to be set for additional animal flags #58
26/04/19 Show additional fields on person records under person links #593
26/04/19 Add ASK ANIMALS report criteria tag #542
25/04/19 Keep incoming forms around for 28 days, show how long on screen #592
25/04/19 Show ruled lines between incoming form preview fields #590
22/04/19 Diary cutoff on calendar is 6 months to match other areas
17/04/19 Add Calibri font to document editor
16/04/19 Add html_held_animals service call
12/04/19 Found should be able to support 9-digit chip numbers starting with 1
10/04/19 Support soft release to wild #520
06/04/19 More autocomplete hints to prevent autofill of number/curency fields
30/03/19 Person match fields could not be set by csv import due to insert bug
28/03/19 Add TransportReference field to link related transports together
25/03/19 Do not update geocode on address changes if manual entry is on
25/03/19 Add support for breeder_id PetRescue field
24/03/19 Add en_TW2 for English/Taiwan with 2 decimal place currency
24/03/19 Medical wordkeys should be based on NextTreatmentDue/LastTreatmentGiven
22/03/19 Add OwnerCountry field and country to transport #264
19/03/19 Fix conflicts with template animals and additional fields
18/03/19 Do not show user table filters due to Chrome autofill bug
18/03/19 Batch should update young offshelter animal ages for desex reports
18/03/19 Support for PERSONMEMBERSHIPNUMBER CSV import column
17/03/19 Allow editing of lat/long directly near minimaps #578
17/03/19 Additional fields with default values disallow blanks #577
16/03/19 Show SMTP/sendmail errors in UI
16/03/19 Set emailerrors from_address param to prevent Google bouncing errors
10/03/19 Datepicker, go to +3 years for some vacc/diary
10/03/19 Tweak to default animalviewadoptable template (sans-serif, grid layout)
07/03/19 Online forms should force absolute redirect URLs #574
06/03/19 Emailing should support BCC #564
06/03/19 Datepicker, allow quick selection of -30/+1 year
05/03/19 Fix infrequent unicode error when reading stored documents from cut/paste html
05/03/19 Add <<Jurisidiction>> person wordkey #545
05/03/19 Rename animal comments to description for clarity #569
05/03/19 add/subtract_years should do whole calendar years if possible
05/03/19 Report screen doesn't display roles correctly until refresh #555
04/03/19 Reinstate include incomplete medical items for documents
04/03/19 Access additional fields for original, broughtinby, current owner #572
04/03/19 Fixed view fields copying into autocomplete of tables #573
02/03/19 Autoset of include deceased/nonshelter on find animal not working
28/02/19 Add clinic calendar to available quicklinks
28/02/19 MPA: Use greatest of last change/active movement to trigger updates
21/02/19 Include media, log and diary in base record audit sliders #567
21/02/19 Add default animalviewadoptable template
20/02/19 Species and code mode of shelterview #548
20/02/19 Add MostRecentEntryCategory animal token #552
19/02/19 Make report_images match document_repository to mitigate upload bugs #556
19/02/19 Show satellite records on audit sliders #33
19/02/19 Validate email addresses for storage with people, reports and online forms
19/02/19 Hide additional non-relevant fields when editing mail merges/charts
18/02/19 Show gender border on all thumbnails #557
18/02/19 Wordkeys: Due keyword as alternative to Recent #565
14/02/19 Fix bug where report {tokens} can get confused with javascript
13/02/19 Sort adoptable/shelter animal dropdowns by name on online forms
13/02/19 Focus the correct multi-select when blank in online forms #558
13/02/19 Remove inactive payment types/methods from clinic create payment #560
12/02/19 <<CitationComments>> and <<AppointmentComments>> to disambiguate
12/02/19 Fix bug that causes non-ASCII chars to break outbound emails #513
11/02/19 Add 933* microchip range for Buddy ID
11/02/19 Fix bug where line endings weren't translated in html_adoptable_animals

41
================

28/01/19 Make the clear tables CSV import option clearer about what it does
25/01/19 Add quicklink for payment book
25/01/19 Calendar view should include clinic by default
25/01/19 Quicklink should be "receive a payment" not donation
23/01/19 Allow additional fields to be set for person records in online forms #410
22/01/19 Allow upto 10 animal images in animal_view
19/01/19 Fix bugs caused by multiple preferred images in merge animal
19/01/19 Use implant date as service date for non-shelter found registrations
18/01/19 Allow identibase to send with blank implant date
17/01/19 Fix bugs in linking to find results from shelterview status
16/01/19 Default escaping of line breaks for publishers is LF
15/01/19 Do bio processing for PetRescue
12/01/19 Grey out deceased animals in movement books/tabs #546
12/01/19 Use autocomplete="new-password" to work around Chrome autofill on dates
07/01/19 Enable adoptapet for en_CA fr_CA #543
04/01/19 Advanced person/animal search for flags should include terminator
03/01/19 Use asm3.conf instead of sitedefs #404
22/12/18 Add WEBSITEMEDIAFILENAME5-8 tokens for animal_view template
14/12/18 Incoming forms: Rename Create Animal to Attach Animal (via animalname) #532
13/12/18 PetRescue: support "good with" and "needs constant care"
12/12/18 Change "Released To Wild" to "TNR" when movement is for a cat #531
12/12/18 PetRescue: allow "bestfeature" additional field to set tagline
12/12/18 PetRescue: allow configuration of interstate flag
10/12/18 Validate that reports with criteria cannot be sent by email #526
10/12/18 PetRescue: Set multiple_animals where an animal is bonded
10/12/18 Do not include animals with no publishable images and include without == NO
08/12/18 Allow templates for non-shelter animals as hidden option #522
07/12/18 Use callouts on lookup data as tooltips get missed
07/12/18 Foundanimals, use group email for on intake registrations
04/12/18 Courtesy post was still obeying many adoptability rules and shouldn't
01/12/18 Fix error in intake counts on monthly figures when times enabled
01/12/18 Apply default death category when a deceased date is set #510
01/12/18 Add pickup/dropoff contact wordkeys for transport records #508
01/12/18 Hidden PetFinder config option PetFinderAgeBands #509
21/11/18 Add location to tooltips on medical calendar #519
19/11/18 Result count off by 1 for SELECT in sql interface
17/11/18 Include submission with confirmation message #516
16/11/18 Templates should not be applied to new non-shelter animals
06/11/18 Add signed/unsigned request reports to identify missing signatures #10
06/11/18 Record in the log when email signatures have been received #10
02/11/18 Bug in vacc where last vet hangs around, default by to current user
31/10/18 Update existing address info when importing CSV of people data #318
30/10/18 Allow drag and drop from foster to a shelter location #335
30/10/18 Time additional field type #304
29/10/18 Weekly fosterer email of medical info #366
29/10/18 Support for transport documents #479
29/10/18 PetRescue: Use immutable photo URLs
28/10/18 Advanced person search, phone number contains #486
28/10/18 Reschedule comments should go on the original vacc record #483
28/10/18 Add GivenBy column to animalvaccination #270
28/10/18 Fix bug where auto remove holds never worked on add animal #316
28/10/18 Fix bug where unspecified not adding dates properly #470
27/10/18 Maddies Pet Assistant: Send updates on record change
26/10/18 get_timeline was never cached due to now() invalidating it
26/10/18 Use a 15 min cache time on alerts/stats/timeline hp for large dbs
26/10/18 Do not do processing for disabled items on home page
24/10/18 Allow "My Fosters" location filter #72
22/10/18 Consistent field order for add/edit person screens #495
22/10/18 Separate adoption warnings from get_person for performance #500
18/10/18 Show reservation date on adoption movements for info
13/10/18 Allow reserve times to be stored, use form submission date/time
12/10/18 PetRescue: send state abbrv and use fosterer postcode if available
10/10/18 html.person_link_address that honours permissions on movement screens
09/10/18 PetRescue require breed_names as a list rather than csv
08/10/18 Refactor looking for, match comments on hidden comments too
02/10/18 Merge animal functionality #73
26/09/18 Similar name check considers animals still on shelter as well
24/09/18 PayPal import, recognise any type containing "Payment"
20/09/18 Bug allowed "Include without description" to override courtesy listing
18/09/18 Brought in warning should only apply to shelter/non-pickup/non-transfer
13/09/18 Merge GDPR contact flags during merge, CSV import, onlineform create #446
13/09/18 Add new smarttag microchip prefix 987*
13/09/18 More options for exporting animal data as CSV #484
13/09/18 ANIMALNONSHELTER CSV import field and support for export
13/09/18 "Do not publish" flag for html_adopted|deceased_animals, etc #485
12/09/18 Show clear error message when accessing subreports that don't exist
12/09/18 Fix bug that prevented group SUM working in $HEAD blocks
11/09/18 Add English/Japan locale, allow country override on options for geocoding
11/09/18 Include previous adopter virtual flag on advanced find person #476
11/09/18 Fix time bug in staff rota when generating "today" on mondays
10/09/18 Subtract 0.5 for currency rounding problems with negative amounts #480
10/09/18 Add en_NA Namibian locale
07/09/18 PetRescue: title case animal names to not set off all caps validation
07/09/18 Fix for bug that always enabled VetEnvoy publishers
04/09/18 Remove all client side geocoding in favour of simpler server side code
03/09/18 Add "Open in map" to incident, calculate on click for incident/person
03/09/18 Maddies Fund: Set new PetCode field
31/08/18 Fix long-standing bug in additional field default values #474
31/08/18 Separate additional fields on records from mandatory flag #474
27/08/18 RECENT wordkeys should use DateRequired if incomplete vacc set #477
27/08/18 Long term animal alert should obey sites
23/08/18 Update MPA when a new vacc is added or existing one changed
21/08/18 Option should be present to make additional number fields searchable
21/08/18 Refusing to share location breaks map reports #475
20/08/18 Fixed issue renaming flags containing apostrophes
17/08/18 Order regimens in document templates by regimen start date
17/08/18 PetRescue publishing via new API
10/08/18 Cap max links on home page at 100 to prevent overflows
09/08/18 Allow task cancel button to work for CSV/PayPal imports
09/08/18 Use browser location to center incident/report maps #189
09/08/18 new RESTful petrescue.com.au publisher 
09/08/18 Advanced find/adoptable - ignore cruelty/hold and quarantine
09/08/18 Use picture date to invalidate 24h thumbnail cache on adoptable js
07/08/18 Allow locationid=X to be passed to html_adoptable_animals
07/08/18 Warn when animal being adopted is unaltered/has no microchip #317
07/08/18 better/added siteid filtering for person/lostfound/waitinglist #469
04/08/18 Refactor db.get_database to remove boilerplate and simplify #468
03/08/18 Allow advanced find by entry category #381
03/08/18 New litters getting expiry date due to late Litter ID update #465
02/08/18 Allow advanced search by tattoo number #452
02/08/18 Apply site filter to staff rota #455
01/08/18 Remove non-null created/lastchanged columns from ownerlookingfor
31/07/18 Additional failure condition for PetLink (Microchip already registered)
29/07/18 When grabbing limited extra publishing images (pf/ap), prefer latest
27/07/18 nopic.jpg broken the PDF engine
27/07/18 Do not XSS escape publisher logs
27/07/18 Simplify adding publishers with publish.PUBLISHER_LIST #227
27/07/18 recalculate age groups for shelter view #422
27/07/18 recalc age group on publish commit was reverted, reapplied #396
26/07/18 Found animals want a 3 year limit on chip registrations
25/07/18 Parameterised query refactoring complete #252
22/07/18 AdoptAPet now support Mexican locales
21/07/18 DocumentImgLink broken on lost animal docs #432
21/07/18 Fix bug where missing state/county field breaks labels #462
21/07/18 DocumentImgLink support for person documents #437
21/07/18 Record holds in the log #342
21/07/18 Show microchip number in banner #337
21/07/18 Live release rate on annual figures #303
20/07/18 Cope with "this is a found.org chip" message from PetLink
19/07/18 Show grand total by organisation name in shelter view #443
19/07/18 Smarttag prefixes need checking in a second place to work
17/07/18 Allow clinic appointments to be booked for fosterers/reclaimants
03/07/18 Changing text of flags should update them in animal/person #460
03/07/18 Fix search bug caused by blank last changed dates
02/07/18 Show extra images button on document templates #453
02/07/18 Status and species shelterview filter #457
01/07/18 Remove old "password" password check #458
29/06/18 Bug in testing permissions for dam/mdam
29/06/18 Disable autocomplete on date/time fields in dialogs
29/06/18 Anibase publisher should respond to chipRegisterable=false
25/06/18 Bug that meant $$HTMLHEADER overrode $$HEADER
14/06/18 Allow litters to fluctuate upwards (returns/etc)
14/06/18 Advanced animal find filter: show declawed only
13/06/18 Option to show/hide full comments on all table views
13/06/18 Show log entries on a single line instead of the complete note
12/06/18 Add Malaysian locale, fix Indian rupee symbol to use Unicode
12/06/18 Fix new TinyMCE content.min.css to match old line-height and font-size
10/06/18 Upgrade TinyMCE to 4.7.13 (hope to fix infinite loop and iPad bug) #440
09/06/18 getDescription was not substituting $$ tokens publishing to PF/AP/etc
08/06/18 Read cols for autocomplete from cursor instead of results
06/06/18 sensitive=1 param to enable personal data in service calls
05/06/18 Strip personal data from *_shelter_animals service calls
04/06/18 Attach images even when merging csv imported animals
01/06/18 Export medical.csv file with animal/medical data
30/05/18 PetFinder: updated DSH/DMH/DLH/Tabby cat breeds and adoptapet mappings
22/05/18 Do not anonymise people surrendering animals in the cutoff period
20/05/18 Clinic UI documentation, active by default #9
20/05/18 Add create payment button for appointments #9
19/05/18 Dedicated clinic calendar screen where consultant can be chosen #9
19/05/18 AdoptAPet mapping Parakeet (Other) -> Parakeet - Other
19/05/18 Add MicrochipNumber2/MicrochipDate2/MicrochipManufacturer2 wordkeys
18/05/18 Add clinic invoice template, document support #9
10/05/18 Add clinic menu options, tabs and calendar view #9
09/05/18 Non-shelter animal documents should include owner data
08/05/18 Clinic invoice ui, refinements to overdue/complete #9
01/05/18 Online form create incident/lost/found/wl/transport should use html_print
28/04/18 Clinic waiting/consulting room UI and status buttons (unreachable) #9
27/04/18 Clinic lookups and permissions #9
27/04/18 Clinic backend and unit tests #9
24/04/18 Add twitter and facebook share buttons to default animal view #429
24/04/18 Add PERSONGDPRCONTACTOPTIN csv import field
23/04/18 Make multi-site a visible option
20/04/18 Include species column in medical books #367
18/04/18 Allow @ in asm3_adoptable_sort to compare numerically
18/04/18 Add "My Undispatched Incidents" to mobile interface #415
18/04/18 Record GDPR options in the log for new people
18/04/18 Fix access to first of type in wordkey tokens #383
18/04/18 Set flags when creating people from a filtered embed person #44
18/04/18 Add GDPR Contact Opt-In to advanced person find #416
18/04/18 Add GDPR Contact Opt-In to embedded person create #419
18/04/18 is_animal_adoptable logic should consider courtesy listings
17/04/18 html_adopted_animals, html_deceased_animals service calls #384 #385
16/04/18 animalview should be using get_animal_data to honour bonded animals #421
16/04/18 AgeGroup should be now until the animal leaves the shelter #422
15/04/18 Check incident permissions at server side during open
13/04/18 PetLink: Allow an owner account to be set for intake animals #423
10/04/18 Show ungiven tests with a blank result in mobile interface #420
10/04/18 Add Belgian locales
09/04/18 Reinstate view littermates including deceased littermates
06/04/18 Allow PNG to be uploaded and converted to JPG on the way in
04/04/18 PetLink cope with encoding errors in responses
02/04/18 Remove unnecessary locale lists #395
28/03/18 Fix bug where no staff/volunteer permission wiped out person filters
27/03/18 Add document template support to lost/found and waiting list #414
26/03/18 Transport book content can be too high (allow resize) #353
26/03/18 Filter out deceased animals from advanced find (require filter) #394
26/03/18 Include email address when logging sent emails #351
26/03/18 Store unsaved changes after executing diary task #291
26/03/18 Online forms, add time field type #163
26/03/18 Online forms support "emailsubmissionto" for extra addresses #327
26/03/18 Add GDPR Contact Opt-In form field type #408
23/03/18 Remove created/lastchanged fields from role subtables
23/03/18 Hide visual aids when editing generated documents #409
23/03/18 Add pdf zoom directive
19/03/18 Resolve redirects to absolute URLs to assist CDNs
17/03/18 Apply default log type in emails, style multi-select
16/03/18 Add deletions table in preparation for #391
16/03/18 GDPR Contact Opt-In field on person records #387
15/03/18 Allow DocumentImgLink2-500 to set img size
15/03/18 Use a short term cache on person_embed/post_id to prevent repeat lookups
15/03/18 Show debug info on retrieval of images and media
15/03/18 Open records in new tab not working from find pages #399
15/03/18 MPA not sending returned foster updates
14/03/18 Allow MPA to be used in Canada/Australia
13/03/18 Remove unused img_src code, make sure date/db in all calls for edge cache
10/03/18 Allow S3 DBFS cache entries to be recycled if they have < 24h left
09/03/18 Recalculate age group of adoptable animals #396
08/03/18 MPA: Go back 7 months rather than 1 when considering foster/adoption
08/03/18 Open in new browser tab causing constant reloads for related tabs
07/03/18 PetLink do not require street address
07/03/18 Make exclude from bulk email a flag instead of separate #284
05/03/18 Fix bug with shelter view flags where text overlaps
05/03/18 Fix permission bug that prevented non-super users editing accounts
04/03/18 Reinstate mutex to avoid lack of boto3 thread safety
04/03/18 Remove unused extension code #388
03/03/18 add animal_view_adoptable_html service call #390
03/03/18 html_adoptable_animals service call #193
03/03/18 Reinstate adoptionstatus/isanimaladoptable without db calls
02/03/18 PetLink: abandon registration on account locked error
28/02/18 Refactor publishers for substitution performance #386
27/02/18 Do not attempt to scale PDFs with more than 50 pages
20/02/18 Rewrite S3Storage to use boto3 #375
15/02/18 Fix permissions around generating/saving document templates
14/02/18 Do not require nopic.jpg in DBFS, fall back to static file #365
13/02/18 Export animals as CSV should only need EXPORT_REPORT permission
13/02/18 Document Template table refactoring and fixes #295
13/02/18 Add maint_db_update cron task
12/02/18 HTML Template table refactoring and fixes #363
12/02/18 Show "real" receipt number after adding payment instead of ID
12/02/18 Add email address validation and sending feedback #352
12/02/18 Fix bad opening balance code caused by time portion in default #361
12/02/18 Fix output of HomeCheckedBy on person find results
11/02/18 Complete and test AWS S3 storage module
11/02/18 Use with blocks around file access
07/02/18 Add en_KH (Cambodia)
06/02/18 Cache schema for code complete for 24 hours server side #355
06/02/18 Fix MySQL view performance on schemajs and get_person_query #354
05/02/18 Do not include currency symbols when exporting report to CSV
02/02/18 Merge flags failed when given only one flag

40
================

02/02/18 Fix bad mode passing from license renewal to generate doc
01/02/18 medical, test and vacc weren't testing for valid animals #349
30/01/18 Allow backslash in coding formats to escape chars
28/01/18 Include times in report dates exported to CSV
27/01/18 AgeGroup contains age group at most recent intake now
27/01/18 Add AgeGroupActiveMovement and update exit reports to use it
27/01/18 Tidy up batch trigger interface
27/01/18 Add batch trigger for all ages/times (variable data)
26/01/18 Add NeuteringVet* wordkeys 
26/01/18 Data retention options tab, removed document media years #344
26/01/18 Add infrastructure for RetainUntil to expire media
25/01/18 Add ANIMALIMAGE csvimport field, supporting HTTP or data URI
25/01/18 Add PERSONMATCHADDED/PERSONMATCHEXPIRES csvimport fields
24/01/18 Disable PetRescue due to removal of support by PR
24/01/18 Searchable jurisdictions for people/incidents #267
24/01/18 Add WebsiteMedia* fields for waiting list/lost/found/incident #330
24/01/18 Allow editing/setting of batch, expires and manufacturer in give #330
24/01/18 Add lost/found service calls #329 #334
23/01/18 Email document signing request is plain instead of html #210
23/01/18 Email document as pdf is plain instead of html message #311
23/01/18 Fix currency rounding error on report.SUM
22/01/18 Add new SmartTag prefix 900141
19/01/18 Option to mark new images not for publishing #336
19/01/18 Keep account/trx in entry order with second sort of ID
19/01/18 Convert new empty lookup items to (blank) during CSV import
16/01/18 Option to disable defaulting of manufacturer/batch #104
15/01/18 Don't strip the sign when importing currency amounts from CSV
11/01/18 DB specific leftpad/substring methods in database classes
11/01/18 Batch update person names fixes missing codes too
10/01/18 Only default batch/manufacturer if the vacc is given #104
05/01/18 Default batch number and manufacturer from last vacc of type #104
05/01/18 Add support for default payment method #274
05/01/18 Support currency grouping digits and radix for locales #319
05/01/18 Reinstate hide person record from user functionality
04/01/18 Use age group config defaults if not specified
04/01/18 Add text encoding support to CSV import for UTF16 and CP1252
04/01/18 Log some PetLink registrations as errors so we don't keep trying
03/01/18 Show time on shelter in days #322
29/12/17 Not registering microchips is the default for conversions #325
29/12/17 Add IsNotForRegistration column/flag to disable chip reg #325
29/12/17 Remove PetLink chip password field (they use tel no) #321
20/12/17 Fix message delete button not appearing for superusers #315
18/12/17 Fix PetLink publisher ignoring non-shelter/oo/cell phone
15/12/17 Don't show the intake date for non-template non-shelter animals
07/12/17 Auto fix multiple website/docphoto being set
07/12/17 Do not include animal/donations with donation/movement doc types
05/12/17 Use 5 minute memory cache for DB update locks #314
02/12/17 Add Altering Vet to Health and Identification #42
02/12/17 Add Returned By field to movements #29
02/12/17 Show reservation status column on animal/person movement tabs #261
30/11/17 Add CSV import fields PERSONMATCH* #312
29/11/17 Add anonymize button to person records #310
28/11/17 Option to anonymize person data after a retention period #310
28/11/17 Fix issue with NULL in second microchip field
22/11/17 Fix bug where person diary tasks would not request a date
20/11/17 Reset database from import CSV should delete orphaned DBFS items
13/11/17 Fix charting bugs by upgrading flot to 0.8.3 #2
13/11/17 Fix warning when adopting to a previous surrenderer #283
13/11/17 Only show miles for UK/US #307
13/11/17 Add second microchip number/implant date fields #17
09/11/17 HTML publish menu item not hiding as looking for wrong token
08/11/17 Template animals were only working from today instead of new intake
08/11/17 Prevent HTTPError subclasses breaking with no request #302
08/11/17 Dirty the animal form when a unit is selected from the dropdown #298
08/11/17 Use sortable tables for displaying audit trails
08/11/17 Show all incidents on animal record #11
07/11/17 Fix update_3010 to populate AdditionalFlags when importing from ASM2
06/11/17 Fix error in import PayPal where only the last flag was set
02/11/17 More relative URIs including for animalthumb when generating PDF
31/10/17 Add en_ES locale for English (Spain)
28/10/17 Fix mismatch XSS escaping breaking join for onlineform email
28/10/17 Support importing of licenses via CSV #301
28/10/17 CSV import/export VACCINATION* and MEDICAL* fields #282
28/10/17 Add ORIGINALOWNERJURISDICTION and PERSONJURISDICTION #299
28/10/17 PetLink warnings are still success
24/10/17 Refactored incoming online form and some animal updates #252
23/10/17 Fix bug where exclude from publish did not appear for .jpeg
20/10/17 Fix bug where .JPG could not be preferred web/doc
20/10/17 Enable CORS for service API
19/10/17 configuration and dbfs parameterised #252
18/10/17 Holds ending today alert should show tomorrow #297
17/10/17 Security fix for raw dates passed to calendar functions #296
16/10/17 animalcontrol refactored for parameterised queries #252
15/10/17 Hide movement date for reservations
14/10/17 50% of animalcontrol refactored #252
14/10/17 Refactored animal module to use parameterised queries #252
13/10/17 Include additional fields with *_shelter_animals call #288
13/10/17 Add xml/jsonp/json_recent_changes #286
12/10/17 Fix for displaying animal/person additional fields in documents
11/10/17 Cleaned up movement delete for dangling/phantom reserve #277
11/10/17 Allow CTRL+SHIFT+F to also be used for codemirror fullscreen #292
11/10/17 Writing database statements to execute log broke with params #290
11/10/17 Show 365 days as 1 year in date_diff #287
30/09/17 Ignore invalid geocodes (null, 0,0*) when drawing maps
27/09/17 Make cloning logs the default option for everyone with opt out on demand
20/09/17 Post CSV data as the body for petlink, rather than multipart
18/09/17 Allow register on intake to AVID users where register overseas is on
18/09/17 Show return button on foster book
16/09/17 Add asm3_adoptable_limit value to adoptable_js
15/09/17 Fix animal cloning to assign new receipt numbers, include tax
15/09/17 Fix PetLink publisher to use new REST API
13/09/17 Strip commas from email names to prevent splitting of addresses
11/09/17 Disable cloning of logs when cloning animals
10/09/17 Prevent intake dates being more than a week in the future
08/09/17 Saving licence documents using licence id instead of person id #280
06/09/17 Add support for vaccination and intake histories to MPA
05/09/17 Make complete/disabled rows a little more visible
02/09/17 Show PDFs inline from document repository
26/08/17 Add report header/footer tokens for organisation/address/city/state
25/08/17 Dump redundant delays and increase animation speed/responsiveness
24/08/17 Clone animal missing IsTrial/IsPermanentFoster/ReserveStatus
22/08/17 PayPal UI complete #56
21/08/17 First draft of PayPal CSV import backend #56
21/08/17 Use utf-8-sig for decoding unicode CSV to remove any BOM
20/08/17 Monthly figures double count of foster/retailer movements #234
19/08/17 Deleting FIV tests should not clear the FIV/L box/date
18/08/17 Add utils.UnicodeCSVReader, import csv files as UTF-8
17/08/17 Ability to specify asm3_adoptable_sort to adoptable_js
15/08/17 Export->SQL Dump(media) #225
14/08/17 Remove publisher limit, add as a param to get_animal_data #272
14/08/17 CC ignored on document signing request email #273
10/08/17 Add $CONST X=Y$ for constant values in report SQL #256
10/08/17 Wordkeys for FollowupDate2/FollowupTime2 and 3 #204
10/08/17 Show Cloning... dialog during clone
10/08/17 Auto return fosters on transfer as well as adoption #255
10/08/17 Fix media cloning bug #243
05/08/17 Handling for most common backend errors we see
30/07/17 Always include animalname/reserveanimalname in online preview too #238
30/07/17 Always include an extra date/time field in all online form posts #265
30/07/17 Always show first and lastname in online preview if available #238
30/07/17 Retain EXIF data when using HTML5 image scaling #6
29/07/17 Add animal should set first in list for invalid defaults #253
29/07/17 Show a column for breed on the reservation/foster books #232
29/07/17 Add PDF margin support #32
29/07/17 Include recent TNR, transfers and escapees in lost/found match #18
28/07/17 Anibase UK have rebranded as Identibase
27/07/17 Fix MySQL performance issue with get_person_query (Cliff Ingham) #263
27/07/17 Add jurisdiction table and person/incident fields #266
25/07/17 Refactor and add Person/Animal name resolution back to additional #262
20/07/17 Add media.DBFSID/MediaSize, remove _scaled names and PDF batch scale #260
19/07/17 Bad logic for KNOWN_ERRORS meant always true and no scaled PDFs
18/07/17 Filter fosterers to user site if set for shelterview fosterer mode
05/07/17 Use 2-step downsampling when scaling images for smoothness
27/06/17 Setting web preferred should clear exlclude from publish
16/06/17 Send maddie's fund animals in batches due to timeouts #89
12/06/17 Add MediaMimeType indexed field #230
11/06/17 Fix unit tests after database refactoring #230
10/06/17 Break up publish.py #233
09/06/17 Database insert/update/delete methods #230
08/06/17 Move query/execute into db object and port all execute_many #230
08/06/17 Move create of sequences/views/sp into db objects with get_id #230
08/06/17 Remove DISTINCT from animal/people as unnecessary and slower #231
07/06/17 DB refactor phase 1 (separate provider class abstractions) #230
06/06/17 Only write new or changed config items #229
06/06/17 configuration read-through cache for performance #229
04/06/17 Use new movement date for auto closing foster movements
31/05/17 Add WEBSITEMEDIANAME2-4 shorthand for publish.get_animal_view
31/05/17 Add extra default reports (intakes/outcomes, print for adopters, etc)
30/05/17 Remove meetapet publisher (supported via rescuegroups) #146
30/05/17 Calendar view lists not decoding HTML entities #223
30/05/17 Allow daily boarding cost to be set on bulk change
25/05/17 First development of Maddie's Pet Assistant publisher #89
25/05/17 Remove slow DB session storage - cachemem uses dictionaries or memcache
23/05/17 Completed full/json refactoring - rota/reports/waitinglist/etc #173
22/05/17 Refactor onlineforms and options #173
22/05/17 Refactor move_* targets, fix broken calls to templatelist #173
22/05/17 Refactor lookups/lostanimal/litter/mailmerge/report/report_export #173
22/05/17 Remove noisy debug publisher logging (only alert/success needed)
21/05/17 Overnight batch need only update variable data for shelter animals
18/05/17 Fix bug where required vacc 2 has to be > expired vacc 1 (>=)
12/05/17 Performance fixes for HTML publisher #215
12/05/17 Fix lookingfor/match report to use execute_many for performance
12/05/17 Only force a reload once from /main on build discrepancy
12/05/17 Limit max number of lost/found and looking for matches for performance
11/05/17 Fix bug with duplicate config items in PostgreSQL
11/05/17 Use LATEST_VERSION instead of build as seq/view/sp trigger
11/05/17 Record execution times for all batch functions
11/05/17 Reduce csv_report/html_report cache time to 10 minutes
11/05/17 Additional indexes to speed up get_alerts plus 120 sec cache
10/05/17 Allow order of diary task elements to be set #138
08/05/17 Allow user accounts to have logins disabled #211
07/05/17 Wire up cc field when sending media/as pdf #200
06/05/17 Audit deleted satellite records #201
06/05/17 Return nopic for missing animal_thumbnail #209
04/05/17 json/xml service call to get data for a single animal #207
04/05/17 Strip personal data for adoptable_js #207
02/05/17 Include species in adoptable/shelter online form dropdown
01/05/17 Refactor licenses, citations, logs, diaries #173
30/04/17 Add missing index on additional.LinkID for performance
26/04/17 Excluded images should not be counted in WebsiteImageCount
21/04/17 Fix unicode bug in saving and reloading diary notes/tasks #138
20/04/17 asm3_adoptable_extra callable function to add extra content to each item
20/04/17 Move csvimport to async framework #1
20/04/17 Complete function async task framework, switch trigger batch processes #1
20/04/17 Simplify adoptable_js for mobile devices and fix iframe on iOS #199
18/04/17 check_sql checks for unclosed $ and engine protects against them
18/04/17 Export animal csv frontend screen/option #21
17/04/17 Backend to export one or more animal rows as CSV #21
17/04/17 Coordinator and Fosterer shelter view mode #191
17/04/17 Allow zero payments through Receive a Payment screen #196
17/04/17 Allow movements to be assigned on Receive a Payment screen #196
17/04/17 Prevent non-shelter publishing bug with fosters/retailers #195
12/04/17 Add <<Organization*>> alias wordkeys
09/04/17 Only use postcodes for geo calculations in the UK due to Google issues
07/04/17 Convert email incident notes to use emailform #179
07/04/17 Record media tab emails in the log #12
05/04/17 Use iframe container for animal_view calls #182
05/04/17 Add asm3_adoptable_filters to select visible dropdowns and tagline #182
05/04/17 Add breed and size filters to adoptable_js #182
31/03/17 Extra clarifying text on mobile/email signing
31/03/17 Copy comments as well as fee to template cloned animals
30/03/17 Do not include animals with future adoptions when publishing #185
30/03/17 Show sheltercode box on mobile add animal if manual codes enabled #190
29/03/17 Fix bug with litter references not being URI encoded for litter mates
29/03/17 Add cost total wordkeys #177
29/03/17 Create audit records for bulk animal change
29/03/17 Signing pad too small on hi-res landscape tables #183
28/03/17 Basic support for importing online forms from HTML files #186
27/03/17 Fix memory error and show currency symbol with {SUM} #187
22/03/17 Include built in flags with $ASK PERSONFLAG$ and $ASK ANIMALFLAG$ #26
22/03/17 Secret GeocodeWithPostcodeOnly config for Google issues with Wales
21/03/17 Add given/remaining counts to medical book/tab
21/03/17 Add asm3_adoptable_filter support to adoptable_js #171
21/03/17 Prevent signing pad breaking if last document to sign is deleted
21/03/17 Document repository drag and drop support #139
20/03/17 Publishing option to exclude animals with no bio/description #157
19/03/17 Use person keys from latest movement instead of active for future adoptions
18/03/17 Add administering vet wordkeys to vaccinations and tests #166
18/03/17 Fix person_embed/lookup performance issues where not caching #176
18/03/17 Include mandatory additional fields on embedded add person widget #175
16/03/17 Revert #172 due to double load bug, remove IE8 hash/history support
16/03/17 Remove asilomar tables and code - no longer needed #5
16/03/17 Add new live asilomar figures report #5
16/03/17 Add missing Mountain Dog mapping for adoptapet
15/03/17 Fix weird back behaviour due to missing popstate #172
14/03/17 Include other return types in annual figures/returns
14/03/17 Fix miscount in monthly figures where start of day included intake
13/03/17 Use flake8 for make/compilepy
13/03/17 Refactoring code.py to remove smelly html.controller* code #173
13/03/17 Refactoring code.py to use new ASM/JSONEndpoint #173
12/03/17 Allow the (any) text to be translated in adoptable_js
11/03/17 Fix for adoptable_js comparing age groups with unicode
11/03/17 Support for asm3_adoptable_translate dictionary with adoptable_js
10/03/17 Add en_CA locale based on en_GB #164
10/03/17 Removed unused adjust_hour function #164
10/03/17 Add non-whole hour timezones along with fraction support #164
09/03/17 Add DDL dump and licence/payment data dump #165
08/03/17 online form: create transport bugs (type and city/state)
07/03/17 Chocolate Labrador Retriever mapping missing for adoptapet.com
07/03/17 Order medical books by required ascending #161
07/03/17 When cloning animal media, only copy dbfs for file media
06/03/17 mailmerge: generate documents should not support pdf/save #159
05/03/17 Mobile interface not honoring view staff/volunteer permissions #155
03/03/17 Person links to non-shelter should not show location #154
03/03/17 Detect all ASM/HTTPError subclasses, not just validation #3
03/03/17 Add en_BG locale for English/Bulgaria
03/03/17 Increased app thumbnails to 85px, removed redundant IE CSS expression()
02/03/17 Add species/age/gender selector to animal_view_adoptable_js #24
02/03/17 Make thumbnail default size 150x150 instead so they can be browser scaled
02/03/17 Add animal_thumbnail service call #24
02/03/17 Add animal_view_adoptable_js service call #24
01/03/17 Medical profile, loading single/multi broken #150
01/03/17 Status field does not belong on medical profile #150
01/03/17 Remove died off shelter from move_deceased #152
01/03/17 Add indexes for DiedOffShelter/NonShelterAnimal #151
01/03/17 update_foster_animal_statuses is redudant with foster on shelter #152
01/03/17 Remove died off shelter tickbox, add it to banner #152
01/03/17 Optimised update_animal_status to load movements/cfg on start #152
01/03/17 Rewrite update_animal_status to single pass, sets died off shelter #152
01/03/17 Died off shelter is now a read-only denormalised field #152
01/03/17 Merge cron.reports into cron.daily
28/02/17 Rabies tag should be shown for both cats and dogs #30
28/02/17 HTML5 validation is not supported on IE9
28/02/17 Add HTML5 pattern to stop whitespace in required online form fields
27/02/17 Show fivl/declawed for cats, heartwormtest/rabiestag for dogs #30
27/02/17 Remove iOS6 upload detection #144
27/02/17 Include non-neutered/spayed adoptable animal selection #31
26/02/17 Create transport from online form #65
25/02/17 Annual and half-yearly due payments setting due date incorrectly
25/02/17 Allow bulk changing of transport status #99
25/02/17 Add DisplayWeight wordkey to show kg or lb/oz in documents
25/02/17 Move looking for and lost/found match reports into configuration #149
25/02/17 cron.py: remove extra exception handling as it hides stack traces
25/02/17 Move asm.news into configuration #149
25/02/17 Log retention to 14 days, record all success/alerts #149
25/02/17 Rewrite publish_logs to use new table #149
25/02/17 Move publishing logs into their own table #149
24/02/17 Ability to clone transports for multiple animals #131
24/02/17 Allow search of Created By on animal/person find advanced #130
24/02/17 Add Created By to find animal/person/waiting list available columns #130
24/02/17 Add transport type field #108
23/02/17 Show the URL for extra images for easy copying into documents
23/02/17 Report MAX function broken and comparing minval
22/02/17 Move->Adopt/Reserve/Reclaim should require payment permissions
22/02/17 Removed unused VIEW_ANIMAL_VET permission
22/02/17 Signing ids were not being passed to the mobile signing pad
21/02/17 Add listMonth to calendar view #20
21/02/17 Upgrade fullcalendar.js and moment.js #20
20/02/17 Add Amazon S3 storage to dbfs #134
19/02/17 Refactoring file storage, maint_switch_dbfs_storage #134
18/02/17 Add file storage to dbfs #134
18/02/17 Correct formatting for <<LicenceFee>>
17/02/17 Separate DOA in home page stats, ignore died off shelters in stats
17/02/17 HTML template cloning broken since dialog_show_add refactor
16/02/17 Locales for Aruba en_AW, nl_AW
15/02/17 Notes additional fields not saving on add new animal #140
15/02/17 Option to disable fine-grained incident permissions #132
15/02/17 Refactor js out of mobile.py
15/02/17 Allow online form fields to be set by querystring #133
15/02/17 Default reserved owner email for shelter/foster animals #135
14/02/17 Include first time an animal was published in history #137
13/02/17 Fix sql injection bug in diary.user_role_where_clause
12/02/17 Fix check licence mobile form breaking add diary (no </form> closer)
10/02/17 Fix receipt number/ID numbering bug
10/02/17 Add altered mode of shelter view
10/02/17 Add en_LB (Lebanon) locale, pegged to US English
09/02/17 Fix SQL injection bugs in user module
08/02/17 Fix for upper() bug when type is none
08/02/17 Update fr_CA translation
02/02/17 "Mark homechecked" box on move->adopt should default to unchecked
02/02/17 PetFinder "Mixed Breed" breed, adoptapet mapping to new primary mix #127
01/02/17 Chip registration publishers should not write a log if no data
31/01/17 Add "Name" shelterview group, like an old phone book by letter #85
31/01/17 Default current vet in vacc/test/med give dialogs #128
31/01/17 Add OwnerFlags and AnimalFlags wordkeys #129
31/01/17 Use simpler timeline for sqlite databases to retain compatibility
30/01/17 Disable database timeouts for cron tasks
28/01/17 Add publish_3pty target to do all 3rd party publishers sequentially
27/01/17 validate.dirty should include richtextarea controls #125
27/01/17 Remove redudant config escaping as breaking email sig formatting #125
26/01/17 Don't lock type/species/intake date if lock and manual code options are on
26/01/17 Bulk geo batch should go for newer people first
26/01/17 Remember failed geocodes as 0,0 to prevent trying again with addr hash
24/01/17 When loading into options/richtextarea use value method
24/01/17 Right-align account totals and any currency in tableform #7
24/01/17 Include neuter/spay info in annual figures #116
23/01/17 Show deceased date in banner
23/01/17 Died off shelter animals should retain active movement #124
23/01/17 Hide person names in banners if user lacks view person perm #105
23/01/17 Include return reason and comments in movement display #114
23/01/17 No need to show movement number and return date for some books #122
21/01/17 Initial stock usage records were orphaned #120
20/01/17 People records created by online forms don't get geocodes #118
20/01/17 Fix broken hashes generated by geo.py #118
20/01/17 Add support for keys to bulk geocoding service #118
20/01/17 Unit availability was still showing fosters who left a unit
18/01/17 Use JSON encoding for town/counties instead of controller_str
17/01/17 initials field in onlineform not being transferred
17/01/17 Format stock unit price/cost correctly, show value
15/01/17 get_latest_movement should not return future movements #115
15/01/17 Record errors during html_to_pdf
13/01/17 Config to have annual figures not split adoptions by transferin
11/01/17 Fix missing diedoffshelter clause in annual figures
10/01/17 Fix unicode bug in display of publishing options #96
09/01/17 Changing internal location does not clear unit #90
09/01/17 MySQLdb requires UTF-8 for escape_string rather than unicode #94
09/01/17 Allow transfer in and adoption fee to show on add new animal #106, #109
09/01/17 service html_report/csv_report|mail returns SQL error for an invalid report #110
09/01/17 Allow due/receive dates to be overriden with payment widget #112
09/01/17 Add extra payment fields to payment widget on Move screens #22
07/01/17 Fix incorrect IsTransfer clause in annual figures #111
06/01/17 Set LastChangedDate/By when using Receive donation/payment button
04/01/17 Fix broken link to sheltermanager.com/my/ on change password
01/01/17 Don't hide the fee field for non-shelter template animals
31/12/16 Update geocode during Add Person screen
31/12/16 Fixed bug where updating geocode from create embedded person was broken
31/12/16 Allow non-unique licence numbers
27/12/16 Allow regimen start date to be edited since it can be on screen
27/12/16 lksize should be editable and is not like other lks tables
27/12/16 Don't set membership flag when entering vet license number
27/12/16 When merging people, include administering vet from test/vacc/medical
22/12/16 Add size for onlineform/waiting list, defaults for size/species #103
21/12/16 Code around problems with missing CID fonts scaling output of Microsoft Print PDF
20/12/16 Add swiss locales
18/12/16 Don't send blank service dates to foundanimals for intake registration
11/12/16 Sex shelterview mode #87
11/12/16 Entity name in medical books for any active movement, not just foster
10/12/16 Include db= parameter in report {IMAGE} substitution
07/12/16 Don't send regularly emailed reports if there's no data to show
07/12/16 Show fosterer name/link in medical books
07/12/16 AVID UK allow registration of overseas chips #100
06/12/16 requirefollowup ac filter should search to the end of today
05/12/16 Fix for calculating baby split templates, make 12 months 365 days not 366
02/12/16 Followup alerts should compare against the end of the current day
30/11/16 SmartTag: animalstatus to now be one of DECEASED/ADOPTED/NOT ADOPTED
30/11/16 Nanochip brand regex was one zero too long
29/11/16 Inactivity timeout bugs caused by caching of config.js from logging #91
29/11/16 Creating an embedded owner should trigger the change event #92
28/11/16 Fix error where email pdf not defaulting owner email address
24/11/16 HTML publisher should only remove pages just before uploading new ones
22/11/16 Logout handlers should use smaccount parameter if available
21/11/16 Fix unhandled exception with wrong account on service calls
17/11/16 Fix broken users.logout not clearing old sessions
17/11/16 Record IP in audit log for login/logout
16/11/16 Add Feist publisher breed
16/11/16 Include AdministeringVetID when cloning test/vacc/treatment
13/11/16 Use DMY data format for fr_CA
12/11/16 Set default death category on move->deceased
12/11/16 Switch to github, issue tickets are renumbered -----------------
12/11/16 Fill in for Safari/iOS/IE8 lack of HTML5 required attribute #496
11/11/16 Add Software column to PetLink publisher
11/11/16 Fix QR codes in templates to work with PDF export #490
11/11/16 Add renew licence button to copy previous licence #503
10/11/16 Online forms should not create auto reserves to banned owners #473
10/11/16 Fix bug where LostArea/FoundArea fields missing on new databases
09/11/16 Allow movements to be added from bulk change animals #452
08/11/16 Deceased animals should not have an active movement #501
08/11/16 Adjust template animal dates during cloning to intake diff #485
08/11/16 Show adoption coordinator in banner #495
05/11/16 Add <<CurrentVetLicence>> and <<OwnersVetLicence>> wordkeys
05/11/16 Use person membership number for vet licence if vet flag active
04/11/16 Add fosterer as a find animal column
03/11/16 Count fosters as total time on shelter
03/11/16 Allow maint_variable_data to override config check
03/11/16 Use complete querystring as cache key for service calls
02/11/16 Add dedicated fr_CA translation
02/11/16 Show Canadian publishers for fr_CA
01/11/16 Use 23:59:59 time component in monthly figures/asilomar
28/10/16 Prevent empty/null second breed breaking breedname
26/10/16 Strip empty signature placeholders when converting to pdf #492
26/10/16 Put location filters on a config switch, off by default #486
21/10/16 Fix bad postcode comparison for lost/found match
20/10/16 Add ANIMALMARKINGS column for CSV import
19/10/16 Do not use XSS protection when cloning online form fields
19/10/16 Sensible behaviour when word processor TAB key is pressed
18/10/16 Allow embedded <style> tags in document templates
11/10/16 Add missing adoptapet mappings, Angora, Lop Eared
11/10/16 Remove delete animal/person/lost/found/waitinglist from Staff
08/10/16 Add <<CurrentVetEmail>> and <<OwnersVetEmail>> wordkeys

39
================

06/10/16 Fix graphs so default orders are set for PostgreSQL #479
06/10/16 Allow re-registering of chips by forcing a forget #451
06/10/16 Pressing "n" or "t" in a time field substitutes now #475
06/10/16 Allow individual treatment comments to be set during give #79
06/10/16 Prevent use of commas in flags #481
04/10/16 Use default urgency when creating waiting list from online form #471
04/10/16 Add abusive email threshold/limit on mail merges #480
29/09/16 Add missing exotics to PetFinder map list
29/09/16 Add site specific reports #415
27/09/16 Add ANIMALMICROCHIPDATE csv import field
25/09/16 Add Coordinator* wordkeys
23/09/16 Fix animal.update_diary_linkinfo to use same format as diary module
23/09/16 Add Costa Rica locale #474
19/09/16 Fix bug with unit and fee changes not dirtying animal screen
17/09/16 Prevent global search with blank term
16/09/16 Fix blob indexes to 255 char truncation for postgresql text fields
13/09/16 Nicer death icon #472
08/09/16 Add animal name, code and person name tags to donation documents #460
08/09/16 additional.create not returning new ID, breaks edit after add #468
08/09/16 Replace use of urllib2 in reports/dbfs/geo with get_url #466
08/09/16 Add utils.get_url timeout parameter #466
03/09/16 Fix autofocus media bug that can cause tinymce errors
02/09/16 Set default species when creating incidents
02/09/16 Truncate movement comments in table display
01/09/16 Number/intnumber widgets should accept minus
31/08/16 Correct mistake in followup date incident searching
30/08/16 Use comma groupings on large currency numbers
30/08/16 Generate movement documents from tabs and books #462
26/08/16 Use file name to infer type as well as mime with FileReader
24/08/16 Allow weight to be used in animal_find_results
23/08/16 Remove implant date restriction for petlink
22/08/16 Suppress publisher field for invalid locales
22/08/16 Show movement comments in books/tabs #456
15/08/16 Use house name if number not available in HMRC gift aid
09/08/16 Show retailer under retailer column in retailer book
08/08/16 Fix variable assignment bug when re-registering AVID
08/08/16 Use .not() to exclude chooser fields when saving records
08/08/16 Have incident/person searching filter by site #439
08/08/16 Allow sites to be assigned to people and incidents #439
08/08/16 Don't add extra text when publishing courtesy listings #454
08/08/16 Fix view roles so any will pass, cope with none set #453
05/08/16 View roles for incidents #453
04/08/16 Unescape XSS protection on FTP passwords
04/08/16 Fix onlineform sex field for lost/found animals
03/08/16 Fix Chrome error messages
03/08/16 Add linked animal keys to incidents #442
03/08/16 Add CallerAddress/Town/County/Postcode keys #442
03/08/16 Hide retired lookups from online forms #448
03/08/16 Show person addresses in movement books/tabs #444
02/08/16 Mark anibase chipFound=false responses as processed
26/07/16 Show payments on documents in received order
20/07/16 Add DocumentImgSrc and DocumentImgThumbSrc wordkeys
20/07/16 Report extra_images break CloudFlare caching #446
19/07/16 Fix nopic.jpg from image redirect to include db name for caching
19/07/16 Add PickupAddress wordkey
15/07/16 Fix (everyone) target for emailing messages
07/07/16 Fix whitespace confirmation sending blank emails
06/07/16 PetsLocated only include last 90 days of found animals
25/06/16 Fix timezone when adding messages
22/06/16 Add maintenance function to discard ODT images
22/06/16 ODT files were not using ZIP_DEFLATE
17/06/16 Fix email addresses during send if user deleted enclosing >
17/06/16 Make sure drag/drop moves are in the audit trail
16/06/16 Signature by email should be mandatory #437
16/06/16 Only load mail merge preview on click #435
14/06/16 Allow HomeAgain/AKC to be disabled indepdent of VE
13/06/16 Move->Reserve should still be allowed for retailers
13/06/16 Fix bug deleting medical profiles
06/06/16 Add adoption coordinator built in flag #430
02/06/16 Financial->Payments should not disable with accounts #429
02/06/16 Pink/blue outline too faint for some monitors #432
25/05/16 Use DB_TIMEOUT sitedef for reads instead of relying on server
25/05/16 Add OwnerCode column to replace calculated column #428
25/05/16 Fix random errors when publishing, fix non-stop polling
25/05/16 Prevent bad share links from stopping an animal record opening
25/05/16 No longer allow system theme, instead set on a per user basis
25/05/16 Email animal media should default current owner email #424
24/05/16 Add fix to comma separate checkbox flags when processing forms
23/05/16 Add "Rescue Group Email" to foundanimals for perm contact #425
23/05/16 Fix default payment type values on payment tab
21/05/16 Fix send_email to obey standards, html_to_plain behaves with tables
20/05/16 Carry on processing reserveanimalname if one fails
19/05/16 Use multipart/mixed for email (fix for Apple Mail)
18/05/16 If a submitter email is set, use that as reply to for staff
14/05/16 Stamp system configured email address on diary note emails
12/05/16 Allow email signature to be HTML too #63
12/05/16 Make fully compliant HTML messages with Message-ID and plaintext
12/05/16 Add sendmail support
12/05/16 Add richtextarea to media emailing and emailform widget #63
11/05/16 Add richtextarea to bulk email/mail merge #63
11/05/16 Fix bad CSS that overrode all fonts (incompatible with inline edit)
11/05/16 Apply richtextarea to new onlineform email confirmation #63
11/05/16 Add richtextarea widget for email #63
11/05/16 Custom email confirmation for online forms #401
11/05/16 Add ttl support to default cachemem - fixes flood protect #422
08/05/16 Clone logs should include times
06/05/16 Add coordinator group to shelterview, options for add animal #420
06/05/16 Add adoption coordinator field #420
05/05/16 Include incident data as option for CSV export
05/05/16 Smartphone interface can now request report criteria #154
05/05/16 Fix fault setting microchipped tickbox on csv import
04/05/16 Show times on reservations so they can be in order of receipt
03/05/16 Animal/people additional fields appear as links in results #413
03/05/16 Add Finnish locale
03/05/16 Fix report query testing and handle SQL comments #418
03/05/16 Fix asilomar ending/beginning counts (again)
30/04/16 Add callouts to SQL interface/report editing #377
30/04/16 Add callout widget and apply to user accounts screen #377
29/04/16 Extended location filters to consider sites #412
29/04/16 Add $SITE$ and $ASK SITE$ to report engine #412
28/04/16 Add site lookup and UI for users and lookup #412
28/04/16 Add site table and SiteID to internallocation/user #412
28/04/16 Fix for missing escaping in where_text_filter
28/04/16 Rota, allow skipping to weeks with dropdown #400
28/04/16 Consider email address when creating/comparing similar people #393
26/04/16 Show age in unneutered adopted book
26/04/16 Defaults for log type and diary person #410
26/04/16 Show person code in browser title #406
23/04/16 Use html5 placeholder attribute for search input instead of js
22/04/16 Allow creation of documents from mailmerge data #391
22/04/16 Use an empty string instead of None for template additional fields
22/04/16 Changing medical/test/vacc book breaks location for fosters #409
22/04/16 Remove retired items from payment widget type/methods #407
20/04/16 Fix null fostercapacity in shelterview
20/04/16 Fix bug where batch report time would never run
19/04/16 Hide sections from mobile person/animal/incident for permissions
19/04/16 Hide diary tasks button for roles without create diary
19/04/16 Hide embedded person for roles without view_person permission
18/04/16 Include fosters with register-after-intake, but shelter info #408
16/04/16 Use 26 weeks as age cut off to months
07/04/16 Shelter view can group by animal flag #403
07/04/16 Show count of unread news stories for each user #301
05/04/16 petlink enforcing www subdomain
05/04/16 Fix bug where locked db.execute would return None
04/04/16 Fix for first element in list being inactive in new records
04/04/16 Litters should sort desc on date, fix nulls in multiselect
04/04/16 Add $LOCATIONFILTER$ report token #388
04/04/16 Add AdministeringVet wordkeys #374
04/04/16 Add Administering Vet to tests #374
04/04/16 petslocated: only allow sending shelter animals with flag
04/04/16 allow Medical->Give to allow overriding of given by #239
04/04/16 petslocated: disable sending of shelter animals by default
04/04/16 Allow bulk changes animals to add flags #288
04/04/16 Allow bulk change animals to update current/owners vet #234
04/04/16 Rota shift category/work types #331
31/03/16 Decode HTML entities in document titles
31/03/16 Use word matching for advanced find person name search #306
30/03/16 Add cost and unit price to stock levels #398
30/03/16 Update animallostfoundmatch, ownerlookingfor tables #327
29/03/16 Show person code in banner on person records
29/03/16 Add ownerlookingfor and animallostfoundmatch tables #327
29/03/16 Animal multi chooser can select litters #182
24/03/16 Allow email addresses to be split with semi-colons
24/03/16 Separate permissions for volunteer records #314
24/03/16 Option to enter tattoo info on add animal #396
24/03/16 Audit sliders on main records #394
24/03/16 Added publish history description for petslocated.com
24/03/16 Refactored full screen textareas #360
23/03/16 Fix for asilomar line S logic
22/03/16 Default payment type value should be assigned to unit price
22/03/16 Show filter lines in tables that have more than 10 rows #363
21/03/16 Non-shelter animals should be a location filter option
21/03/16 Allow report emails to be scheduled for days of week/month #215
21/03/16 Make browse reports/select all only select visible #365
21/03/16 Hidden ShowLatLong option to allow editing of geocodes
18/03/16 Fix smarttag fields not appearing (old key)
18/03/16 Don't allow direct editing of VetEnvoy GUID fields
17/03/16 Add deceased.html publisher page #366
17/03/16 Litter improvements, mate selection and viewing #339
16/03/16 Fix for calculation of H (F NOT G) of asilomar figures
14/03/16 Record login/logout events in the audit trail #316
14/03/16 AuditTrail LinkID field #75
14/03/16 Option to have online forms email the submitter #392
14/03/16 Fix for non-required online form multilookups behaving as required
10/03/16 Fix for extra quotes in neutered when sending to HLP
09/03/16 Return just the minimum amount of foster info for shelterview
09/03/16 Add trace sitedefs to explain and time queries #390
08/03/16 Fix bug with returns not being included in endofday figs
05/03/16 Fix bug with js breakage in charts
04/03/16 Add shortcut key for incoming forms
29/02/16 Add adoptapet Pot Bellied Pig mapping
27/02/16 Show lost/found, waitinglist and incidents on timeline #369
27/02/16 Fix get_stats bug that didn't count re-adoptions #383
25/02/16 Allow custom PDF paper sizes #387
25/02/16 Allow payments to support quantities and cheque numbers #385, #386
23/02/16 Add support for YouTube URL and Hair Length to adoptapet publisher
23/02/16 Never register the microchip of a dead animal
23/02/16 Fix for switching web preferred with extension .jpeg
19/02/16 Tweak to only show greyed out cancelled reserves if they're reserves
19/02/16 Include email sig when emailing media/pdf #337
17/02/16 Fix for mobile signing docs from non-animal media tabs #380
17/02/16 AVID allow blank implant dates, but don't want reg after intake
17/02/16 Return category on movements only valid for adoption and reclaim
17/02/16 calc_days_on_shelter should take died off shelter into account
15/02/16 Add DONATIONTYPE report criteria
15/02/16 Expand data sent on avid re-reg a little
14/02/16 Include header/footer in online form json export/import
13/02/16 Intake chip registration should not apply to held animals #376
12/02/16 Use textarea width on pickup address for extra space
12/02/16 Fix bug in payment book/tab with default payment type 
12/02/16 Refactor dialog_show_add/edit events to use objects for clarity
11/02/16 Fix indent bug in escapePageName that meant only spaces were escaped
11/02/16 First draft of AVID re-registration #202
11/02/16 Allow microchip registration to the shelter on intake #300
11/02/16 Hidden DefaultAnimalAge config switch #332
10/02/16 Add banned search keyword, fix missing on autocomplete #373
10/02/16 Fix for broken default vacc/test type #367
10/02/16 Allow completed medicals to be created with given treatments #364
10/02/16 Update publisher log times to show local time instead of server time
10/02/16 Remove line breaks from email headers
09/02/16 Add missing links section to mobile view person
09/02/16 Add extra RSPCA observation document templates
08/02/16 Show a faint blue/pink outline around thumbs to indicate sex #371
08/02/16 Fixed bug with microchip registrations non-shelter home phone no
08/02/16 Add missing icon/text to foundanimals on publishing history
07/02/16 Allow animal flags to be changed after leaving the shelter #368
04/02/16 remove the requirement for courtesy listings to be non-shelter
04/02/16 petslocated: Add rawageyears column

38
================

03/02/16 Add citation, diary and licenses to mobile person view #52
03/02/16 Reinstate ASM2 behavior of move docs attaching to person and animal
03/02/16 Fixed bug that always included fosterers when publishing
02/02/16 Entered (oldest first) should map to Adopted (oldest first) 
02/02/16 Add email/tel links for mobiles on view person #52
02/02/16 All chip publishers should throw out owner records with no address
02/02/16 Clearer wording for adoptapet autoupload credentials
01/02/16 mobile find person basic functionality #52
01/02/16 Editing a payment should not clear nextcreated flag
30/01/16 Add extra suspect phone number wordkeys for incident documents
29/01/16 Add {COUNT.field.DISTINCT} for reports
29/01/16 Add extra victim wordkeys for incident documents
28/01/16 Fix bug doing lost/found advanced search for completed records
28/01/16 Fix encoding errors emailing attachments from lost/found/wl/incident
27/01/16 Send a copy of the online form if an email address is present #361
27/01/16 Add en_IL locale for English (Israel)
27/01/16 Substitute $@from$ $@to$ common VAR tokens for dates in check-sql
27/01/16 Fix check-sql bug before clicking SQL window (widget value bug)
26/01/16 Add default incident_information template #94
26/01/16 Allow documents to be generated from incidents #94
26/01/16 Fixed being unable to save templates after PDF generation
26/01/16 Open movement validation wasn't checking return date
25/01/16 Use code complete CTRL+Space in sqleditor for db/fields #359
25/01/16 Add F11 fullscreen to editor widget, fix json escaping of </ #359
25/01/16 Use new editor widgets for html templates, online forms, reports #359
25/01/16 Add htmleditor/sqleditor tableform types #359
25/01/16 Add {CHIPMANUFACTURER} report token #195
24/01/16 Add codemirror and SQL syntax highlight to SQL interface #359
24/01/16 pagevisibility wrong, use localStorage for auto logout #351
22/01/16 petslocated: Add rawcoat field
22/01/16 Allow ALT+SHIFT+S to focus the search box #352
22/01/16 Add password hash unit tests and plain scheme for defaults
21/01/16 Add PBKDF2 support and make it the default for passwords #356
21/01/16 petslocated: Add raw species/breed/colour
20/01/16 Hide adoption fee on non-shelter animals
20/01/16 Stop bonded animals creating double payments from move_adopt
20/01/16 Use psycopg2 and mysqldb driver escaping #358
20/01/16 Remove db.query_json - not used and non-standard
19/01/16 Add XSS sanitise hooks to db.ds #358
19/01/16 Fix potential unicode SQL injection/XSS via ds/decode_html #358
19/01/16 Refactor db.ds to use escape, add unescape
18/01/16 Add MOVEMENTRETURNDATE to csv import
18/01/16 Fix for required attribute with radio (thanks dbjorge)
18/01/16 Fix auto logout to use page visibility #351
18/01/16 Show additional people lookups linked to animals #353
18/01/16 Only set non-shelter type once per animal new reset #347
16/01/16 Change brought in by filter for transfers/pickups #350
15/01/16 Do split on animalname db before choosing for performance
14/01/16 Allow pickup fields to be shown as search result columns
14/01/16 Basic and advanced find animal can now search pickup address
14/01/16 get_movement_donation(s) secondary ID sort for correct ordering
14/01/16 petslocated: better hair type selection for dogs
14/01/16 Only show pickups on shelterview/pickuplocation
14/01/16 Remove unused PickedUpByOwnerID column
14/01/16 Change Brought In By label for pickups/transfers #333
14/01/16 Remove Incident - Citation additional link as not valid
13/01/16 Make dialogs responsive for mobile app #345
13/01/16 Ability to mass change active/inactive status of lookups #344
13/01/16 Make sure empty retired locations don't appear on shelterview #346
12/01/16 fix to set IsRetired on database create #55
12/01/16 petslocated: fall back to contact postcode prefixes if area blank
11/01/16 Add select.removeRetiredOptions and calls to screens/tableform #55
11/01/16 Add UI fields to lookup data screen to manage IsRetired flag #55
08/01/16 Add UI fields for PickupAddress, AdministeringVetID #340
08/01/16 Add PickupAddress and AdministeringVetID to medical/vacc #340
08/01/16 Add IsRetired column to all lookups and to lookup descriptors #55
08/01/16 Show drivers in person links #342
07/01/16 Show emblem for bonded animals #343
04/01/16 Open records in new tab wasn't applying to shelter view #341
30/12/15 Fixed Chrome unquoted content-disposition header bug
30/12/15 Fix WRONGSERVER bug with splash screens on smcom
29/12/15 Fix bug with double negative stock deduction from vacc
28/12/15 animal_view should only apply to currently adoptable animals #338

37
================

21/12/15 Mobile stock take, allow overriding of usage type
21/12/15 Mobile stock take, if balance has not changed do nothing
21/12/15 Deducting stock should create a negative usage record
18/12/15 Timezone not applying to service calls
18/12/15 Add purebred flag to adoptapet.com publishing 
16/12/15 Fix loading of flags into editing online forms #330
16/12/15 Use generator functions to implement dumps, remove DUMP_OVERRIDES
13/12/15 Nicer font in online form header, remove hard set width table style
12/12/15 Show progress in log during csvimport
12/12/15 Make secure cookie a sitedef
11/12/15 Exclude later vacc of type from xp/xm expired vacc list
11/12/15 Set secure flag on session cookie, X-Frame-Options protection
10/12/15 Use LOCAL3 log facility by default
09/12/15 Blank types or species go to None prefix page during publish
09/12/15 Show incident link on non-shelter animals
07/12/15 Fix MostRecentEntryDate to include time if available
07/12/15 Show MostRecentEntryDate in animal banner for entered shelter
05/12/15 Do not use person name format for organisations
03/12/15 When calculating asilomar start, do not include movements on date
03/12/15 Add rspca_dog_advice_leaflet default template
03/12/15 Show accordion menu if there are more than 90 items
03/12/15 Show second grouping in shelterview (location/species/type) #323
03/12/15 Allow comments for rescheduled vaccinations #194
02/12/15 get_number_animals_on_shelter should use 23:59:59 for intake times
01/12/15 Use 23:59:59 as time when calculating end date of asilomar/figures
01/12/15 Add location and type shelterview
30/11/15 Hide payment section if user doesn't have add payment permission #321
30/11/15 Fixed bug saving giftaid flag from payment widget
30/11/15 Asilomar figures should use deceased rather than intake date for euth
30/11/15 Include weight units in log when logging
30/11/15 When logging events like weight change/email/etc include the time
29/11/15 Add online form multi-select lookup #175
29/11/15 csv_mail/csv_report were broken due to utils.csv change
28/11/15 Add dedicated licence renewal screen #278
25/11/15 Remove nasty smcom file access in favour of new smcom_client module
25/11/15 Fix for attaching media in case IncomingMediaScaling is trashed
25/11/15 Remove trailing page break in online form output
24/11/15 TotalTime/DaysOnShelter fields #163
23/11/15 Attach via animalname online form field was broken
23/11/15 Times ending in 0 minutes instead of midnight were omitted #315
22/11/15 Include volunteer and staff in rota dropdown to filter them
20/11/15 Add default colour mappings to existing data if blank
19/11/15 Fix char escaping on message board and icon
19/11/15 find person (simple)/global search should check person code #313
19/11/15 jpeg couldn't be a valid image in some media calls
19/11/15 adopted.html ordering now matches adoptable pages #109
18/11/15 Add found animal breed to match report
18/11/15 Add ability to clone HTML publishing templates #142
18/11/15 Make disabled fields more obvious
18/11/15 Allow search of incidents by dispatch city, show in results #308
18/11/15 Add retailer grouping in shelterview #310
18/11/15 Age group grouping in shelterview #312
18/11/15 Don't abs() balance to date when displaying on screen
17/11/15 Make sure bonded animals are alive/on shelter before adopting #307
16/11/15 Better PetsLocated mappings to tighten up what we send
12/11/15 Fix bug saving movement documents
12/11/15 Make incident notes searchable
11/11/15 Add TemplateTypeBaby and TemplateTypeSpecies for juveniles #304
10/11/15 Output currency and date fields correctly in CSV export #83
09/11/15 Allow running of "person looking for" from person toolbar #200
07/11/15 Force reload after changing user settings #294
07/11/15 Show VAT/Sales Tax total in payment book/tab #270
07/11/15 Show litter ID in medical books #205
07/11/15 ASK ANIMALFLAG and ASK PERSONFLAG report tokens #128
07/11/15 Allow signatures on online forms to be mandatory #289
07/11/15 Remove jquery mobile dialogs as they're broken and self-close on iOS
06/11/15 Add jsonp_ service variants
06/11/15 Switch smoothness and ui-lightness on existing to new asm theme
06/11/15 Fix PetLink publisher to send all cookies (AWS load balancing)
06/11/15 Fix PetLink publisher to send transfers for already registered chips
06/11/15 Better default online form style, fix index in import
05/11/15 Fix active user time tooltip, remove inactive after an hour
05/11/15 Fix giftaid being ticked by default on payment tabs/book
05/11/15 Update intake reports to use 23:59:59 in date ranges #38
05/11/15 Update audit trail reports to use 23:59:59 in date ranges #38
05/11/15 animal/incident searches should use 23:59:59 in date ranges #38
05/11/15 Fix routing bug with log screen that prevented filters working
04/11/15 Fix for textarea zoom bug when no id attribute is present
04/11/15 Shelter view for only active fosterers
04/11/15 Fix bug with ANIMALNEUTERED csv import column
04/11/15 Fix uploading dialog hanging around on drag/drop file error
04/11/15 Use modernizr for todataurljpeg instead of Safari 5 tests
04/11/15 There's no need to exclude MSIE9 as it has features needed
04/11/15 Remove modernizr feature gate as async tests checked too early
04/11/15 Allow shelter view to group by pickup location
04/11/15 Include movement attached to selected donation on receipt document
04/11/15 Include last movement tags for person document
03/11/15 Add extra diagnostic orphaned record checks #220
03/11/15 Add $$CATEGORY$$ header/footer key for reports
03/11/15 Fix standard "chinchilla" rabbit breed to standard for adoptapet
03/11/15 Foster capacity and new shelterview fosterer mode/dnd #159
03/11/15 Active users with last access time now completely accurate #295
03/11/15 Use data uris for icons so format can be changed
02/11/15 Use useragent sniffing on server to redirect old IE
02/11/15 More UI cleanup, remove login nav and qr code
02/11/15 Ditch old gif ajax spinners in favour of SVG
01/11/15 New asm theme based on bootstrap style #299
01/11/15 Upgrade to JQuery 2 #298
31/10/15 Add OutcomeDate/OutcomeType wordkeys for publishers
30/10/15 Remove IE8/9 specific cruft, add conditional comment detector #298
30/10/15 Update modernizr, add feature-detection based code
29/10/15 Fix topline layout for mobile devices with limited res #296
29/10/15 Fix animal doc type to pull all payments from active movement
29/10/15 Add MOVEMENT as document type, pull in movement payments #285
29/10/15 Show notes you've created in my notes again #290
29/10/15 Show all notes on diary calendar if user has permission #290
29/10/15 Fix add person log entry showing animal chooser #291
29/10/15 Fix license dialog breaking after duplicate number error #293
29/10/15 Final tweaks to foundanimals.org microchip registration #284
29/10/15 Allow callers of post payment widget to include zero trx
29/10/15 Allow payment widget to take negative transactions again
28/10/15 Add foundanimals.org microchip registration #284
27/10/15 Show user activity where available in tableform dialogs
27/10/15 Animal control incidents should be given a new tab if option is on
26/10/15 Reload animal_medical after treatment(s) given
26/10/15 Don't autofocus first field when using the mobile app to save confusion
25/10/15 Force reload after give dialog on animal vacc tab to show rescheduled
25/10/15 Hide deceased from home page should include stats
25/10/15 Lower flood protection to 15 seconds (too high for app uploader)
24/10/15 Add DB_EXEC_LOG sitedef for efficient incremental backups
22/10/15 Fix created date not obeying timezone
20/10/15 Fix unicode bug in generating charts
20/10/15 Fix bug with receipt numbers being reused after first issued
20/10/15 Fix payment book so received today is today, received in last day
16/10/15 Fix giftaid flag defaulting if person is gift aid registered
15/10/15 Add dog_license sample template
15/10/15 Fix bug that caused payment documents to open in same window
15/10/15 Add ability to generate licence documents to licence tab/book #274
15/10/15 Show hold until date in animal banner
15/10/15 Refactor wordprocessor.py faster/smaller code for desc/RECENT/LAST
15/10/15 Hide expired vacc from calendar if newer of same type due #276
15/10/15 Show hold/until on add new animal #280
14/10/15 Fix drag and drop in shelterview to update DisplayLocation
13/10/15 Warn on adopt/reclaim of quarantine or cruelty case #273
13/10/15 Fix HMRC giftaid spreadsheet totals
13/10/15 Make sure batch number/manufacturer are cloned with vacc
12/10/15 Add sample rabies certificate template
12/10/15 Fix all choosers to be cleared by edit dialogs before load
08/10/15 Fix broken MySQL upgrade path with double queries #254
08/10/15 Parameterise different manual elements in sitedef #141
08/10/15 Fix bug where blank addresses could blow hmrc giftaid
08/10/15 Pop up available units on focus like other jqui widgets #272
07/10/15 Add courtesy posts to all publishers and dedicated RG flag #236
07/10/15 Show animal flags on search results #269
07/10/15 Show dotted box around animal link thumbnails for clarity
07/10/15 Break up emblems and names if there are > 3
07/10/15 Add animal flag lookup type #269
07/10/15 Add animal flags to advanced animal find screen #269
07/10/15 Add animal flags and consolidate existing flags #269
07/10/15 Medical books weren't honouring all location filters
07/10/15 Improve not for adoption, unaltered and cruelty case icons
07/10/15 Special needs emblem #214
07/10/15 Warn when adopting "not for adoption" animals #261
06/10/15 Fix bad display of tax rates in receipts
05/10/15 No permission should be needed for ajax get units call
05/10/15 Stop users without view people perm removing people links
05/10/15 Allow times to be set on log entries #266
05/10/15 Parameterise mobile login in the same way as desktop login
05/10/15 Add Total column to payments widget
05/10/15 Add PaymentTotalTaxRate wordkey
03/10/15 Disable media drag/drop and shelterview drag/drop for mobile #260
03/10/15 Mobile application wrapper #260
03/10/15 Add PaymentTotal wordkey
02/10/15 Show non-editable receipt number in payment book, fix blanks
01/10/15 "Location and Unit" shelter view shows unit availability #265
01/10/15 Add Sales Tax/VAT/GST breakdown report #259
01/10/15 Show total payment amount when receiving payment #263
01/10/15 Add PaymentTax wordkeys Tax total
01/10/15 Show totals in payment widget #258
01/10/15 Better layout for payment widget, add sales tax/VAT
30/09/15 Allow users with Edit All Diary permission to change notes
29/09/15 Receipt numbers field #264
29/09/15 Sales tax/VAT fields and config #259
28/09/15 Fix missing images/shortcode from transport book
27/09/15 Changes to doc and html templates should go to the audit log
27/09/15 Retain line breaks in long version of messages
25/09/15 Remove trailing full stop from date_diff wordprocessor keys
25/09/15 Fix validation bug in medical profiles with unspecified/0
25/09/15 Add Colombian locale with Spanish/English (es_CO/en_CO)
24/09/15 Fix word processor width for better preview
23/09/15 Fix some rabbit breed mappings for adoptapet.com
22/09/15 Wordkeys; HoldUntilDate, TimeBroughtIn #237
22/09/15 Wordkeys: AdoptionStatus, AnimalIsAdoptable #257
21/09/15 Allow unlimited payments to be taken on move/receive screens #244
21/09/15 Use attachment disposition on generated ODT docs #249
18/09/15 Remove FTP images on change or force #247
17/09/15 Reimplement ASM2's optimistic lock algorithm #255
17/09/15 Fix bad logic that disabled publishers for any FTP error #253
16/09/15 Option to change the first weekday for calendars
15/09/15 Show mandatory fields with validation on all new screens #61
14/09/15 Support for petslocated.com in the UK #252
14/09/15 Merge button handles person details/flags too now #222
14/09/15 Support merging person details/flags from csv/online form #222
11/09/15 Refactor validation and use a more visible colour for highlights
11/09/15 Fix for blank additional mandatory fields not producing errors #251 
11/09/15 Fix Avery 5160 standard label size (2.75 x 1)
10/09/15 Truncate email subject to 78 chars for Outlook/other MUAs
09/09/15 Trial adoption ending alert ignoring return date
06/09/15 Show all occupants in unit availability listing
05/09/15 Option to send numeric location prefix as regionID to petrescue #242
05/09/15 Allow standard flags as filters on staff rota screen #246
05/09/15 Refactor publisher to output species/type/number simultaneously #243
05/09/15 Publisher can output pages by animal type #243
05/09/15 Improve unit display/performance with fewer queries and animal info
04/09/15 Publishing, trial adoptions can be included without option #235
04/09/15 Changing unit should also write log entry #241
04/09/15 Make global search obey permissions #245
02/09/15 Option to set SMTP port
26/08/15 Use clearer message when removing user accounts
26/08/15 Add ANIMALUNIT to csv import fields #240
17/08/15 Weight was not defaulting to a float when it should
03/08/15 Make DaysOnShelter logic match TimeOnShelter
29/07/15 Default given quantity to 0 in given dialogs #123
29/07/15 Omit usage date from given dialogs as same as given #123
29/07/15 Include expiry date when listing stock items in give dialogs #123
29/07/15 Add stock cloning #123
27/07/15 Fixed "give"ing a vacc/test to stamp the correct user on timeline
27/07/15 Add ability to request electronic signature by email #210
24/07/15 Add <<LocationDescription>> wordkey
23/07/15 Default /32 for ip restrictions without CIDR mask
23/07/15 Show expiring vaccinations on medical calendar #230
23/07/15 date_iso includes times, fixes table date/time sorting #229
22/07/15 cachedisk creates cache folder if not present
22/07/15 Stop adoptapet.com publisher sending thumbnails if option is on
22/07/15 Disable forceReupload for RG/AP, use RECENTLYCHANGEDIMAGES to trigger
19/07/15 Add extra wordkeys for AnimalAtRetailer, AnimalPermanentFoster, etc.
17/07/15 Use default locale initially for service calls instead of sessions
15/07/15 Fix for apostrophe in earliest HMRC giftaid date, fix for house no
14/07/15 Switch to new smcom last connected mechanism, smaccount on mobile_login
11/07/15 Add overtime and public holiday to rota types #221
09/07/15 Option to hide deceased animals from areas of the homepage
09/07/15 Record VetEnvoy failures and don't send again
06/07/15 Fix broken open records in new browser tab since client routing
06/07/15 When marking animals published, deduplicate to prevent key violation
06/07/15 Remove need for add movement permission for move_gendoc
06/07/15 Clone adoption fees from template animals
04/07/15 Settings->Reports should be only accessible to CHANGE_REPORT
04/07/15 Fix estimated age and breed defaults on add new animal
28/06/15 Add Cyprus locale
28/06/15 Add Luxembourg locale
26/06/15 Show link info in view of accounting transactions
25/06/15 Fix flag filtering of rota screen
23/06/15 Add reset buttons to add screens #208
23/06/15 Use page transitions for move* to allow back button to reset #206
19/06/15 Remove pointless body column from publish template edit
18/06/15 Sharing on social media logged in publishing history
18/06/15 Add Publishing History slider to animal records
18/06/15 publisher.setLastError should log as ALERT for UI
18/06/15 Fix mobile interface dropdown/dialog issues
17/06/15 Make cron.diagnostics fix too many web/doc preferred images
17/06/15 Catch client side errors and send them to the server for log/email
16/06/15 Prevent foster/retailer animals being dragged in shelterview
15/06/15 Add extra permissions for additional fields/doc templates
15/06/15 Add reclaim to quicklinks
09/06/15 Allow import of JSON exported online forms
09/06/15 Show microchipped/neutered tickbox on animal_new
09/06/15 Add PERSONCLASS to csvimport
09/06/15 csvimport duplicate person squash merges flags
08/06/15 Fix lb/oz on create new animal screen #207
06/06/15 Fix to allow CTRL+left click to open in new window again
06/06/15 Complete set of adoptapet colour mappings
05/06/15 Fix bug in adding stock after client side navigation
05/06/15 Fix race condition in multi-file upload and preferred
03/06/15 Send online form notifications as html to include signatures
03/06/15 Add publisher colour mappings (in particular for adoptapet) #204
01/06/15 Rewrite cache into cachemem and use fallback dict if no memcache
01/06/15 Rewrite service response caching to use disk
01/06/15 Fix bug in view incident due to multi-animal support
30/05/15 Detect dumped sessions and force a reload gracefully
29/05/15 500 error should redirect to main to pickup app updates
29/05/15 Use very short term caching on service images (increase cache)
29/05/15 Use person flags to make staff rota groups #190
28/05/15 Allow incident to be linked to multiple animals #43
27/05/15 More dialog cleanup/refactoring, cleanup bug with email forms
26/05/15 Promise refactoring complete #198
26/05/15 Disable searchable on additional fields of wrong type #199
25/05/15 Visually show selected media
25/05/15 Fix bad autofocus on medical, test and vacc screens
24/05/15 Add a switch to disable shelterview drag/drop
24/05/15 Use promises to cleanup code for drag/drop of multiple files
24/05/15 Log javascript stack traces and output them in alert windows
23/05/15 Update media tab to use responsive grid instead of table
23/05/15 Allow HTML5 drag/drop of media #69
23/05/15 Fix safari issue with popState firing on page load
23/05/15 Fix broken links when rendering document images as PDF
22/05/15 Template animals #181
22/05/15 Alert for lost/found matches #133
22/05/15 Add UserSignature wordkey #184
22/05/15 Allow editing of user signature in user settings #184
22/05/15 autofocus module attribute for client navigation #196
17/05/15 Add field for users.Signature
17/05/15 Allow HTML in bio/add this text to all descriptions
17/05/15 Don't copy comments when rescheduling vaccinations
16/05/15 Support electronic signatures in online forms #185
15/05/15 Client side lifecycle error handling/logging
15/05/15 Full destructor support for client side widgets
15/05/15 Add tumblr support
14/05/15 Extra debug info during HTML/FTP publish
14/05/15 Fix broken diary task pivots
14/05/15 Add Pinterest support
13/05/15 Add Google plus sharing, remove Facebook API code, update manual
13/05/15 Add animalview template and switch Facebook to URL sharing API
13/05/15 Add maint_db_dump_merge target for renumbering IDs for merging
12/05/15 Add Twitter sharing #119
12/05/15 Add service API animal_view target #119
12/05/15 Add lb/oz boxes for US users #179
12/05/15 Add unit to DisplayLocation, hide units for fosters
11/05/15 Cutting text should dirty forms
11/05/15 Fix malformed html and broken video links in media screens
11/05/15 Disable client side routing for non-history API browsers (IE8)
11/05/15 Fix DocumentImgLink to use doc preferred photo #178
11/05/15 Move Facebook onto menu, add Twitter stub
11/05/15 Merge person flags when importing online forms to existing people
11/05/15 Canvas polyfill for signatures on IE8, warning message for IE<10
10/05/15 Rewrote validate/dirty to cope with client or server routes
10/05/15 Completion of client side routes available with switch
10/05/15 Path.js reload() function, include querystring in popState
10/05/15 Make blanks = N in csvimport boolean fields
09/05/15 Add csv NEUTERED field and missing GOODWITH from validity checks
09/05/15 Path.js change() function, fixed quicklinks in client mode
09/05/15 More client side routes added, fallback to server processing
08/05/15 Forked path.js and added support for querystring capture groups
08/05/15 Switch Facebook to use JS SDK and removed Python social module
06/05/15 Add PathJS dependency for later
06/05/15 JS refactoring, remove globals, isolate modules, model methods
06/05/15 More JS refactoring, allow single rollup file
05/05/15 Allow fractional stock values #150
05/05/15 JS refactoring to enable client side routing complete #161
05/05/15 Add checkbox and radiogroup onlineform fields #189
01/05/15 Use hash to detect signature, add documentation #162
01/05/15 Add touchpunch to signing pad, show doc being signed #162
30/04/15 Add signing pad to mobile interface #162
30/04/15 Add signed document hashing/tamper proofing and indicator #162
30/04/15 Signed documents are no longer editable in word processor #162
30/04/15 Basic electronic signature button in media tab #162
30/04/15 Long term animal emblem #180
29/04/15 Default online forms, including RSPCA, volunteer, adoption #177
29/04/15 Extra advanced find filters for FIV+, FLV+ and Heartworm+
29/04/15 Costs can now create matching accounts/transactions #165
28/04/15 Fixed inability to delete HTML publisher templates
28/04/15 When defaulting broughtin, don't include time if option is off
28/04/15 Fix asilomar figures to exclude non-shelter animals`
27/04/15 Merge duplicate records option when importing CSV files #36
24/04/15 Ability to import/export online forms as json #177
22/04/15 Encapsulate publisher breeds for petrescue #170
22/04/15 Add AnimalIsVaccinated wordkey and improved it #156
22/04/15 Fix calendar view firstDay by downgrading to moment 2.7.0
22/04/15 Make calendar view use ASM translations
22/04/15 Use tablesorter sticky headers widget instead of our own
22/04/15 Break up some of the unwieldy options #152
22/04/15 Allow override of destination account for regular donations #171
22/04/15 Add locales to microchip manufacturers for collisions #166
22/04/15 Add csv_report service method, should only require VIEW_REPORT
21/04/15 Add French Canadian locale
21/04/15 Fix closing </script> in header/footer blowing up online form screen
16/04/15 Add $$TITLE$$ to HTML publisher and make $$NAV$$ blank for adopted
16/04/15 Add more missing microchip manufacturers, including Anibase
16/04/15 Removed table layouts from edit headers, fix quicklink/calendar #158
16/04/15 JS refactoring to use tableform.buttons_render for all toolbar #161
16/04/15 JS refactoring to use #asm-body-container #161
16/04/15 excludefrombulkemail online form field
15/04/15 Fix for display of rota elements that cross multiple weeks
15/04/15 Include rspca templates as part of db install
15/04/15 Remove pisa dependency, use wkhtmltopdf for template pdfs #164
15/04/15 Include media when cloning animals
15/04/15 Copy media and logs when creating animal from waiting list #73
15/04/15 Revert #45 onto config option due to negative user feedback
14/04/15 Fix IE8 specific auto bug with width of menus #158
14/04/15 Fix topline to use inline-block for wrapping on mobile #158
14/04/15 Enable optional use of JQueryUI selectmenu widget for icons/locale #160
13/04/15 Use accordions for reports/mailmerge menus #45
13/04/15 Use times HTML entity instead of X to remove from bsmselect

36
================

09/04/15 table.filter property, applied to browse sm.com #10
09/04/15 Show reason an animal is not for adoption
09/04/15 Tidy up find animal to use multiselect filters
08/04/15 Add wordkey for DisplayLocation
08/04/15 AdoptionStatus inaccurate and not translated, calculated in js now
06/04/15 With HTML/FTP if forcereupload is on, remove all images first
06/04/15 Extra edit_perm attribute to hide dialog change buttons
06/04/15 Facility to delete a week of rota items
05/04/15 Add licence check to mobile interface #39
03/04/15 Add simple framework for user/customer extensions #30
03/04/15 Add options to show original owner and brought in by on new animal
03/04/15 Add missing weight wordkey
02/04/15 Hide extra entry fields for non-shelter animals #145
02/04/15 Secondary sort timeline by animal #151
01/04/15 Add 60 second flood protection to online form posts #144
01/04/15 Make the default for medical alerts/books 365 days
01/04/15 Option to choose which movements trigger chip registration #134
31/03/15 Allow non-shelter to be set from add new animal with owner
30/03/15 Don't include raw markup fields in online form previews
30/03/15 Make service calls honour permissions #143
30/03/15 Update diary link on every save to cope with name/code changes #127
30/03/15 Add rss_timeline method to service API #125
30/03/15 Refactor timeline translations and icons into backend
30/03/15 Allow multiple payments to be selected for payment templates #34
29/03/15 Option to include trial adoptions when publishing #139
28/03/15 Tidy up menu, show hint when rota is empty
26/03/15 Options for default working hours
26/03/15 Rota cloning, more visual tidying up
26/03/15 Hide UI elements when printing screens
25/03/15 Staff Rota/Scheduling #31
25/03/15 Option to show weight in lb rather than kg
24/03/15 Fix lost and found shelter matching to only include on-shelter
24/03/15 Separate mobile section for incidents requiring followup #113
24/03/15 Allow accounts to be marked inactive #40
24/03/15 Separate transport address fields #32
24/03/15 Return buttons on the "Return an animal from..." screens #117
23/03/15 Make menu item anchors fill space for bigger click target #131
23/03/15 Add pickuplocation to incident, allow search/display #33
23/03/15 Add weight field with option to update the log on each change #37
23/03/15 Add followup complete checkboxes to incidents to cancel alerts #132
21/03/15 Switched manual over to Sphinx/RTD for readability and searching
20/03/15 HTML escape auditing for customreport table to not bork reports #130
20/03/15 Create separate permission for setting publishing options
19/03/15 Same for all FTP publishers including RescueGroups, HLP and SmartTag
19/03/15 Disable adoptapet.com as well on 530 login incorrect
19/03/15 PetFinder now using fail2ban, disable on 530 login incorrect
19/03/15 Use keyword based searches for people against OwnerName #114
17/03/15 Fix to make FIV/FLV/HW+ flag check flags as well as results
16/03/15 Show timeline on home page and as separate page with quicklink #28
16/03/15 Option to disable reservation payments, don't default to full fee #122
14/03/15 Make sure died off shelter is auto ticked if animal is off shelter
14/03/15 Send document as PDF ignores body text #120
12/03/15 Include non-shelter animals with microchip publishers #101
12/03/15 Only show expired vacc alerts if no new vacc of that type exists #41
12/03/15 Include raw markup content in stored versions of online forms #112
12/03/15 Use sheltercode in online form animals to disambiguate names #110
10/03/15 BULK_GEO_BATCH sitedef to disable server geocoding during batch
10/03/15 Update cron usage for petrescue.com.au
10/03/15 Removing a test should remove FIV/FLV/Heartworm flags #42
10/03/15 Fixed renaming document templates without extension hiding them #106
10/03/15 Simplified breed select from species code to prevent bad combos #104
10/03/15 Refactor animal_new to use object methods #104
10/03/15 PDF batch scaling running regardless of options #107
09/03/15 Show "Reservation" instead of "None" in movement books/tabs #103
09/03/15 Fix email and emailpdf to send multiple
07/03/15 Fix to show bonded warnings from movement tabs and books
07/03/15 Fix timeouts with SQL interface errors behind Apache proxy
06/03/15 Followup call alerts should not need calls to be incomplete
06/03/15 Include pickup location fields when cloning animals
02/03/15 Variable data performance: calc time on shelter with MostRecentEntryDate
02/03/15 Variable data performance: cache age group bands to save queries
02/03/15 Variable data performance: don't recalculate the dead every run
02/03/15 Update MostRecentEntryDate as part of update_animal_status instead
01/03/15 Improve publisher performance by using new async module
01/03/15 Add async module - helper functions for long running tasks
26/02/15 Add PostgreSQL asm_to_integer to avoid cast errors with additionals
26/02/15 Fix adoptapet.com goodwith fields (bad type comparison)
25/02/15 Fix adoptapet.com default map to include Barnyard
24/02/15 Incorporate JQuery UI timepicker widget
24/02/15 Refactor OwnerName generating to support multiformat
23/02/15 Facility to email HTML documents as PDFs from media tabs
23/02/15 Show emblem icons on configuration screen as legend
23/02/15 Add emblem for Heartworm, FIV or FLV positive
23/02/15 Animal batch update should check location of animals due for return
23/02/15 Add MicrochipManufacturer wordkey and factor regexes into backend
23/02/15 Default values for additional fields, do not allow ? in field names
19/02/15 Restructure user menu, add help menu and FAQ
19/02/15 Show species in movement books
19/02/15 Validate against date of birth being in the future
19/02/15 Strip unicode characters when importing CSV
17/02/15 add maint_db_reset cron target
17/02/15 csvimport delete option removes all non-lookup data
16/02/15 Fix bug with diary comments saving
16/02/15 Fix diary note permissions for MY/ALL
14/02/15 Include location filter on user overview screen
14/02/15 Fix reliance on jquery ui accordion IDs (broken in jqueryui 1.11)
14/02/15 Add PERSONFLAGS csv import key
12/02/15 Save bandwidth by loading thumbs after multiselect dialog opened
12/02/15 Reorganise dependencies into static/lib, fix boilerplate in sitedef
11/02/15 Move away from CDNs to host with app due to Cloudflare SSL issues
11/02/15 Add call/incident to mobile interface
10/02/15 Add log to mobile incident view
10/02/15 Add dispatch/respond/complete now to mobile incident view
09/02/15 Add view open/my incidents to mobile interface
09/02/15 Fixed bug when deleting treatments could orphan a regimen
05/02/15 Added WebsiteImageCount wordkey
05/02/15 Added annual figures breakdown by entry category
05/02/15 Added extra annual figures for born on shelter, born on foster, DOA
05/02/15 Use animal ID for publisher image names if sheltercode contains unicode
04/02/15 Enable $$NODATA blocks in subreports
04/02/15 Split showing incomplete medical on docs into medical and vacc option
04/02/15 Add support for registering Anibase/idENTICHIP UK microchips
04/02/15 Fix unicode bug when adding config changes to audit trail
03/02/15 Show spinner in dialogs during save
02/02/15 Add transport reports and extras to print animal report
02/02/15 Add transport alerts and stats to costs
02/02/15 Fix bad references breaking looking for report
02/02/15 Separate document tab under options
01/02/15 Settings screen to trigger batch jobs, changed menu layout
01/02/15 Fix Kuwait date format to DMY instead
30/01/15 Force uploadAllImages for PF and RG (PF breaks now without -1.jpg)
26/01/15 Fix openoffice image support for placeholder.jpg/nopic.jpg
26/01/15 (experimental) Allow native support for openoffice templates again
26/01/15 Reinstate global search by location name
25/01/15 Fix to gracefully handle missing GROUP fields in reports
25/01/15 Fix for datetime parsing breaking with blank date
24/01/15 Bulk creation of transports from transport book
24/01/15 Add transports to calendar view and cost tab
24/01/15 Transport permissions, person driver flag
24/01/15 Separate transport storage rather than movements, animal tab/book
24/01/15 Allow user to set the new password when resetting passwords
24/01/15 New alert/search for not microchipped
24/01/15 Additional animal emblem for not microchipped
24/01/15 Allow intake time to be recorded with "When adding animals" option
23/01/15 Fix max-width of calendar to prevent excess height on widescreen
23/01/15 Add mark dispatched/responded now buttons
23/01/15 Show responded date time in incident search results
23/01/15 Allow additional fields to be selectively searchable
21/01/15 Allow bulk change of hold/hold until
21/01/15 Add MedicalNextTreatmentDue and MedicalLastTreatmentGiven wordkeys
21/01/15 Remove cloudmade provider as they are no longer available
21/01/15 Remove smcom geo provider as can override nominatim URL for proxy
21/01/15 Fix Google QR to use // to match current site protocol
21/01/15 Make QR source a sitedef to allow different providers
20/01/15 Consolidate and simplify location filter code
20/01/15 Allow on-shelter movements to be included in location filters
19/01/15 Add DONATIONPAYMENT column to csv import for payment method
19/01/15 Date manipulation hotkeys only work first time
19/01/15 FTP publish, do no processing for existing images
19/01/15 FTP publish, add lsdir, only issue one LIST per run, use nlst
18/01/15 Add austrian locale
15/01/15 Better javascript db for web publishing, fixed plain search template
15/01/15 Add systemd unit file to Debian build
14/01/15 Add Identichip UK homechips
12/01/15 Reduce memory usage of update_animal_status with animal_status_query
12/01/15 Fixes for person/animal links on additional slider
12/01/15 Fixes to print animal report (costs and animal/person links)
11/01/15 Fix embedded add owner disabling after single use
09/01/15 Use two stage get_animal_ids function for shelterview performance
08/01/15 Limit shelterview to 1,000 records in larger databases
07/01/15 Fix orphaned records deleting waiting list, lost/found, animalcontrol
07/01/15 Transfer batch number and stock name to vacc when administering
07/01/15 HTML publisher can output forms.html with links to online forms
07/01/15 Abandon VetEnvoy runs if a 54101/account not found is received
05/01/15 Turning off good with fields breaks additional fields on that section
05/01/15 Fix apostrophes in email addresses breaking pages
05/01/15 Anti-spambot verification for online forms
05/01/15 Allow online forms to be cloned
05/01/15 <<ReservationStatus>> wordkey
02/01/15 Better PetLink error handling for incorrect user/pass
31/12/14 Fix hang adding a new report
31/12/14 Regenerate sequences after an action query in SQL interface
29/12/14 Add ASK LOGTYPE
21/12/14 Fix timezone offset for default date in report dialogs
20/12/14 Fixes for embedded widgets and indexed searches
20/12/14 Fix size of onlineformfield tooltip/raw markup field (1Kb too small)
20/12/14 Add reservation status field (adoption application status for US)
20/12/14 Allow a fosterer to be selected when creating an animal
18/12/14 Hide generate labels from mailmerge if required fields are missing
18/12/14 Export Reports as CSV option on reports menu, new permission
18/12/14 Fix for old ASM2 reports reappearing due to condition on wrong field
17/12/14 Allow tokens in sitedef from address for org/db/alias
16/12/14 Fix broken satellite icons on lost animal details tab
16/12/14 Holds should come off on the actual day set, not the day after
15/12/14 Allow use of multiple $PARENTARGX$ values when generating subreports
11/12/14 Use sitedef for from address on all emails with shelter as reply-to
11/12/14 Fix permissions on menu items for Animal Control/Medical calendar
11/12/14 Show view roles when browsing reports
11/12/14 Followup alert broken boolean logic, OR too inclusive
11/12/14 requirefollowup filter wrong in incident find select
10/12/14 Santise renamed html template paths
10/12/14 Add half_a4_cage_card for landscape a4
08/12/14 Fix to html decode entities in units

35
================

04/12/14 Better error handling for {REPORT.} tags
03/12/14 When suggesting location units, shows current availability
03/12/14 Can set fixed location units in internal locations for animal/animal_new
28/11/14 Ability to create incidents/complaints from online forms
28/11/14 Allow configurable time for daily emails with reports_email cron target
27/11/14 Daily Email report field to allow batch sending of reports every day
27/11/14 Date picker field type for online forms (pulls in JQuery/UI)
26/11/14 Option to show off shelter medical/vacc/tests in books and calendar
24/11/14 Hide current account when creating trx to avoid zero trx
24/11/14 Don't allow decimals in stock numbers
24/11/14 Cost wordkeys on all meds, vacc batch, expires and manufacturer
24/11/14 Allow CSV import to carry on if some rows have fewer columns
24/11/14 Allow emails to be sent/logged from lost/found and waiting list records
22/11/14 Fix bug with DisplayLocation calculated field not using new values
22/11/14 Fix sql multi-query parsing when executing dumps
21/11/14 Remove breed inner joins from reports as not necessary
20/11/14 Widgetise email dialog for other screens
20/11/14 Extra wordkeys for accessing cost records
17/11/14 Fix use of wrong parameter for utils/POST (avid)
15/11/14 Fix double click bug when changing password
15/11/14 Complete Turkish translation (Burcu B)
14/11/14 Show fore/background color selector in document template editor
13/11/14 Improve lost/found search, show contact separate with person link
06/11/14 Clone role button
06/11/14 Allow vaccinations to track expiry, batch number and manufacturer
05/11/14 Improve movement screen validation and field disabling
05/11/14 Add new transport movement type with transport book
05/11/14 Include pickup location/by in entry section and person links
02/11/14 Add HomeCheckedByName, HomeCheckedByEmail wordkeys
02/11/14 Add HomeCheckedByHomeTelephone, HomeCheckedByCellTelephone wordkeys
02/11/14 Hide old online form attach functionality
02/11/14 Allow online forms to be attached to existing animals
02/11/14 Include a blank option for adoptable/shelter online form animals
30/10/14 onlineform emails should include preview in the subject
28/10/14 Use reserveanimalname as a prefix to allow multiple form reserves
27/10/14 Extend data import modules to support pulling images from PetFinder
27/10/14 Improve performance for home page link loading
23/10/14 Don't include reserved animals in lookingfor report
22/10/14 Fix storage of matchagefrom/to to floating point
21/10/14 Fix high memory usage in lost/found match report
21/10/14 Fix high memory usage in person looking for report
21/10/14 Show person comments on looking for report
20/10/14 Fix PetLink to use urllib3/SNI, refactored all HTTP requests
20/10/14 Allow raw markup online form type
17/10/14 Facebook now requires HTTPS/SNI, switch social.py to use urllib3
14/10/14 Include payment wordkeys when generating animal/move documents
09/10/14 Second payment should apply to "receive a payment" screen
08/10/14 Add new map report type and some sample map reports to repository
07/10/14 Importing online form to a person checks to see if that person exists
07/10/14 Add TrialEndDate wordkey
06/10/14 Fix manual and contents of animal.DisplayLocation field
03/10/14 Support CTRL+A for selecting all items in a table
01/10/14 Include reclaims when sending to PetLink
30/09/14 Better keyboard support via mousetrap, now supports IE8 and CTRL+S
30/09/14 Special form reserveanimalname field to auto reserve to person
30/09/14 Add online form field types for animal, breed, colour, species
30/09/14 Allow path to be set for document repository items
29/09/14 Fix for display of account override on second donation
26/09/14 Force reload of page after installing reports from repository
26/09/14 Fix for form not dirtying when clearing bonded animals/additional
26/09/14 Fix bad display of deceased animal logic in search/animal banner
22/09/14 Fix display of linked additional fields
13/09/14 Document directives for pdf papersize and pdf orientation
10/09/14 Use separate permission for merging people
09/09/14 Include suspect name on dispatch email
09/09/14 Validation for incident times
08/09/14 Include PetPlan form in base install
07/09/14 Don't include excluded images when accessing media by sequence
05/09/14 Fix for medical ends after 0 periods not creating treatments
05/09/14 Automatic validation for time widgets
03/09/14 Added en_MX locale
30/08/14 Petlink should be enabled for Canada as well as US
16/08/14 Add 6 week publish exclude and ddd-ddd-ddd AVID format
13/08/14 Fixed bug in person looking for report
11/08/14 Fixed bad quantity validation breaking stock change
11/08/14 Fixed spelling of Dandie Dinmont Terrier for RG

34
================

29/07/14 Fixed invalid reference in Greek translation
28/07/14 traploan word keys added
28/07/14 breed1==breed2 should denote unspecified/unknown crossbreeds
25/07/14 Alert for holds ending today, matching search
25/07/14 sitedef to decode html entities to unicode when storing in the db
21/07/14 csv_mail API target
17/07/14 Complete description, units and total from last stock with name
17/07/14 Default stock balance to total if blank
16/07/14 Allow quantity to create multiple stock items, update manual
16/07/14 Show batch number in stock item list
15/07/14 Stock take mobile interface
15/07/14 Fix PetFinder publisher to use &#10; instead of <br> as advised
13/07/14 Fix for licence number validation errors
10/07/14 Default stock usage comments to animals receiving stock
10/07/14 Add stock usage reports
09/07/14 Hide zero balances when loading stock levels
09/07/14 Allow deducting from stock when performing tests
08/07/14 Add perform test dialog
07/07/14 Allow deducting from stock when giving treatments
07/07/14 Allow deducting from stock when administering vaccinations
07/07/14 Fix vaccination rescheduling to use a date and dialog
07/07/14 Allow stock control to be disabled
04/07/14 Stock control UI added
01/07/14 Stock control backend and unit tests
24/06/14 Support for AVID ddd*ddd*ddd format
20/06/14 PetRescue adjustments (single image, dump to FTP root)
20/06/14 Show microchip manufacturer from prefixes on screen
17/06/14 Calculate left shelter and time on shelter correctly
16/06/14 Show diary as all day on the calendar if time is midnight/blank
09/06/14 Unit test regression suite
09/06/14 Show all diaries on calendar if option on, show quick button on home
05/06/14 Split calendars into separate animal control, medical, payment and diary
05/06/14 Calendar legend/toggles to show/hide different info
05/06/14 Add payments, incident followups and trap loans to calendar view
04/06/14 Calendar view with diary, vacc, medical and tests
04/06/14 Medications can be given only on weekdays now (for fasted exotics)
04/06/14 Validate usernames are unique before creation
01/06/14 Only use views for reports due to poor MySQL performance
01/06/14 Show number of published items for last 10 runs in publish_logs
01/06/14 Only allow saving documents when dirty for non-generated
31/05/14 Use browser's built in spellchecker and retire tinymce plugin
30/05/14 Option to auto return fosters during adoption from tabs/books
30/05/14 Add person class field to show organisation name
30/05/14 Add deceased person flag
30/05/14 Remove retailer person flag when retailer is disabled
30/05/14 Sort all person flags in alphabetical order
29/05/14 get_stats wasn't including cost of tests in total
29/05/14 Licence search/display should be on person as animal is optional
29/05/14 Critical performance bug with bad JOINs on licence search
29/05/14 Improve similar person match - case insensitive, first address word
26/05/14 Default boarding cost is set on creation, should not trigger on 0
26/05/14 Fix unicode search issues with additional flags

33
================

19/05/14 Link animal control incident from animal's record, show in results
17/05/14 Make sure HTML publisher clears then uploads new pages last
16/05/14 Option to show empty locations in shelterview
16/05/14 Fix CSV importer to cope with universal line endings
15/05/14 Add publisher for PetRescue.com.au
15/05/14 Add perm attribute to standard buttons
13/05/14 Fix for bug formatting yes/no values in templates
12/05/14 Activate AKC Reunite publisher
09/05/14 Add warning and link to change user theme if admin has changed theme
09/05/14 Added Hungarian locale
09/05/14 New E/EE/S/SS/XX/XXX format tokens for shelter codes
09/05/14 Fix for failing server side validation leaving forms as not dirty
08/05/14 Upgrade JQuery/UI/Mobile to latest versions
08/05/14 Simplify PDF scaling and use shared single routine
07/05/14 Hide tabs without view permission instead of ugly error
06/05/14 Button to switch reservation to adoption
06/05/14 Ability to view mail merge data
06/05/14 Allow online form submissions to be emailed
02/05/14 Treat 54100 and 54108 as successful VE codes
01/05/14 send_bulk_email should be asynchronous to avoid proxy errors
01/05/14 Correct IEEE rounding errors when sending currencies back
30/04/14 Add size field to waiting list
30/04/14 Allow trap loans to be enabled separately from animal control
28/04/14 Add optional animal link to animal control
28/04/14 Add extra suspect and followup fields to animal control
25/04/14 Highlight owners with incidents against them
24/04/14 Make VetEnvoy signup title a dropdown to save confusion
24/04/14 When publishing, don't escape HTML/unicode entities
24/04/14 Link to youtube channel under user menu
24/04/14 Hide location field for foster when fosteronshelter
23/04/14 HTML/FTP publisher can now output rss.xml with pages
22/04/14 CitationTypeID reference wrong, should be ownercitation
22/04/14 Animal link should be optional for licenses
20/04/14 Highlight mandatory fields in online forms
19/04/14 Animal control reports/graphs/mailmerge added
18/04/14 Hide SmartTag config if no sitedefs
16/04/14 Simplify SmartTag configuration and include contact info
15/04/14 Disabling notadoption emblem should hide alert
15/04/14 Individual onlineform header and footer fields
14/04/14 Attaching online forms includes header/footer
14/04/14 Allow person advanced search to match multiple flags
14/04/14 Smartphone interface: extra data on view animal, add animal
13/04/14 Fix XML escaping bug in HMRC spreadsheet
11/04/14 Option to disable move menu and movements tab
11/04/14 Option to force display of location icon with all emblems
11/04/14 Show animal emblems in all medical/movement books
11/04/14 Include websitemediadate to invalidate cache in movement books
11/04/14 Temporarily disable AKC, go live for HomeAgain in stable
11/04/14 Fix person delete, check more foreign keys, add to merge
08/04/14 Fix person merge: error not closing dialog, undirty form
08/04/14 Added bulk change animals screen
08/04/14 Use opacity in multianimalselect to indicate selection
07/04/14 Fix Chrome backspace bug
07/04/14 Active traploans should be all unreturned
07/04/14 Exclude from bulk email checkbox, updated mail merges in repo
07/04/14 Monthly asilomar figures
07/04/14 Investigations linked to animal control functionality flag
06/04/14 Report email failures when sending from incident/person
06/04/14 Email incident dispatch info to ACO
06/04/14 Search by licence number
06/04/14 Smarttag exporter can also register their microchips
04/04/14 Added licencing module
03/04/14 Trap loan alerts
03/04/14 Trap loan support, trap type lookup, active loans menu item
03/04/14 Split citations into separate module for incidents/people/unpaid
02/04/14 Added animal control active incidents map
02/04/14 Documented animal control module in manual
02/04/14 Old screenshots updated in manual
02/04/14 Payment wordkeys, manual updated
02/04/14 Animal control alerts added for unpaid fines, undispatched, etc.
02/04/14 Added adoption warnings for animal control
02/04/14 Added person links for animal control
01/04/14 Added Qatar locale
01/04/14 Find incident/results screen
01/04/14 Use ReservedOwnerID on animal docs if no CurrentOwnerID available
01/04/14 Fixed selection bug with log and diary screens
01/04/14 Incident minimap, satellite screens
31/03/14 Incident editing screen, tweaks to other edit headers, icons
31/03/14 Correct prefix for AKC Reunite chips
31/03/14 Animal control permissions, menu entries, additional fields, links
31/03/14 Animal control module/backend
31/03/14 Renamed donations to payments for logical consistency

32
================

28/03/14 Group shelterview by entry category
28/03/14 Allow multiple incoming form submissions to be printed
28/03/14 Option to treat retailer movements as on shelter
28/03/14 Bulk medical/test support from books
27/03/14 Don't output heartworm/fiv/l results in wordprocessor if not set
27/03/14 Bulk vaccination support from vaccination book
27/03/14 animalchoosermulti widget allows group animal selection
26/03/14 SmartTag: remove sourcesystemidkey field at ST request
26/03/14 Prevent trial adoptions registering with microchip providers
26/03/14 Added responsive HTML publishing template
25/03/14 Config switches for TinyMCE/window.print() and duplicate microchips
25/03/14 Simplified version number change
25/03/14 Documents post back to printable version for mobile devices instead
of using javascript window.print(), which is not supported
25/03/14 config switch AllowDuplicateMicrochip (default no)
25/03/14 Printable online forms
25/03/14 locationfilter wasn't applied to mobile interface
24/03/14 Schema changes for VetEnvoy, pre-xsd validation
24/03/14 Show number of alerts in publisher logs
24/03/14 Flag AVID validation errors as alerts
24/03/14 Added config switch for cost fields
24/03/14 Add cost paid date functionality with config switch
24/03/14 Fixed bug where dialog is unclosable for error with animal delete
23/03/14 Removed redundant SYSVENDOR for VetEnvoy
20/03/14 Rewrote publishing area of manual
20/03/14 HTML/FTP publisher can now create adopted.html of recent adoptions
20/03/14 Separate sitedefs for controlling PDF scaling in batch/attach
19/03/14 Fixed bug with pettracuk name change causing animals to be resent
19/03/14 Validate that microchip numbers are unique when adding/saving
19/03/14 Option to show microchip fields when adding animals
19/03/14 Improved SQL interface, script dialog
19/03/14 Fix malformed HTML causing wide click area for sql file input
18/03/14 Allow cron to rerun all annual figures in isolation
18/03/14 Option to split annual figures (by type) into adults/juveniles
18/03/14 User activity report shows changed logs, fixed off by one date bug
18/03/14 Allow online form fields to be marked mandatory
18/03/14 Fixed smarttag address handling, added utility functions
18/03/14 Highlight publisher runs with errors as alerts
18/03/14 Fix bug where time not given on new diary notes
18/03/14 Allow rename of document templates
13/03/14 Fixed bug where PetLinkSentDate still referenced
13/03/14 Make exec_sql use ;\n as split instead of fragile scan version
09/03/14 Make sure tests are cloned with animals
09/03/14 VetEnvoy auto signup added (alpha)
07/03/14 VetEnvoy publisher added, alpha HomeAgain microchip update support
07/03/14 Tidy up publish options screen with signup URLs and info
07/03/14 Move third party URLs and hostnames to sitedefs instead of db
07/03/14 Override WEBSITEMEDIANOTES with comments for service users
06/03/14 Refactoring to dbupdate module
06/03/14 Manage published flags in a new table, remove fields added since
ASM3, mark ASM2 fields as compatibility for future deletion
06/03/14 Make AVID UK PETtrac a standard publisher
05/03/14 Fix for csvimport creating breeds with no linked species
05/03/14 Fix poorly sized splash images making a mess of login
05/03/14 Default the email signature for bulk emails
05/03/14 Ability to rename extra images
04/03/14 Completion of refactoring to PostedData object
03/03/14 Add smcom geocode provider
03/03/14 Taiwanese dollar has no cents, remove superfluous server formatting
03/03/14 DonationPaymentType wordkey
02/03/14 Bug with figures generation not working with pseq
28/02/14 Allow geo/map providers to be overridden per-database
27/02/14 Adoption Fee field with wordkey and move* override
26/02/14 Option to log every time an animal changes internal location
26/02/14 Receiving donations prompts for document generation
24/02/14 Creating animals from waiting list should populate hidden comments
24/02/14 Fixed bug with person validation on donation_receive
24/02/14 Allow override of deposit account when adding donations
22/02/14 Allow neutered date to be set on add new animal screen
21/02/14 Make using animal comments as bio a publishing option
21/02/14 HTML publishing for smcom should remove existing files
20/02/14 Show an alert for incoming online form submissions
20/02/14 Updated cost reports to include animal tests
20/02/14 Always use animal comments when publishing bio, nobody uses media
notes and it's an endless source of confusion
19/02/14 Sex should default to Unknown
18/02/14 Move->reclaim screen
17/02/14 Allow all media types to be emailed
17/02/14 Fix for vaccination/cost types trying to create accounts
15/02/14 Fix for shelterview sort by fosterer
11/02/14 Add font size/face selectors to word processor
11/02/14 Support for Google for bulk geocoding

3.3.1
================

07/02/14 Use UTF8 for outputting PDFs from word processor documents
07/02/14 Fix for output of unicode chars in lookup editing dialogs
07/02/14 Looking for can match on colour
07/02/14 Advanced find animal can search colours
07/02/14 Option to merge bonded animals when publishing
06/02/14 Ignore microchips of the wrong length publishing to PetLink
06/02/14 Fixed bug in initial database setup since adding LocationFilter
06/02/14 Use ON DUPLICATE KEY UPDATE For MySQL when saving configuration
06/02/14 LogName/LogDate/LogComments wordkeys for animals
06/02/14 Fixed bug where NextCreated blanked out by update
06/02/14 Hide reports users don't have permission to view from the menu
31/01/14 Ability to assign a location filter to users, enabling them to only
view and edit animals in those locations
30/01/14 Fixed bug where person flags weren't passed to online forms
30/01/14 Ability to slice shelterview by foster home
29/01/14 Simplify medical - give button prompts for date
29/01/14 Publishing should always produce a log even if startup failed
28/01/04 Allow changing of date required on medical treatments
28/01/04 PetFinder have a limit of 3 photos
28/01/04 HTML publisher should clear last error on startup
28/01/04 More robust negative/currency handling
28/01/04 Don't allow held animals to be adopted
28/01/14 Create WL button on found animal should not need add animal perms
28/01/14 Allow use of $$ tags in publisher media notes/comments and extra text
27/01/14 Fixed bug in medical display where started column was blank
27/01/14 Allow override URLs for sql dump with media
27/01/14 Support for currency symbols at the end of the field (bulgarian)
27/01/14 Don't show bonded code missing
27/01/14 Protect against None in person_name_code / online forms
24/01/14 Prevent session expired messages
24/01/14 Don't show complete or held medical regimens as overdue
23/01/14 Fixed bug in looking for report where it couldn't store 0 results
23/01/14 Added DeceasedNotes and DeceasedCategory wordkeys
23/01/14 Fixed old psycopg2 bug that broke pgbouncer pooling
22/01/14 Show breed in search results
22/01/14 Styled tinymce pagebreak, fixed table guides for print
21/01/14 Allow negative donations for refunds
21/01/14 Fixed unicode URL bug in Python2.7 when posting to Facebook
21/01/14 select content-disposition for Facebook/PetLink compatibility
21/01/14 Lost/found matches excluded if lost and found on the same day
21/01/14 Force session cookie name/path to prevent Apache mangling it
21/01/14 Fixed ancient bug where session parameters set too late
21/01/14 FastCGI deployment mode for other webservers
19/01/14 Daily job to find missing geocodes with bulk services
19/01/14 Option to disable minimap
18/01/14 Support for MapQuest geocoder
17/01/14 Make creation of new people not dependent on geocode
17/01/14 Remove static Google image stuff
17/01/14 Support Google for maps
16/01/14 Allow $0 donations for shelters who log food/other items as donations
16/01/14 Support Google for geocoding
16/01/14 Move geocoding to client side for better distribution
15/01/14 Derive geocode country search from locale
15/01/14 Add locales for Kuwait and Bahrain
15/01/14 Use md5 hashes to verify address changes in geocodes
15/01/14 DB search can search non-indexed fields in dbs<10000 animals
14/01/14 UK postcodes should be on the last line for mailing labels
14/01/14 Support for cloudmade geocoding, menu z-index fix
14/01/14 Apostrophe in real name can break login
13/01/14 OSM based embedded mini-map
13/01/14 geo module for looking up lat/long from addresses
13/01/14 If compressed PDF is larger, use the original
10/01/14 Fix for bug where non-superusers couldn't edit accounts
10/01/14 Allow spaces in yes/no lookupvalue formats
09/01/14 Simple searches from DB search should not use non-indexed fields
09/01/14 Fixed search timer clock (off by 1 order of magnitude)
09/01/14 Many indexes should exist on animal/owner for larger sets
08/01/14 Fix bug with clone and non-null identichipnumber constraint
07/01/14 DonationPaymentID wasn't being copied when creating next frequency
07/01/14 Fix for displaying null location units
03/01/14 PetLink now want CSV instead of tab separated data
02/01/14 PetLink website does not honour Content-Disposition: file
02/01/14 Bug where meetapet marked SmartTag published
31/12/13 SmartTag prefer animalkey as an integer
31/12/13 Fixed null check in publisher for IsHold/IsQuarantine
31/12/13 SmartTag missing terminator in signupeffectivedate
31/12/13 Force PetLink to use SSL and fixed selection query
31/12/13 SSLv3 bug fixes for Python 2.7/OpenSSL 1.0
31/12/13 Add en_TW locale
31/12/13 Set some fields to NULL for ASM2 compatibility
17/12/13 Search base colours with simple find

3.3.0
================

16/12/13 Simplify Debian package, remove debconf, update docs
16/12/13 Remove environment variable overrides in favour of sitedefs
15/12/13 Fix for forward slashes in shelter codes when publishing
12/12/13 UI for OwnerNameFormat switch
12/12/13 Hidden OwnerNameFormat config switch
11/12/13 Add support for permanent fosters
10/12/13 Use CDN version of TinyMCE and upgrade to 4.0.11
10/12/13 Add PERSONNAME csv import field
09/12/13 HTML/FTP publisher should obey extra text and use comments if blank
08/12/13 Fix for commas in org names when constructing email
06/12/13 Tweaks to SmartTag publisher files based on feedback from them
03/12/13 Safari fix for parsing the validation messages
03/12/13 Show validation errors in dialog instead
03/12/13 Change mailing label layout based on locale
01/12/13 Disable fancy tooltips altogether, too flaky
30/11/13 Move CDN js/css references into sitedefs
30/11/13 Add support for PostgreSQL sequences and ASM3_PK_STRATEGY sitedef
29/11/13 HTML/FTP publisher always generates CODE-1.jpg or CODE.jpg but will
also output ID.jpg for compatibility with old templates
28/11/13 Show full animal emblems with animal name on movement screens
28/11/13 halved the number of queries updating the configuration uses
28/11/13 option to cache most common less important queries (shelter view
animals, alerts, stats) for a minute to help with performance
28/11/13 has_asm2_pk_table flag used by smcom, saves unnecessary db updates
28/11/13 Support memcache incr for primary keys
27/11/13 Added location and unit shelterview grouping
27/11/13 Better error handling during audit, always show ID in diff
24/11/13 Configurable "forgotten password?" link
22/11/13 Added UserRealname and UserEmailAddress wordkeys
18/11/13 Fix to make new/updated since last publish flags work correctly
15/11/13 Report view role permissions to forbid certain users from reports
15/11/13 split batch reports into separate cron task for more frequent running
15/11/13 looking for, show criteria and hide animal header if no results
15/11/13 Added location emblem to animal links on home page
15/11/13 Cleaned up death icon, added non-shelter
15/11/13 More useful info on animalchooser widget, rearranged emblem/link code
15/11/13 Added show=ANIMALID URL parameter to littlebox template
14/11/13 Better viewport sizing for iPads and other tables
14/11/13 Create person, lostanimal, foundanimal and waitinglist from form
13/11/13 Incoming form submitting screen, menu links and permissions
12/11/13 Online form custom header/footers and default thank-you static page
12/11/13 Online form field editing screen
12/11/13 Online form header editing screen
12/11/13 Use TABLES_ASM2 collection instead of diff
12/11/13 Squash duplicate searches in the search autocomplete
12/11/13 Maintain and tag ASM2 compatibility for later removal
12/11/13 Updating FIV, FLV or heartworm tests updates the old ASM2 fields
11/11/13 If a user's password is reset, request they change it on next login
11/11/13 Add Facebook "Post as" ability
11/11/13 Simplified Facebook config, page username no longer required
08/11/13 Refactored out dbo.baseurl and moved into sitedefs
08/11/13 Units appear in search results, shelter view and books
08/11/13 Added Location units, so pen/cage numbers can be tracked
07/11/13 Add payment type dropdown for donations with lookup
07/11/13 Allow additional fields to be stored with lost/found and waiting list
07/11/13 New additional field types, multi-lookup, animal and person
04/11/13 Rearranged health/identification tab
04/11/13 New test tab to log test results, moved FIV/L and heartworm
04/11/13 Fix to not use js reserved keywords int and float
04/11/13 Fix for concatenating cost totals (Chris M)
04/11/13 Experiment with blank secondary breed for adoptapet.com mixes
25/10/13 Add Quarantine and Hold checkboxes (with shelterview, advanced
search, emblems, config, and auto cancel hold after period)
24/10/13 sitedef to prevent image hotlinking except from specific domain
23/10/13 Fix for unique codes being reused when unique through others
22/10/13 Don't show unaltered alerts if the emblem is disabled
22/10/13 Exclude names that end with numbers when generating randoms
16/10/13 Fix for monthly animal figures wrongly excluding returns
16/10/13 Fix for monthly animal figures double counting fosters
15/10/13 LastChanged/CreatedDate should include time to current timezone
15/10/13 Added owner.OWNERCODE field with search/display
15/10/13 sitedef to disable pdf scaling
11/10/13 Fix for broken empty owner validation on donations
11/10/13 Tidied up default config and initial database
11/10/13 Additional database views for medical/movements
10/10/13 Fix for destination account validation
10/10/13 Use real database views so they can be used with reports
09/10/13 Add user overrides/settings screen for locale/theme/email/name
09/10/13 Use tabs for options screens, less cluttered
09/10/13 Fix bug with usernames/roles containing apostrophes
08/10/13 Prefer to hide fields over disabling as looks inconsistent
08/10/13 Fix to allow no donation type to be mapped to an account
08/10/13 Fix to exclude non-income accounts when creating donation trx
07/10/13 Added default cost/value to cost types and vouchers
04/10/13 Changed users.get_users to use two queries instead of fragile db code
04/10/13 Allow assigning of view and edit permissions on accounts
04/10/13 Fixed multi-database splash screen bug on login (Derek Knight)
04/10/13 Refactored ghostscript commands into sitedefs (Derek Knight)
03/10/13 Sort shelterview by type
03/10/13 Fix updates to still run default update queries even if DDL fails so
that imports from older ASM databases still get default data
03/10/13 Remove pointless path parameter from updates
03/10/13 Recommend annual and asilomar figures reports
02/10/13 Only show movement return category/reason if a date has been selected
02/10/13 Add "reserved" logical location, fixed adoptable to not include trial
02/10/13 Use JQuery UI tooltips
01/10/13 Fix for 2 digit years at the client side
30/09/13 Upgrade to TinyMCE4 to take advantage of improvements
30/09/13 Show user when auditing user updates
30/09/13 Fixed bug with generating PDFs from documents with nopic
27/09/13 Inactivity timeout/auto logout option
27/09/13 Allow omitheaderfooter/omitcriteria tokens in repository report
database element to auto disable them after install
27/09/13 Allow special template report tokens to be used in groups
26/09/13 Allow VACCINATIONNAME[NAME] key, makes more sense than appears!
26/09/13 Added en_CN locale for Chinese
25/09/13 Comments/response diary field to prevent overwriting note/subject
24/09/13 Completed refactoring of mobile.py
24/09/13 Use 1-based count for image seq as stated in manual
19/09/13 Add cost/donation stats and re-apply permissions
19/09/13 multiprocess not buying us anything, switched to threading
19/09/13 Added return from transfer book
17/09/13 Don't use smcom alias_map, extract from pg_users instead
17/09/13 Feedback when saving Settings->Options
17/09/13 Allow movement insurance number field to be removed
17/09/13 Add shelterview grouping selector and config
17/09/13 Separate compilejs target, stops on error
16/09/13 Make years/months diff work correctly again
15/09/13 Optimise alerts into a single query and add stats to home page
15/09/13 Use memcached for caching service call responses on the server
14/09/13 Added VACCINATIONDESCRIPTION wordkeys
13/09/13 Added js minification to the build with sitedef
12/09/13 Give and reschedule should use existing date given if available
11/09/13 Scale one side of images when appearing in documents
09/09/13 Syntax error in update_all_animal_statuses
06/09/13 Refactor CSS to take advantage of modernizr
06/09/13 Add modernizr to detect browser features
06/09/13 Split up header and common as they'd gotten large

3.2.2.1
================

04/09/13 Fixes/refactoring for smcom aliases in cron.py

3.2.2
================

03/09/13 Fix for sending blanks and broken mail merge
01/09/13 Add $ASK PERSON$ and fix $ASK ANIMAL$ to use animalchooser
01/09/13 Fix broken overlap where 364 day old animal becomes 0 years
29/08/13 Default sex to unknown if not supplied during csv import
28/08/13 Added locales for Ecuador and Mexico
28/08/13 Support IE8 officially, remove warning, add box-shadow workaround
28/08/13 Validate publishDir exists before continuing with HTML publish
28/08/13 Switch "remember me" to use HTML5 local storage
28/08/13 Remember previous searches with HTML5 local storage
27/08/13 Allow partial matches for relevancy searching
26/08/13 Disable Facebook publishing if animal has no image
26/08/13 Person find simple search should include email address
23/08/13 Update to JQuery 1.10.2
23/08/13 Added sitedefs and refactored some hard coded values
22/08/13 Fix for initial database redirect and PIL import (Derek Knight)
22/08/13 Removed unneeded code now old HTML templates have gone
22/08/13 Moved diary tasks to client side, last of templates removed
21/08/13 Moved litter screen to client side
21/08/13 Moved lookup data screen to client side, better workflow
20/08/13 Moved publish_logs screen to client side, added sort
20/08/13 Fixed bugs with one-way unicode symbols in report HTML
19/08/13 Moved reports screen to client side
19/08/13 Russian problem with formatting daily boarding cost currency fixed
19/08/13 Option to remove Rabies Tag from health tab
19/08/13 Make estimated age normal input box and allow floating point years
19/08/13 Checkboxes on health and identification should disable fields
19/08/13 Added Crossbreed/Dog breed to default set for PetFinder
19/08/13 Added clone template button to document templates
19/08/13 Added Caymen Islands locale
16/08/13 Cope with blank mysql passwords by not sending them
16/08/13 Allow users to send emails from their own addresses if set
16/08/13 Fixed problem of issuing multiple chooser searches from same widget
16/08/13 Fixed "apostrophe" type bug with dates in HMRC spreadsheet
14/08/13 Added ASM2 SQL export option (experimental)
14/08/13 toPOST failed truthy test for empty strings, now allows saving of
blank values in configuration and other screens
14/08/13 Overdue donations links to donation book now with overdue offset
14/08/13 Full configuration of animal emblems
14/08/13 Changed default incoming media scaling to 640 pixels on longest side
13/08/13 Fix for some additional fields not appearing options for find screens
13/08/13 Add emblem to highlight non-neutered/spayed animals
13/08/13 Added donation book screen
13/08/13 Removed redundant code from html.py
13/08/13 Moved donation screen to client side
12/08/13 "Remember me on this computer" checkbox on login screen
12/08/13 Relevancy search sort order
12/08/13 Option to show codes on shelter view screen
09/08/13 Fixed "attroperties" bugs in asmselect with JQuery 1.10
09/08/13 Fixed bug with multiple animal entries with multiple open reserves
03/08/13 Stop chooser/clear causing form dirtying
30/07/13 Moved user editing to client side, fixed bugs with assigning roles
25/07/13 Fixed bug with redirecting to mobile if m. appears in the URL
25/07/13 Added ANIMALHIDDENDETAILS, ANIMALHEALTHPROBLEMS,
ANIMALNOTFORADOPTION, ANIMALHOUSETRAINE, ANIMALGOODWITH* to csv import module
19/07/13 Moved animal costs to client, all ajax and removed unused js modules
18/07/13 Link shelterview to trial adoption and foster books
18/07/13 shelterview allows drag and drop to move animals between locations
18/07/13 Fixed role bugs with initial create not saving checkboxes and
"attroperties" with updated JQuery.
18/07/13 Moved role screen to client side.
17/07/13 Moved medicalprofile to client side rendering.
17/07/13 Fix for broken HTML5 File APIs on Safari
17/07/13 Moved medical book/animal medical to client side, refactored status
display and added location.
17/07/13 Added csvimport fields: reason for entry, original owner and person
phone/email fields
16/07/13 Remove existing HTML pages from publish space before running HTML
publisher
15/07/13 Upgraded to JQuery Mobile 1.3.1
15/07/13 Fix to not show retailer movementtype in dropdown list if disable
retailer option is on
15/07/13 Upgraded to JQuery 1.10.1/UI 1.10.3 and removed reliance on browser
object and other deprecated items
15/07/13 Removed local jquery/ui/mobile libs in favour of using Google/JQuery
CDN full time. It's a pain maintaining and upgrading these libs locally.
People using ASM3 without internet access will have to setup a local CDN
15/07/13 Allow warning for similar animal names to be disabled, and change
dialog text so it makes more sense instead of asking a question and only
giving a close button
12/07/13 Allow emailing of documents from any media tab
12/07/13 New alert for person looking for matches on main screen.
08/07/13 Cloning animals should include their additional fields.
08/07/13 Don't display MeetAPet key or base URL fields as they tell us
defaults will always be correct and all those values are confusing users.
08/07/13 Added recently adopted quicklink type.
08/07/13 csvimport should not import data types where the mandatory field is
missing (animal name, person last name, movement date and donation amount).
04/07/13 Dump without media option to save bandwidth. Changed SQL interface to
have export button/dropdown.
03/07/13 Ported vouchers to client side.
03/07/13 Show location on vaccination book.
03/07/13 Fix for client side lib setting select lookups to 0  (mistakenly
assumed them falsy and ignored) 
03/07/13 Yes/No lookups allow custom text in document templates and the web
publisher.
03/07/13 Lookup items is only available for Yes/No and Lookups.
03/07/13 Ported additional field editor to client side.
03/07/13 Fix CSV output to cope with unicode and encode UTF8, as well as using
unicode attachment names.
03/07/13 Bug interpreting incoming codes when creating a/c trx.
03/07/13 When unicode forces HTML emails, preserve line breaks.
02/07/13 Fix to use dbfs IDs for templates (behaves with unicode).
01/07/13 Ported document repository and templates to client side.
01/07/13 Allow unicode chars when producing PDF labels.
01/07/13 Use keychar so that colon/fullstop work on keyboard layouts other
than latin (experimental).
01/07/13 Fixed bug with default log filter.
01/07/13 Added ERD to the manual and mysql-workbench format model.
28/06/13 Service animal_image call can accept seq, plus new WebsiteImageCount
field returned in animal data.
28/06/13 Fixed service to cope with unicode input.
27/06/13 Fixed bug where having log type filter default of anything but (all)
causes (all) to stop working.
27/06/13 Fixed unicode handling with report STRING parameters.
26/06/13 Fixed bug loading breed field in lost/found screens.
26/06/13 Add ANIMALCODE to csv import (overrides generation of code if given).
23/06/13 Fix adoptapet publisher to use blank values for good with and
housetrained if our value is set to unknown.
21/06/13 My diary notes screen and main screen should take into account the
user's roles when displaying diary notes.
21/06/13 Removed diary userfilter, unnecessary with sorting.
21/06/13 Ported diary note editing to client, added overdue display.
21/06/13 Fix so that lost/found animal records are still viewable in
databases that don't have breeds linked to species.
21/06/13 Explicitly set ExcludeFromPublish for blank docs for databases
created with it NOT NULL.
21/06/13 Set default AJAX response mimetype to text/plain to prevent Firefox
logging errors and trying to pre-parse as XML.
21/06/13 Ported person_new and donation_receive to client.
21/06/13 Ported all log tabs to client.
20/06/13 Minor fix to disable default cost change events in vaccination
editing to prevent default cost overwriting current cost for existing records.
19/06/13 Ported person_links to client.
19/06/13 Ported options, publish_options and publish to client.
18/06/13 Rewritten vaccination book and animal tab to use new client side
library.
17/06/13 PostgreSQL databases should be using the TEXT type instead of
VARCHAR(16384)
17/06/13 Investigation tab against people.
17/06/13 Fixes to some CSS/images to improve performance and clear up
appearance of textboxes.
16/06/13 More short fields (activeuser.username, report title/category)
15/06/13 New generic CSV import module can deal with animals, people, movement
and donation data from external sources by adding known column headers.
14/06/13 Explicit use of no-cache to prevent IE caching controller data and
generated pages.
14/06/13 Use additional field ID for POST instead of fieldname.
14/06/13 Fixed alignment problem with accounts_trx on widescreen.
14/06/13 Don't store quicklinks translated in database, translate on the
client from their IDs.
14/06/13 Fixed litter ID autocomplete to decode unicode entities.
14/06/13 Fixed odd alignment issues on new animal screen.
14/06/13 Show periods less than a week in days.
14/06/13 Move->Deceased was using validation warnings we don't use elsewhere
and wrongly calling death a movement.
14/06/13 Move adopt warning about bonded animals wasn't decoding unicode chars
in the name.
14/06/13 Fixed validation in add log screens, moved client side.
14/06/13 Clearing animal/person on movement tab/screen should hide any
previous errors related to that selection.
14/06/13 Movements with no owner (stolen, escaped, etc.) were showing as null
incorrectly.
14/06/13 Prevent deletion of animals and owners with movements or who are
linked to each other.
31/05/13 Support for multiple plural forms in foreign translations.
24/05/13 Asilomar annual figures generation with batch.
24/05/13 Asilomar category fields added for US users with conf switch.
24/05/13 Fixed bug with output of animal name on Move->Mark Deceased
24/05/13 Fix for broken contact validation on lost/found animals, and not
saving for species with no breeds.
23/05/13 New alerts for unneutered adoptions in the last month and animals not
currently available for adoption.
22/05/13 Show all breeds on find animal until a species is selected.
22/05/13 WebsiteVideoURL and WebsiteVideoNotes wordkeys.
22/05/13 Only show female animals when searching for a litter mother.
22/05/13 Fix for additional field names containing HTML entities breaking
retrieval of XML from the service.
21/05/13 Show YouTube preview thumbnails in the media tab.
21/05/13 Remove references to asm.css for content_css in tinymce as it's
overriding fault/size defaults unnecessarily for no good reason.
21/05/13 Support for document and video links in media.
20/05/13 Allow person media tab to email copies of documents to people.
20/05/13 Fix to allow extra reoprt images to work with document to PDF
generation.
19/05/13 Hidden config switch AnimalFiguresSplitEntryReason to break down
brought in figures on monthly animal figures report by entry reason.
15/05/13 Stop search button leaving the search box via wordwrap on lower
resolutions.
14/05/13 Use ASM's translations and localisation settings for JQ UI datepicker
to save dependencies.
14/05/13 New icons for cruelty case, not for adoption and non-shelter.
14/05/13 Fixed bug with boarding cost fields not showing on Move->Adopt.
14/05/13 When adopting animals bonded to others from Move->Adopt,
automatically create the adoption records for the bonded animals too.
14/05/13 Clean up a few image links that weren't using the media date as a
key, so cached for too long.
13/05/13 Allow sheltermanager.com to use the correct locale for the login
screen when available.
11/05/13 Fixed bug with removing diary notes when deleting animals and people.
Also added code to remove dbfs files for deleted animals and people.
08/05/13 Improved caching with mobile interface, fixed icon/css reference.
08/05/13 Fixed minor bug with waiting list details satellite counts.
08/05/13 New configuration switch to allow overriding of movement numbers on
Move menu screens.
08/05/13 PetLink fix to find JSESSION cookie.
02/05/13 Use inline-block for shelterview and main quicklinks instead of
tables so that it lays out better for users with lower resolutions.
02/05/13 File extensions should be checked in a case insensitive manner.
02/05/13 Deceased should supercede other flags.
30/04/13 Daily boarding cost label not decoded properly for unicode.
29/04/13 Use the owner from the latest movement as current owner when
generating documents so that paperwork for future adoptions still works.
29/04/13 Fixed bug with size default not applying on new animals.
29/04/13 Russian translation completed (Konstantin Chaus)
26/04/13 Use query batches for waiting list daily updates, allow disabling of
urgency updates by setting the interval to 0.
26/04/13 Limit form dirtying only to fields in #asm-content (prevents popup
dialogs dirtying the form, eg: email, diary tasks)
25/04/13 Moved accounts modules to client side, unicode fixes.
25/04/13 Moved remaining lost/found screens to client side.
25/04/13 Moved remaining waiting list screens to client side.
24/04/13 Moved lostanimal/foundanimal details to client side.
24/04/13 Moved all move_* screens to client side.
24/04/13 Moved person find to client side.
24/04/13 Moved animal find to client side.
23/04/13 Switch smcom to use memcached for sessions and pruned unnecessary
cruft from the session object.
22/04/13 htmltemplates moved to client side, fixes random append bug.
22/04/13 change password moved to client side.
22/04/13 Use browser onBeforeUnload where supported to prevent user leaving
with unsaved changes.

3.2.1
================

*. Use 127.0.0.1 as default on windows machines as localhost falls
-  foul of default firewall rules.
*. Prevent en locales from translating lks tables.
*. Moved new animal to client side rendering.
*. Moved find animal criteria to client side rendering.
*. Moved person details to client side rendering.
*. Use 10 hour timeout on sessions and remove menu structure data
-  since it is all cached by configjs anyway. Should reduce session
-  bloat considerably.
*. Optimised monthly and annual figures generation to use batches.
*. Heavily optimised update_animal_status, update_variable_animal_data
-  and all publishers to use single-shot batches to reduce the number
-  of queries as much as possible.
*. Show first time dialog to superusers until dismissed instead of
-  using < 50 conditional.
*. Fix for internationalised email headers.
*. Max short text length for MySQL is 333 bytes for UTF8 keys.
*. When generating documents use original owner as current owner
-  for non-shelter animals.
*. Qualify non-shelter animals with original owner in details/search.
*. Added missing lookup data for account types.
*. Allow menus to break a column, use wider format for ASM and Move
-  menus to take advantage of widescreen monitors.
*. Turn petfinder breed/species into generic publisher breed/species
-  and utilise mappings when publishing to adoptapet.com since the default
-  mappings we already have turn petfinder breeds into adoptapet breeds.
*. Unicode fixes for animal code generation and facebook posting.
*. Use hover styles for menu items and quicklinks.
*. Wordkeys to access donations from animal documents in similar fashion
-  to diets, vaccinations and medical treatments.
*. SQL interface allows script uploading.
*. Show reserved owner in animal details banner.
*. DisplayLocation denormalised field for reports.
*. Smart tag number field should allow nulls in new databases.
*. Allow addition/deleting of coat types.
*. Implemented IP restriction CIDR check.
*. Fix unicode bugs with sending emails.
*. Fix escaping of email addresses in person screen.
*. If defaulting to all in advanced find animal search, tick include
-  deceased and non-shelter by default as well.
*. Unicode fix for email owner screen.
*. Extend length of many of the system lookup fields to account for
-  foreign languages utilising escape sequences.
*. Allow rotating of images in media tabs.
*. Added high res icons for desktop/chrome links.
*. new sort:as and sort:sa for order by species when searching.
*. Show Monday as first day in datepicker.
*. Extend column lengths of all owner/address fields. They're too short
-  for locales using non-Latin1 charsets with unicode escapes.
*. Fix publisher upload paths on Windows.
*. New UK HMRC GiftAid spreadsheet generation module
*. Fixed locale overrides and have translate function ignore poorly
-  encoded items starting with ???
*. Use upload datestamps in thumbnails/media images so that users don't
-  have to keep using CTRL+R when they upload new images.
*. Moved media screens to client side rendering.
*. Web preferred wouldn't go to next image if animal only had one other
-  image on file when the web preferred was deleted.
*. Picup is no longer needed as iOS6 supports file upload. Show a tip
-  for older idevices that they need to upgrade for upload support.
*. animalfigures.Code and animalannualfigures.Code should be strings.
*. Allow label override for hide
*. Fix for null animalid with animalchooser.loadbyid
*. Allow sending of a blank secondary breed field to PetFinder by creating
-  a breed called "Mix" "Unknown", "Cross" or "Crossbreed" and assigning
-  it to the secondary breed field of animals.
*. Fixed directly entering dates with single digit portions in
-  client side screens.
*. Fixed display of additional currency fields in document templates.
*. Fixed multi-locale table sorting.
*. Added MedicalFieldTYPE and RecentTYPE wordkeys. Improved wordkey
-  documentation.
*. My diary notes should include diary notes for roles the user is in.
*. Fixed bug where membership flag can't be removed once a number
-  has been entered.
*. Fixed bug with include locations saving in publishing options, but
-  not reloading properly.
*. Use date and time for outputting in db dump.
*. Fixed bug with updating microchip number/date to show avid button.
*. Make date hotkeys fire change events.
*. Added service API documentation to manual.
*. Automatically remove animals from the waiting list when a shelter
-  animal record is created for them.
*. waitinglist_results now client side
*. Remove multi-query reports capability as it serves no purpose
-  now. Prevent non-SELECT queries running as reports.
*. Friendlier validation check for unique movement numbers.
*. Export to animal/person csv on SQL interface.
*. Use a long term config cache that can be updated when we change
-  it. We do this with a timestamp key, similar to i18n.js, etc.
-  searches moves into page body as it needs to be sent for each
-  request. New area for variables that needs to set for every
-  request in html.header().
*. Don't use urllib2 .header parse as it blows up with meetapet,
-  just return resp.info() since nothing uses it at the moment
-  anyway, then things that want to can parse the headers.
*. Use console logging instead of alerts and return 404 from embed
-  controllers for missing records.
*. Make locale a parameter to i18n.js and use key-caching.
*. Added VaccinationGivenRecentTYPE (and Required/Comments) wordkeys.
*. Hide person field on movement dialog for movements that don't
-  require a person.
*. Moved movement tabs/books/screens to use full client side rendering
-  with new AJAX framework.
*. Fixed name clash with jquery ui menu widget.
*. Removing a person should remove all their movements. After
-  removing the movements, we should update the denormalised location
-  info of any animals affected by those movements.
*. Microchip, tattoo and tag numbers shouldn't allow spaces
-  and punctuation.
*. Clicking created by in messages prompts for a reply.
*. Fixed bug with main screen message dialog buttons not re-enabling
-  after successful creation of a message.
*. Extra cron methods for maint_db_dump_animalcsv and 
-  maint_db_dump_personcsv to create csv files.
*. Layout fix for textarea zoom bug in IE6/7/8
*. Use js/css versioning to invalidate browser cache between builds.
*. Shouldn't use Date.UTC in date_js
*. Bug in VaccinationCommentsTYPE was trying to format as date.
*. Quicklinks now break over lines gracefully if the horizontal
-  resolution isn't wide enough.
*. Fixed Facebook posting to use direct uploading instead of
-  links back (now that graph API supports it correctly).
-  Also, fixed post_multipart to have a consistent return type
-  and behaviour to post_form with urllib2
*. Moved avid registration to client side, fixed problems with
-  move screens since refactoring of common libs.
*. Upgraded to use tablesorter github fork for better cross
-  browser compatibility. Added !important to default theme
-  background properties to override jquery ui-state-default
-  to maintain theming of table headers.
*. Force CSV output to use the original column ordering
-  from the mail merge query.
*. Omit trial adoption movement type from selectable list.
*. If a search only produces one result, go there instead
-  of showing the results list.
*. Moved main animal details screen to client side, separated
-  out menu widget.
*. Use brief animal records for shelterview, animal links on home 
-  screen and when using site search.
*. Moved rendering of shelterview to client side.
*. Moved rendering of search to client side.
*. Preliminary tableform module that does client side rendering
-  validation and binding.
*. Moved tips into main.js so they can be cached and not bloat
-  i18n.js
*. POT scanner searches javascript now and can pick up strings
-  in there. Fixed some strings where URLs were included (removed).
*. Locked database message should point to the my account
-  page for sheltermanager.com users.
*. Moved rendering of login screen to client side.
*. Incorporate jslint into build chain as well as using
-  vim plugin.
*. Fixed bug with sprite on diary task/document menu buttons.
*. Switched codebase to use new personchooser/animalchooser
-  widgets and ditched old templator based widgets.
*. Client side personchooser widget.
*. Client side animalchooser widget.
*. Split common module into multiple objects and updated all
-  js to use it. Ditched the old i18n object and moved everything
-  over to gettext style.
*. Used namespace for config to prevent local variables
-  masking globals.
*. New cacheable config.js to save passing it with every
-  page header. Updated rest of js to use it instead of the
-  hidden fields previously output.
*. Use Google CDN for sheltermanager.com jquery.
*. Removed hand written json() routine and added handler
-  for Python's json module instead - faster and can cope
-  with edge cases better.
*. Switched main module to use js templating, added support
-  classes for date formatting, etc.
*. Fixed audit trail to use ddt - stopped recording time in
-  last release.
*. Added javascript gettext type module that bundles locale
-  locally and caches. Can be used to implement client side
-  templating to improve performance.
*. Sorted out messy topline/menu stuff, moved to new header
-  js module that does client side templating for performance.
-  significantly reduces session db size and bandwidth needed.
*. Allow batch changing of vaccination required date.
*. Remove old ASM2 guff about temporary tables from manual.
*. Ignore blank queries in SQL interface, remove trailing ;
*. Custom splash was smcom only
*. SQL interface wasn't escaping unicode characters and breaking
-  if query terminators appeared in string literals.
*. If force reupload is on and we're dealing with sheltermanager.com,
-  clear down any images first to prevent old images hanging around.
*. Prevent trial adoption with null end date blowing up the trial
-  adoption book (test for null in template before checking now).
-  (backported into 3.2.0 downloadable binaries after release)

3.2.0
================

*. refactored mobile login into module single header, used
-  thumbnail_src like the rest of the app to stop giant nopic.
*. update mobile interface to use new icon framework, dynamically
-  load picup only if needed and tidy up the upload photo box
-  for android 4+ users.
*. move_foster should allow fostering of existing fosters (even
-  if fosters are shelter inventory is not set)
*. Reload quicklinks, reports, etc. after database update during
-  login to make sure the user sees any changes the updates
-  could have made.
*. icon loader for templates to save endless span tags.
*. Only load picup for iPhone/iPad.
*. Removed chosen - no longer used.
*. Created asm sprite instead of separate icons to reduce
-  number of browser connections needed. Offers large performance
-  gains on non-pipelined browsers.
*. Trial adoptions shouldn't show as available for adoption.
*. Added DocumentQRLink animal wordkey.
*. Include additional fields with service adoptable animal data.
*. Set default cache of one day on animal images, add cache
-  control headers to service calls so that a serverside cache
-  can be put in front of the service API if necessary.
*. Use field reading utility classes in mobile interface to
-  better handle bad input and errors.
*. Add message support in mobile interface.
*. Show messages in mobile interface.
*. Removed multiaccordion and replaced with jquery ui accordions.
*. Add created by column to diary editing screens.
*. Main screen fix for diary notes to allow more space for the
-  subject on widescreen monitors and to show the created by
-  and date fields on mouseover.
*. Usability fixes to message board, make buttons match rest of
-  the system. Attach more/less to text instead of wasting space.
*. News starts contracted for smcom users.
*. multiaccordion widget fixes for jquery 1.8.3
*. Fix server side error when logging out of expired sessions.
*. Match opacity of the rest of the columns in movements, vacc,
-  and medicals so images are consistent.
*. Removed all occurrences of live as it performs poorly and has
-  been deprecated by jquery.
*. Updated to jquery 1.8.3 and jquery-ui 1.9.2
*. Updated to jquery mobile 1.3.0 and set CSS transitions.
*. make smoothness default theme.
*. 3001 update should test if SystemTheme and Timezone are present
-  before removing them (affects new smcom accounts, rather than
-  open source, which is fine for upgrades).
*. Cope better with invalid animal IDs passed to animal_image service.
*. Fixed problem with backslashes passing through to js via json.
*. When creating new animals, check the name against inductions
-  through the last 3 weeks to look for matches (help prevent
-  duplicates).
*. Improve performance by caching header/menu. Invalidate appropriately
-  for changed reports, publishing options and searches.
*. Removed pets911.com publisher - site dead.
*. Added slovenian translation.
*. Option to treat trial adoptions as on shelter.
*. Only count adoption returns in annual figures.
*. Highlight overdue donation records on the donation tabs and don't
-  count them in the total of received donations at the bottom.
*. Better donation and vaccination icons.
*. New alert - reservations over a week without adoption.
*. Make audit trails log in local time rather than server time.
*. Show trial end date in trial adoption book and exclude returned
-  adoptions when looking up trial movements.
*. Make vaccination and medical books show current animal location.
*. Stop the [ Add a photo ] link wrapping on smaller resolutions.
*. Show thumbnails in movement and medical books, with associated 
-  option to turn them off if desired.
*. Brought some sanity to image scaling, use longest side measurements
-  and keep old ASM2 constants for compatibility, but can't be selected
-  in ASM3 now.
*. Ability to configure thumbnail size for HTML publisher.
*. Add trial adoption book to available quicklinks.
*. Fix diary emails to examine roles.
*. Apply timezone to dbo and use it throughout when getting now()
*. Trial adoptions ending alert.
*. Trial adoptions book menu entry.
*. Flag trial adoptions everywhere reserves are with another icon.
*. New denormalised field for HasTrialAdoption.
*. Don't include dead animals in vaccination/medical alerts/books.
*. Added alert for overdue donations.
*. Added alert for owners with active reservations that have not
-  been homechecked (if homecheck warnings and alerts are on)
*. New alerts section on main screen to show how many animals
-  are in need of vaccinations, medical treatments and how
-  many urgent waiting list entries there are.
*. Report clone button.
*. When theme is changed on options screen, update it on
-  screen live so the user doesn't have to save to see it.
*. Allow upto 8 age groups for ASM3 users.
*. Check sockets for pets911, adoptapet, rescuegroups and
-  petfinder such that if any errors occur, the socket is
-  reopened and the publisher resumes.
*. Disable image scaling for all but the HTML publisher as it's
-  both irrelevant and a waste of processing time as the
-  third party services can handle that.
*. Trial adoption functionality, adds new checkbox and trial
-  end date to move->adopt and movement screens. Added
-  Active Trial Adoptions and Expired Trial Adoptions to repo.
*. Validate codes have the correct number of Ns or Us to
-  be valid.
*. Fixed bug where saving donations overrides the account
-  type on matching transactions.
*. Fixed bug with gift aid flag being overwritten.
*. Fixed a couple of validation errors in the menu.
*. CURRENT_DATE and USER wouldn't work in reports without
-  ASK, VAR or PARENTKEY tags.
*. Additional fields were reparenting and leaving events
-  and widgets behind.
*. Cope with spaces in additional fieldnames in the UI,
-  but prevent users entering spaces in the fieldname box 
-  when defining them to save later headaches.
*. Option to take a second donation on the move->adopt and
-  move->reserve screens.
*. Have VaccinationRequiredTYPE, VaccinationGivenTYPE and
-  VaccinationCommentsTYPE wordkeys to access data from the
-  most recent vaccination of TYPE
*. When doing HTML publishing and splitting by species/age,
-  produce an "all.[extension]" page which contains every
-  animal.
*. Highlight alternate rows on monthly figures report and
-  show totals (needs reinstalling, dep on v3123)
*. Added total column to monthly animal figures.
*. delete_animal wasn't removing vaccinations.
*. delete_animal and delete_person weren't removing all
-  additional fields.
*. animal_find_simple and person_find_simple weren't searching
-  additional fields not assigned to additional tab.
*. Bug in get_number_animals_on_shelter was not counting 
-  movements today when it should. Affects monthly figures.
*. Make monthly figures easier to read by using start of day
-  and end of day total lines.
*. auto_logout should run as part of the batch to clear down
-  users who closed their browser without logging out.
*. Italian currency/date missing.
*. Format additional currency fields correctly when used
-  in find animal search results.
*. Link shelterview headers to advanced find animal search.
*. Show reserved/deceased icons on find animal results.
*. Show shelterview in alphabetical order, include totals
-  for each location in header.
*. Highlight reservations in foster book.
*. 100% Norweigan Bokmal translation (Trine Storbraten)
*. Added reserved icon to shelterview/links/search and 
-  used displaylocationname in shelterview instead of 
-  shelterlocationname to cope with foster animals when 
-  foster animals are shelterinventory.
*. Added new shelterview screen to view animals by location.
*. Added new quick animal links to home screen, allows fast selection
-  from recently changed, recently entered and longest on shelter.
*. Fixed bug in person looking for report, stopped cron
-  bailing before waiting list tasks.
*. Fixed NPE bug with no bad report parameters.
*. Added en_VN locale for English speakers in Vietnam.
*. Added xgettext replacement as xgettext cannot include
-  text strings as part of function calls inside other quoted 
-  strings (so 170 HTML attribute strings weren't included before).
*. Use dedicated en_AU translation instead of GB for 
-  Australia and New Zealand.
*. cron should make sure the database is upto date before
-  running daily tasks.
*. Supply default report header/footer if it gets blanked.
*. Suggest county when it's blank and the town has just been
-  set (as ASM2 used to).
*. Added spellcheck with English dictionaries (requires
-  GNU aspell to be on the system path) to documents.
*. New Document button on media tabs.
*. Don't allow HTML templates with blank names.
*. (sheltermanager.com webspace) should link to it.
*. Stop components of login screen being visible before
-  javascript has loaded.
*. Fixed bug where HOMECHECKEDBY being null causes person
-  records to fail to open.
*. Fix for logs not being saved when splitting HTML publish
-  by species.
*. Fix for blank age groups in match report.
*. Fix for unicode characters in autocomplete address fields.
*. Fix for additional fields failing validation.
*. Show Ends After on medical tab/book.
*. Added fancy_cage_card, fixed dates in cat/dog cage card.
*. update_animal_status should take note of movement dates so as
-  not to move animals off the shelter too early for future dates.
*. Fix nightly process to include fostered animals.
*. Option to send messages to users after creation.
*. Option to send diary notes via email each day.
*. User accounts can now hold an email address for that user.
*. Allow HTML/FTP publisher options to set where output goes.
*. Fix for broken MySQL databases created by earlier versions
-  of ASM3. Eases importing from these to sheltermanager.com
*. Next week/month/year Filter boxes on vaccination and medical books.
*. Catch invalid mobile post type and handle gracefully.
*. Textareas not decoding HTML entities on options screen.
*. PetLink require tab separators in their "csv" files.
-  Better validation around phone number@petlink.net format.
*. Read EXIF tags and rotate images according to orientation
-  (not compatible with HTML5 client side scaling).
*. ASK FSANIMAL for shelter and foster animals in reports.
*. Switch image references in generated document templates to 
-  service calls when generating PDFs so animal images still appear.
*. Embedded person search wasn't using translated strings for header.
*. PetLink only accept 98102 prefixed chips.
*. PetLink can use phone@petlink.tmp for blank email addresses.
*. extra_image service call to get extra images.
*. Squash non-printable characters that could blow up client
-  side JSON parsing.
*. donation_receive screen should check default amounts too.
*. Fix to cope with null age field.
*. Prevent UseShortShelterCodes duplicate in configuration table
-  from wiping out get_animal_query()
*. Annual figures was wiping out previous values for non-cat/dogs.
*. Include fosters in the vaccination/medical books.
*. Logging out of the system when in an smcom account should prompt
-  for the same account on the login screen.
*. Creating an animal from a waitinglist and found animal record
-  wasn't transferring the description/notes fields over.
*. Allow animals to be reserved when fostered via both Move->Reserve
-  and by the movement screen.
*. Added AdoptionCreatedByName wordkey.
*. Removed plaintext password from page header (leftover dev code).
*. Fixed giftaid flag to set correctly on move->reserve screen.
*. Fixed blank donation dates when created by move->reserve.
*. Added dump database button to SQL interface.
*. Fixed SQL injection hole in checking shelter codes during save.
*. CSS set logo max height to 32px in case of user error.

3.1.1
================

*. Added maint_db_diagnostic and maint_db_dump to command line
-  cron tasks to find orphaned records and dump all the DB
-  data in a database agnostic way.
*. Fixed broken group block in retailer_inventory report.
*. Made diarytaskdetail/diarytaskhead/media match exactly
-  ASM2 spec to ease data conversions.
*. Better visual feedback when saving is occurring of top
-  level records.
*. Make adopting and creating a donation for someone with the
-  giftaid flag set default to eligible for gift aid.
*. Centralised additional field handling, fixed new bug introduced
-  to saving additional fields for person records.
*. Cosmetic fixes to menu and main screen display/effects.
*. Allow additional fields to be assigned to other tabs on the
-  animal and person screens.
*. FB fix for if access_token is the last param returned.
*. Added IE10 to the list of supported browsers, updated the
-  manual with info on using the TT token in animal codes.
*. Error handling fix in facebook sharing.
*. Fix to disallow double clicking in embedded owner creation.
*. SQL escape filenames in document_repository.
*. Sanitise database name inputs during login.
*. Use one query if possible for ASM2/primarykey compatibility.
*. Use regex to strip HTML tags for truncate, instead of string
-  manipulation that can cause MemoryError.
*. Ability to set logo.jpg and splash.jpg in extra images to
-  override the splash screen and logo at the top left.
*. Fault in add_months if current day is not valid for month
*. If blank movementdate was supplied, wasn't correctly setting
-  to today or failing validation.
*. Hide town/county config option wasn't connected to anything.
*. Option to send PDF files to the browser inline or attach.
*. Fixed bug with ExcludeFromPublish not being set.
*. Enable RescueGroups publisher for Canadian locale.
*. Allow person flags to be set on new person screen.
*. Fixed bug checking for duplicate codes with apostrophes.
*. New microchip publisher for PetLink.net
*. Fix to smart tag publisher (not sending CSV data)
*. Unicode bug in medical treatment names/dosages for audit.
*. Debian package overwrites defaults file incorrectly if it
-  wasn't set properly in debconf at every upgrade.
*. dpkg breaks on uninstall if the service is not running or
-  cannot be removed from init.d
*. Broken FTP root directory could cause HTML publisher to fail
-  before log was written with no indication.
*. Bug with removing old HTML within publisher would cause failure.
*. maint_animal_figures kept doing this year.
*. Changing movements should force an update to TimeOnShelter.
*. Setting animal as non-shelter should hide all location fields.
*. Setting animal as non-shelter would prevent it being changed again.

3.1.0
================

*. Fixed problems generating default database with cost field
-  moving from species to donationtype.
*. Fixed bug with multiline msgid/msgstr when generating
-  python versions of translation files.
*. Additional hidden maint_animal_figures cron call to go back
-  and generate denormalised stats for all time.
*. Make win32 batch file pause for keypress in case of error.
*. New publisher for helpinglostanimals.com.
*. Annual Figures reports added to repository.
*. New animalfiguresannual table to hold annual stats.
*. Never try and merge owner 0.
*. Floating point numbers could break lost/found search.
*. Possible to break advanced find animal by crafting the request
-  to set no parameters and no WHERE clause.
*. New publisher for meetapet.com
*. Added 1 week and 3 years to give and reschedule.
*. Fixed bug with unicode chars in username/passwords.
*. Don't force a code change for datebroughtin/type if manual
-  codes are enabled.
*. Added document repository section of DBFS and screen for
-  upload and view.
*. Added sample set of over 4,000 names for generating random names.
*. Add TimeOnList to waiting list entries and as available
-  field for main waiting list screen.
*. Null excludeFromPublish could hide tick/cross control.
*. Add log entry, button didn't re-enable after create.
*. Disabled RG "courtesy" field.
*. Added popular label presets and auto shrinking of font for
-  more than 8 labels per page vertically.
*. Added support for label printing and one preset.
*. Added $$DATETIME$$ and $$TIME$$ keys for report header/footers.
*. Link to manual on first time load page.
*. Fixed bug where default movement numbers weren't being checked
-  for uniqueness when generating.
*. Bug creating donation types in new databases.
*. Show old ASM2 type 6 diary records with correct linkinfo.
*. Media records created by ASM2 will have ExcludeFromPublish set
-  to null, which means they will get excluded by default.

3.0.9
================

*. Fix maxlength problem in lookingfor.comments
*. Publish option to have a note in the animal's log when it is
-  published to Facebook.
*. Allow exclusion of images from publishing with little
-  tick/cross icon on media screen.
*. Switch to SSL for embedded google maps (prevent IE errors).
*. Added ASM2 style person merge functionality.
*. Optional search button inside search box.
*. Service methods for adoptable_animals weren't using publisher
-  presets/defaults.
*. + should be forbidden in document template names.
*. Fixed unicode logging errors in medical module.
*. RTL support for Hebrew and Arabic
*. Changing types and dates brought in should only generate a
-  new code if the format relies on them.
*. Filter breeds by selected species (Dwight Tinker)
*. Allow setting of person flags from embedded person widget.
*. Log IP address for auth and service calls.
*. Make locking code-changing fields a bit more intelligent, so
-  that if a field isn't part of the code it isn't locked.
*. Mis-typing of bulk complete notes as cbn instead of bcn.
*. Fix for blank/nonsent additional fields not being created
-  when saving animals.
*. Fix for IE problem with HTML tags in textareas.
*. Fix for incorrect YearCodeID/UniqueCodeID when regenerating
-  through javascript calls.
*. Added BroughtInBy wordkeys
*. Cell should appear before work in telephone numbers.
*. On shelter animal selection for reports had backwards
-  logic for showing codes or short codes.
*. Fixed bug with membership and homechecked flag being set
-  behind the scenes, but not reflected on screen.
*. We should untick not available for adoption when the
-  animal is adopted.
*. All numeric fields were allowing shift with number keys to
-  allow punctuation incorrectly (Dwight Tinker).
*. Additional date fields were not being validated before save.
*. Decoding HTML entities in advanced searches not escaping
-  apostrophes like it should.
*. Show previous location for animals leaving the shelter.
*. Hide animal flags once the animal has left the shelter.
*. Fix for df_m/df_km to use cint to avoid errors.
*. Allow picup to work with non-sheltermanager via baseurl, 
-  fixed bug with account being set to wrong value in mobile.
*. Added In/Out by type reports.
*. Fixed unicode bug in template names when generating docs.
*. Fixed double click bug creating custom reports.
*. Updating reports should recheck and load mail merges too.
*. If an invalid group field is specified, it should be caught
-  and turned into report output.
*. Have a recommended set of sm.com installable reports
-  for people doing it for the first time.
*. Using check buttons on sm.com reports list should highlight
-  the newly selected items.
*. Warn about changing lks tables since people keep doing it
-  and screwing up their databases.
*. Added Bulgarian and Bosnian translations from Launchpad.
*. Fix for picup trailing data in callback URL.
*. Fixed problem with encoding of unicode tokens during embedded
-  animal/person search.
*. When searching for animals or people, decode any HTML entities
-  and use unicode for query string. This allows foreign language
-  databases from ASM2 to still be searchable with 3.
*. Fixed bug with cron task that caused no locales to be
-  loaded (breaks variable animal data for non-English locales)
*. Align embedded owner fields correctly on entry section and
-  health and identification.
*. Editing reports forced document back to the top of the window,
-  making the dialog off the bottom of the screen.
*. $CURRENT_DATE$ token in reports would cause HTML generation
-  to fail.

3.0.8
================

*. Ditched species specific adoption fees in favour of default
-  donation amounts instead.
*. Added preliminary Norweigan language support
*. Fixed bug with AVID registration requiring one letter gender
*. Superusers can remove anyone's messages from the main screen
*. Allow quicklinks to be displayed on all screens
*. Fixed bug displaying person thumbnails
*. Support 2 digit years in date boxes
*. Add installing reports to the welcome popup
*. Make browseable reports list order alphabetically
*. Fixed bug with Android prompt being shown to non-android
-  devices after return from viewing an animal
*. Filtered Android uploader to prompt for Android 2.x and less
-  as is not required for 3+
*. Allowed for Picup use in mobile interface
*. Allowed HTML image upload against animal record in mobile interface
*. Fixed Picup callback URL error for iPhone/iPad
*. Fixed unicode error with debug logging embedded find queries
*. Added DonationGiftAid wordkey to donation documents
*. Added AVID button to health and identification
*. Animal names and codes in mobile interface should link to
-  their record
*. Fixed problem with non-unique movement numbers when adopting
-  from a reservation
*. Allow editing of code-related fields in cloned animals even if
-  the lockcodes option is set
*. Create animal from waitinglist/found animal doesn't work with
-  manual codes turned on
*. CurrentVet and OwnersVet wordkeys
*. Fixed escaping for config text values in options/publishing
*. Fixed broken escaping for foreign languages in options screen
*. Fixed decoding of HTML entities in embedded person/animal
*. Decode HTML entities in javascript i18n functions
*. When diary tasks generate notes, it should be in creation order
*. 0 on diary tasks should be 0 days, use 9999 for ask
*. Diary display on homepage should use 23:59:59
*. Fixed escaping on client side config
*. Fixed Mozilla bug that prevented : in time fields
*. Diary notes can be created and rediarised from the smartphone
-  interface now.
*. System option to make donations due instead of received when
-  created through the Move menu
*. Fixed double escaping in TPPublisherSig
*. Fixed escaping JSON problem
*. Detach movements from donations when we delete the movement
*. Added <<Username>> token for documents
*. Movements can be assigned to donations now
*. Saving any movement now updates the denormalised donation total
*. Add additional date validation to quick move screens
*. Fix double click bug submitting new owners
*. Fixed bug storing HTML/Javascript in publisher sig field
*. When generating codes, ignoring leading whitespace and punctuation
-  in animal type name
*. Added ReservedOwner* wordkeys for active reserve
*. Fixed bug with age range searching
*. Fixed bug with media edit controls not re-enabling after save
*. Fixed unicode bug when saving configuration
*. Config switch to set default find animal search to onshelter or all
*. Fix tinymce named font sizes for pisa PDF
*. 3051 updater should remove TimingRuleNoFrequency column
*. Code formats MUST have an N or U or they're invalid.
*. Make adoptapet.com publisher support multiple animals
*. escape backslashes going to the database
*. df_ki should use cint to avoid errors on junk data
*. Disable double clicking of create in similar person dialogs

3.0.7
================

*. Major problem with database setup tool for any non-English locale
-  due to use of ; as a split char
*. Fix to post as Facebook page admin if available
*. Moved AVID/Pettrac config to the publishing options screen instead
-  of main system options
*. (sm.com only) Publish animals direct to Facebook pages
*. Escape names for similar person checks
*. Truncate shortens before stripping to save memory
*. Removed annoying SQL logging statements from session db
*. Added duplicate person checking functionality to new person
-  and embedded person components
*. Fixed bug with search columns not displaying in options
*. Database updates should be applied as part of the login
-  process as well as through the main screen.

3.0.6
================

*. Default to db session store instead
*. Limit python process to 1 cpu in Debian package
*. Updated README with info on Apache WSGI
*. Windows installer now uses task scheduler for daily tasks

3.0.5
================

*. Add an in-memory session store for performance
*. Link 500 error page to main
*. Fix incorrect fieldname medicalprofile.TimingRuleFrequency
-  (only affects new asm3 installs)
*. Include PIL and web.py in win32 installer for complete offline installation
*. Show correct currency dp when setting values from js
*. Tied adoption fees into move_adopt screen
*. Accidentally broke lookup deletion with foreign key changes
*. Adoption fees in species table and default costs for vaccination types
*. Strip filepaths sent by boneheaded IE when POSTing files
*. Show non-shelter animals in search results
*. Use classes for non-shelter and not for adoption
*. Don't display shelter info for non-shelter animals in banner
*. Updated translations
*. Server side date validation for updating vaccination and add/edit log

3.0.4
================

*. Some browsers send path information with files, broke extra
-  report images module

3.0.3
================

*. Added daily tasks batch to win32 build
*. Allow for SQLite type reports in the repository
*. Added maint_variable_data target to regenerate all variable data
*. Simplified age group calculation
*. Allow searching of age groups through find animal
*. Special needs shown incorrectly on find animal results
*. Debian package wasn't including db location before
-  firing up for daily cron jobs

3.0.2
================

*. Install database to home folder on win32
*. Added Win32 installer
*. Fixed circular redirect with i18n on login
*. Fixed IE6 syntax bug with picup.js
*. Better error handling for sending email
*. Make syslog dump to stdout on Windows
*. Added SQLite support 
*. Fixed bug with account dates in initial data
*. Show an empty table for an empty waiting list instead of blank
*. Added FIVResult, FLVResult, FIVTestResult, FLVTestResult,
-  FIVLTested, FIVLTestDate wordkeys
*. Mispelled "neutered" as "neuetered" in wordkeys
*. Don't allow decimals in medical integer inputs
*. Pay attention to default return category when creating movements
*. Prevent double clicking option save button, otherwise multiple rows
-  are created which breaks animal_query
*. Fixed additional field case comparison for animals in wordprocessor
*. Added person additional fields for wordprocessor

3.0.1
================

*. Custom person flags
*. Multiple waiting list highlights

3.0.0
================

*. Flexible reschedule values for vaccinations
*. Email supports SMTP AUTH and TLS
*. Centralised publishing options screen
*. New graphing/chart engine
*. Role based authentication
*. Simplified workflow with Move menu
*. Media thumbnail view
*. Message board
*. Fully integrated HTML based word processor
*. Key dates display on animal screen with adoptable indicator
*. New multi-search bar at the top right searches all entities
*. Audit trails now show what was changed in a record, deleted records
-  are completely logged

