Changelog
=========

Contributors listed as [github.com username] where they are on github

2.17 - Fix for django 4 - 2 Jan 2023
------------------------------------

#. Fix incompatible methods for django 4
#. Add a test for single row CSV and fix issue of trailing line returns
#. Minor issue PRs [edouard-gv]

2.16 - Fix and add tests - 28 June 2020
---------------------------------------

#. Move test fixture migrations to separate migration folder picked up by custom testrunner
#. Add regression tests for all reported issues
#. Add admin UI tests
#. Enable and fix all existing tests
#. Use regex match group for failover CSV splitter

2.15 - Fix compatiblity issue for Django 3 - 27 April 2020
----------------------------------------------------------

2.13 - Fix issue with inspectcsv for different header and data line number of cols - 26th Sept 2019
---------------------------------------------------------------------------------------------------

2.12 - Fix for latest django required on_delete and duplicated log msgs - 24 April 2019
---------------------------------------------------------------------------------------

2.11 - Fix command line summary messages - 14 July 2017
-------------------------------------------------------

2.10 - Bug with models var not set if not bulk import - 6 July 2017
--------------------------------------------------------------------

2.9 - Fix for using foreign keys from other apps - 4 July 2017
--------------------------------------------------------------

#. Handle boolean types actually being ints for sqlite
#. Allow dots in --mappings so app labels of foreign keys can be set by the user, since model lookup may assume wrong label.

2.8 - Minor fixes - 19 June 2017
--------------------------------

#. Force datetimes to local timezone to prevent warning on insert
#. Rebuild initial migrations file
#. Add option to do bulk create with --bulk to speed up import

2.7 - Merge in pull requests for minor fixes and test with Django 1.11 - 30 May 2017
------------------------------------------------------------------------------------

#. Fix uninitiated variable bug if type not detected
#. Fix command line arg usage for Django 1.10 or 1.11 and make it backwards compatible down to 1.7
#. For multiple django version compatibility code try excepts make sure new syntax is first to avoid deprecation warnings
#. Add test shell script to make it easy to run test suite and a command line test
#. Report back matched and unmatched cols in CSV rather than just showing list of all of them
#. Allow clean=false option to not fix numeric values to match allowed range
#. Use atomic to wrap row inserts so we can still report count of inserts Ok after a transactional exception

2.5 - Merge in various pull requests and test with Django 1.7 to 1.10 - 15 Nov 2016
-----------------------------------------------------------------------------------

#. Fix for all recent versions of Django and Python
#. Add in delimiter option eg. for tab separated values
#. Add migrations
#. Make importcsv parsing more tolerant of unparsable rows in CSV

2.4 - Fix app config path so that management commands are found - 11 Nov 2014
-----------------------------------------------------------------------------

#. Fix log print for commands

2.3 - Make compatible with Python 3 - 29 October 2014
-----------------------------------------------------

2.2 - Move to core appconfig usage - 28 October 2014
----------------------------------------------------

#. Add appconfig path to cater for module install test running
#. Check for SMALLINT_DBS including sqlite - since can fail big int imports

2.1 - Fix for django 1.7 - 27 October 2014
------------------------------------------

2.0 - Added model creation and datetime clean up - 29th Sept 2014
-----------------------------------------------------------------

#. Generate django model files based on CSV data type sniffing with messytables
#. Use flag to generate model code eg. --model=create_new_model.modelname and add test
#. Use the settings date formats and add clean up for them
#. Factor out type clean up method for data values
#. Allow defaults to be passed as a command line argument
#. Use --mappings=none for CSV created models with no column name row
#. Handle badly encoded files as raw
#. Set date limit in case of strftime bug for pre-1900 dates

[edcrewe]

1.1 - Added mappings and defaults tests - 18 March 2014
-------------------------------------------------------

#. Allow mapping format to be simple header row style
#. Refactored heading parsing and added tests for optional args

[edcrewe]

1.0 - Added signals and code cleanup - 29th January 2013
--------------------------------------------------------

#. Fixed number overflow test and tested with django 1.5.1 [edcrewe]
#. Added signals to the app, to allow the model to custom format a row.
#. added appconf to allow the app to be more customizable - eg. select models for import.
#. Removed except all and return database errors.

[cwood]

0.9 - Missed import of re for change to display of error log - 9th Dec 2012
---------------------------------------------------------------------------

#. Import re in csvimport/models.py [blorenz]

0.8 - Tidy up logging and Boolean handling - 9th Dec 2012
---------------------------------------------------------

#. Fix display of error log so there are newlines for each entry [smeyfroi]
#. Log processed rows to the csvimport.management.commands.csvimport logger [smeyfroi]
#. Fix for boolean data [smeyfroi]
#. Add setting for using standard logging machinery for Admin UI log lines [edcrewe]
#. Add test to check creation and content of csvimport log file [edcrewe]

0.7 - Fixes and merge in changes for running up the test app - 24th Nov 2012
----------------------------------------------------------------------------

#. Merge in changes for 1.4 templates in settings [elena]
#. Merge in doc changes [elena, valhallasw]
#. Fix bug with columns that are floats [imposeren]
#. Fix imports via the admin not having charset encoding argument [edcrewe]

0.6 - Handle text not number or special float to integer - 7th March 2012
-------------------------------------------------------------------------

#. Handle numeric columns with text in - zero if not nan or inf

[edcrewe]

0.5 - Add command line encoding option and error return - 6th March 2012
------------------------------------------------------------------------

#. Make sure command line usage returns errors and warnings
#. Add the option to force --charset=utf-8 for example rather than chardet
#. Add numeric type handling for empty fields or other issues plus tests

[Tessa Alexander, edcrewe]

0.4 - Add settings to allow demo site install from tests - 4th October 2011
---------------------------------------------------------------------------

#. Add demo countries.csv file
#. Add MEDIA_ROOT for file uploads

[edcrewe]

0.3 - Fix issue with adding in admin - 25th Sept 2011
-----------------------------------------------------

#. Fix empty mapping submitted
#. Remove non-generic filename country processing code
#. Use get_models to populate drop down for admin import form
#. Add upload message about whether mapping is from CSV header row
#. Ensure header row only used if mapping is not supplied.

[edcrewe]

0.2 - Initial beta release version - 29th July 2011
---------------------------------------------------

#. Build it as a django-csvimport egg
#. Create csvimport management command
#. Improve character set detection and unicode handling
#. Add admin csvimport model to upload CSV files with logging of import
#. Use file upload save to trigger csvimport command
#. Autodetect column mappings by matching model fields and CSV header text
#. Add a deduplicate feature
#. Start to add test suite with data / app for HELIOS cross agency supply chain
   data sharing http://www.helios-foundation.org/cbha-project/index_html

[edcrewe]

0.1 - Unreleased
----------------

#. Use django snippet as starting point
   http://djangosnippets.org/snippets/633/

[Jonathan Holst]
