Update itree_import.py

"OpenTreeMap" prefix unnecessary
Start of importer app/module

Adds initial support for parsing a file and storing each row as
database entry.

This commit also demonstrates how validation could work. The base
validations check file-level restrictions such as:
  - The file must not be empty
  - The file must have a 'point x' and a 'point y' column
  - Fields present in the file but not recognized as a valid field
    are considered errors

The next stage is to do row-by-row validations.

Currently there is no front end interface (everything being checked
by running the tests)
Start of row-level validations and tests

This commit contains the basic info required to validate errors on
a given row and currently handles all of the main error cases in
the scoping document.

It does not yet handle Species DBH/Height and Trees Nearby restrictions
(stuff that is non-fatal and goes on the tree watch list)

In addition, none of the choices fields are handled (yet)
Add support for 'warning' level validations

- Species height max
- Species dbh max
- Nearby trees
Refactor data type validation
Refactor validation to be more uniform

Specifically, species validation was a bit of an outlier. It has now
been brought back into the fold.
Minor renaming of main validation method
Add some integration level tests and start views

Add in two new views (no celery yet though):
- process_csv(request)
  Returns {'id': < import event id > }

  Right now processing is done synchronously, but in
  the future the id token will be used to reference the
  running job

- process_status(request, import_id)
  Return json with the current status of the import

  If there were no errors at all:
  {'status': 'success'}

  If there were file-level errors:
  {'status': 'file_error',
   'errors': [{'msg': ...
              'fatal': ...
              'data': ...,
              'code': 2},
              ...]}

  If there were row-level errors:
  {'status': row_error',
   'errors': {<rowid>:
                 [{'msg': ...
                   'fatal': ...
                   'data': ...,
                   'code': 2},
                   ...],
              <rowid>: ...}}
Tree/plot import backend complete with tests
Move validation logic to row-models and refactor out constants
Fix querying-after-slice crash

On the recent edits page, attempting to filter was causing
a crashpage with the error:

AssertionError at /verify/

Cannot filter a query once a slice has been taken.

Change the order statements to slice after all filtering.
modify uimport script to use scientific name

This script constructs a "name" from genus, species,
and cultivar in the check_species() function, but it
didn't actually use that constructed name to search for
species information from uimport csv's with the scientific
name split up into separate fields.
Merge pull request #101 from andrewbt/v1.3

Modify uimport script to use scientific name
Merge pull request #97 from kbornhorst/patch-8

Update itree_import.py
Add inital UI for tree importer
Merge pull request #100 from steventlamb/bug/fix_slicing_crash

Fix querying-after-slice crash
Merge pull request #99 from ahinz/wip/importer

Start of importer app/module
Merge pull request #102 from ahinz/wip/importer-ui

Add some UI to tree upload