opencleveland / large-lots Goto Github PK
View Code? Open in Web Editor NEWDISCONTINUED - Website for CLE homeowners to buy a vacant lot for a side yard expansion.
Home Page: https://www.clevelandlots.org
License: MIT License
DISCONTINUED - Website for CLE homeowners to buy a vacant lot for a side yard expansion.
Home Page: https://www.clevelandlots.org
License: MIT License
the url to Re-Imagining Cleveland: Ideas to Action is broken (
large-lots/templates/apply.html
Line 347 in ebcb55e
There's also a URL for it on
Line 108 in ebcb55e
based on land bank feedback,
large-lots/templates/apply.html
Line 267 in ebcb55e
should clarify in the README.md )(Setup a few Environmental variables) that those variables are also listed in local_settings_template.txt and need to be copied/renamed into local_settings.py
I should verify this on my local production environment and on the ec2 instance before editing.
Suggest changing responses to include "no" or append "no" to the current response.
`Environment:
Request Method: POST
Request URL: http://clevelandlots.org/apply/
Django Version: 1.6.5
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'lots_client',
'lots_admin',
'raven.contrib.django.raven_compat')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware')
Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
112. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "./lots_client/views.py" in apply
224. app.save()
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in save
545. force_update=force_update, update_fields=update_fields)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in save_base
573. updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in _save_table
654. result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/base.py" in _do_insert
687. using=using, raw=raw)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py" in _insert
232. return insert_query(self.model, objs, fields, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py" in insert_query
1514. return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py" in execute_sql
902. for sql, params in self.as_sql():
File "/usr/local/lib/python2.7/dist-packages/django/db/models/sql/compiler.py" in as_sql
860. for obj in self.query.objs
File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/files.py" in pre_save
252. file.save(file.name, file, save=False)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/fields/files.py" in save
86. self.name = self.storage.save(name, content)
File "/usr/local/lib/python2.7/dist-packages/django/core/files/storage.py" in save
49. name = self._save(name, content)
File "/usr/local/lib/python2.7/dist-packages/storages/backends/s3boto.py" in _save
385. key = self.bucket.get_key(encoded_name)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/bucket.py" in get_key
193. key, resp = self._get_key_internal(key_name, headers, query_args_l)
File "/usr/local/lib/python2.7/dist-packages/boto/s3/bucket.py" in _get_key_internal
235. response.status, response.reason, '')
Exception Type: S3ResponseError at /apply/
Exception Value: S3ResponseError: 403 Forbidden
``S3ResponseError at /apply/
S3ResponseError: 403 Forbidden
Request Method: POST
Request URL: http://clevelandlots.org/apply/
Django Version: 1.6.5
Exception Type: S3ResponseError
Exception Value:
S3ResponseError: 403 Forbidden
Exception Location: /usr/local/lib/python2.7/dist-packages/boto/s3/bucket.py in _get_key_internal, line 235
Python Executable: /usr/local/bin/uwsgi
Python Version: 2.7.6
Python Path:
['.',
'',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages']
Server time: Wed, 24 May 2017 18:56:16 -0400`
for administrators, add directions how to obtain the submissions (/lots-admin) and how to create user names and passwords.
need to add the landbank email to automatically receive the submitted applications instead of us manually forwarding them to them; or having them manually check at clevelandlots.org/lots-admin
A month ago or so I noticed that the map of available lots on the production site (www.clelots.org or www.clevelandlots.org) disappeared. I'm not sure why it would disappear - I don't see any commits around that time (except the FAQ update on 12/4), but someone could have gone in to /home/ubuntu/ and made changes manually.
It's possible that the map itself disappeared from the external site where it's hosted.
Need to arrange production hosting. Possible directions include (1) subsite of existing largelots.org, and (2) hosting funded by local government, foundation, or other NGO.
Right now, we have parcel number appended to a county url that is supposed to take them to a page with more info on the parcel.
This url example leads them to a page stating "This section of the site is currently under construction"
to reproduce:
Go to the browse page,
add a parcel,
http://52.10.73.22/apply/#/browse?parcel=004-03-079
NST is updated weekly; we should write a script that updates the data in our DB weekly based on NST.
Might be an issue when someone is trying to fill out the form (on the apply page) and needs to access a website linked on that page, as the website will open in the same tab.
add the following stipulations/questions in apply (like right below the rental registration info?)
ยท Did you pay your last tax bill in full? There can be no balance due for property taxes, water bills, grass cutting, etc.
ยท Does your home meet building codes?
Update README For the Cleveland context;
could include basic steps for forking/reproduction; and also a few sentences of what the project does.
Now that we have a MySQL DB up and running on EC2, we need to create a table for storing raw form submissions.
In the Apply page, clicking (for example the large lot on the west side of Cleveland) doesn't seem to register, while others have the intended zoom and refocus. As of yet the information does not autofill like it should.
We are currently running usqgi
as root, and the docs say don't do that: http://uwsgi-docs.readthedocs.org/en/latest/ThingsToKnow.html
"Common sense: do not run uWSGI instances as root."
We also had to create root role in PostgreSQL possibly due to this, and that's also not idea. Let's decide how we'll run it as a normal user (I'd suggest creating a user without sudo permissions and giving them a PSQL role) and make sure it stays running / restarts automatically if it goes down.
At yesterday's public launch; Tom Jordan from city planning (@tjcle I think?) acknowledged that there are other properties owned by the city land bank that aren't on the map
mostly because the properties are within certain areas of the city's development plan where there's a lot more scrutiny from city planning and also from councilmembers...
People can still be able to obtain stewardship as a sidelot for these properties but their chances are likely lower than if they weren't in the certain areas of the development plan.
He admitted that the determination whether to get approval for the sidelot if your parcel is within certain development zones, really depends on the specific neighborhood itself, the type of use that you're envisioning, etc.
In the html copy, PPN is referred and users who would use largelots won't know what it is; I'm replacing with Parcel Number;
(I'm working on this and will put a PR in a few minutes).
would be nice to have; this is on hold once the domains transfer over to us from @pkoepke
The "Large Lots" name and "$1" logo need to be replaced with a name and logo concordant with the City of Cleveland Land Bank initiative.
I currently have clevelandlots.org and clelots.org registered under my personal account with NearlyFreeSpeech.net. clevelandlots.org needs to be renewed on April 3, so now is probably a good time to transfer those domains to Open Cleveland control.
The easiest thing would probably be to register the domains under our Amazon AWS account for [email protected] - I think their DNS / domain name offering is Route 53. I don't know the steps to transfer the names but if we agree to move them to Amazon then we can figure the steps out.
If we transfer the domains to Open Cleveland control, will Code for America pay for them? The yearly expense is very small and I'm happy to cover it but depending on one person for that is probably not sustainable in case I get busy and disappear, so securing funding for Open Cleveland is probably safer.
Started adding changes to the apply.html file, haven't added anything to the view.py files -- look to the original code (the datamade repo) for examples.
csvjoin -c "column1, column2" downloaded.csv parcels.csv > joined.csv
, where column1 and column2 are the indices associated with the the columns that are being joined in the two csvs. It should be "1,3"ISSUE: csvjoin considers the ppn to be a number and removes leading 0's! Don't want that behavior, want it to be a string! -- doesn't matter -- use the full parcel number
I have the data for ALL parcels, but it's too big -- 300 MB or so (https://www.dropbox.com/sh/e09vtuxpxwjtd4x/AADYaA62QzaJir1v54ra9cHXa?dl=0) -- so when scraping (see the web-scraping repo in open cleveland) the land bank website for available parcels, we'll have to run a script that selects (and ideally uploads) the parcel data and puts it into CartoDB, which is how Large Lots currently works.
Alternatively, if anybody has a suggestion on how to do this better, let me know.
Doesn't necessarily need to be for this iteration, but separating
Would be useful. Maybe apartment number also?
It would be a shame if something went wrong and we lost the record of applications. We should have a way to back up the DB.
I would consider using pg_dump to get the entire database (daily? weekly?), compress the database dump (it's text so it'll compress well), and store it in S3. We can keep all of the DB dumps on S3 with their dates in the file name so we have regular snapshots - that way if something went wrong several weeks ago and we caught it later, we can revert to the last good state.
We have to change the layout, including what questions are asked and data is stored as to match the Cleveland application. This includes changing the favicon and logo (unless Cleveland changes the price to $1).
need to add to the requirements.txt
psycopg2
check to make sure that it's not using chicago's analytics.
on the detail page (which is available in the lots-admin section);
We should also display additional information (any improvements that they made to the yard, other properties that they own, and many other fields) that the applicant included in their application.
Right now, the additional information is only available by accessing the CSV dump.
On the Chicago site, PPNs are 14 digits long. Cleveland's are 8, but the form validation still checks for a 14-digit string.
We are currently linking to the county treasurer site: http://treasurer.cuyahogacounty.us/payments/real_prop/taxbill.asp
Cuyahoga County has more information on properties on its Real Property site: http://fiscalofficer.cuyahogacounty.us/AuditorApps/real-property/REPI/default.asp
This may or may not be helpful, but we could also add a link to the Real Property site to make it easy to get more details on the property.
There's some properties that do not have an address but an address is a required field (this field's id is id="id_lot_1_address") for submission; thanks to kyle for pointing this out during testing.
example parcels: 003-01-011
feedback from the land bank.
on http://clevelandlots.org/apply/
under 1.
at line 35
large-lots/templates/apply.html
Line 35 in ebcb55e
Requirements for admin-facing functionality are undiscovered. Are these even necessary? Or is this application an improved interface for existing administrative functions at the City of Cleveland?
Now that we have a MySQL DB running on EC2, we need to create a stored procedure to insert new records into the form submissions table.
You can enter in any garbage address and be allowed to submit a form for any lot. System should check that your address is actually adjacent to the lot you're applying for.
ugh, the cartodb tiles are no longer working; one day after public beta launch, naturally.
#thisiscleveland
getting a 502 error when visiting clevelandlots.org :(
likely something with our AWS instance?
If the user fills out the form on the Apply page and submits the application, but there's a problem (e.g., an unsupported file type), the following fields' information is lost:
There may be other not-required fields that are lost.
It would be ideal to keep all the information the user has entered so they don't have to reenter it. Also, since a user would typically expect the form to remember what they entered, the user is likely to miss a required field again.
Need to figure out how to consistently refresh the site with most current data from the City of Cleveland Land Bank site.
Have to make sure that it's emailed to the right person -- how is it emailed? Are we also storing the submissions in a machine readable format? How do we do this with pictures?
Might have to create multiple issues for this. Please add.
Probably not TOTALLY necessary, but something that was asked for.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.