Added unit test to affirm that doing 2 PUTs to a Spot doesn't wind up creating 2 SpotExtendedInfo objects for that Spot.
Added unit test to affirm that even if a Spot has duplicate extended_info objects, only 1 is returned in the JSON
Use the width/height of the original image if no constraint is passed.
Merge branch 'master' into dupe_extended
First try replacing a SpotExtendedInfo object and if not, create a new one.
Extended this test to make sure we're updating extended_info on PUT, not dropping the new value.
This was already turned into a spot_get test.
Only return unique search results.
This is actually a search test, not a GET test.
delete admin action now call model.delete()

fixes SDEV-116

the admin action for deleting (doing bulk deletes) also
deletes image from file system
Merge branch 'sdev116'
Added beginning of a test for only returning buildings that belong to a particular campus.
Merge branch 'master' of git://github.com/abztrakt/spotseeker_server
If a query param is sent to the buildings view, only return buildings that have spots that match the query.
Built out the building/campus search unit tests a bit more.
Ignored oauth query params when filtering buildings based on a key search.
makes the new spot information correctly match any new spot info uploaded

fixes SPOT-597

specifically, if there is existing info about a spot and new information
is passed in about that spot that doesnt have anything about that specific
field, that piece of info is deleted in the existing info
Merge branch 'craig'
Merge branch 'spot597'
Made it possible to modify available hours in admin, and added unit tests to test modifying hours