From f1d8f00af0d78e7e8054bde1b04061c525d97969 Mon Sep 17 00:00:00 2001 From: Livvy Mackintosh Date: Sun, 21 May 2017 01:47:14 +0200 Subject: [PATCH] Update map app (location, migrations and templates) --- {ojusomap/apps => apps}/__init__.py | 0 {ojusomap/apps => apps}/map/__init__.py | 0 apps/map/admin.py | 4 ++ {ojusomap/apps => apps}/map/apps.py | 0 apps/map/migrations/0001_initial.py | 47 +++++++++++++++ .../map/migrations/0002_auto_20170520_0139.py | 20 +++++++ .../apps => apps}/map/migrations/__init__.py | 0 apps/map/models.py | 57 +++++++++++++++++++ apps/map/requirements.txt | 11 ++++ apps/map/templates/map/index.html | 29 ++++++++++ {ojusomap/apps => apps}/map/tests.py | 0 apps/map/urls.py | 10 ++++ apps/map/views.py | 5 ++ ojusomap/apps/map/admin.py | 3 - ojusomap/apps/map/models.py | 3 - ojusomap/apps/map/views.py | 3 - 16 files changed, 183 insertions(+), 9 deletions(-) rename {ojusomap/apps => apps}/__init__.py (100%) rename {ojusomap/apps => apps}/map/__init__.py (100%) create mode 100644 apps/map/admin.py rename {ojusomap/apps => apps}/map/apps.py (100%) create mode 100644 apps/map/migrations/0001_initial.py create mode 100644 apps/map/migrations/0002_auto_20170520_0139.py rename {ojusomap/apps => apps}/map/migrations/__init__.py (100%) create mode 100644 apps/map/models.py create mode 100644 apps/map/requirements.txt create mode 100644 apps/map/templates/map/index.html rename {ojusomap/apps => apps}/map/tests.py (100%) create mode 100644 apps/map/urls.py create mode 100644 apps/map/views.py delete mode 100644 ojusomap/apps/map/admin.py delete mode 100644 ojusomap/apps/map/models.py delete mode 100644 ojusomap/apps/map/views.py diff --git a/ojusomap/apps/__init__.py b/apps/__init__.py similarity index 100% rename from ojusomap/apps/__init__.py rename to apps/__init__.py diff --git a/ojusomap/apps/map/__init__.py b/apps/map/__init__.py similarity index 100% rename from ojusomap/apps/map/__init__.py rename to apps/map/__init__.py diff --git a/apps/map/admin.py b/apps/map/admin.py new file mode 100644 index 0000000..10af6a2 --- /dev/null +++ b/apps/map/admin.py @@ -0,0 +1,4 @@ +from django.contrib import admin +from apps.map.models import CaseStudy + +admin.site.register(CaseStudy) diff --git a/ojusomap/apps/map/apps.py b/apps/map/apps.py similarity index 100% rename from ojusomap/apps/map/apps.py rename to apps/map/apps.py diff --git a/apps/map/migrations/0001_initial.py b/apps/map/migrations/0001_initial.py new file mode 100644 index 0000000..63fd493 --- /dev/null +++ b/apps/map/migrations/0001_initial.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.1 on 2017-05-19 21:42 +from __future__ import unicode_literals + +from django.conf import settings +import django.contrib.gis.db.models.fields +from django.db import migrations, models +import django.db.models.deletion +import django_countries.fields + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='CaseStudy', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('location', django.contrib.gis.db.models.fields.PointField(srid=4326)), + ('project_name', models.CharField(max_length=128)), + ('supply_chain', models.CharField(choices=[('A', 'Option A'), ('B', 'Option B')], max_length=1)), + ('generation_type', models.CharField(choices=[('W', 'Wind'), ('S', 'Solar')], max_length=1)), + ('associated_companies', models.CharField(max_length=128)), + ('financiers', models.CharField(max_length=128)), + ('important_lenders', models.CharField(max_length=128)), + ('country', django_countries.fields.CountryField(max_length=2)), + ('affects_indigenous', models.BooleanField()), + ('affects_indigenous_reason', models.TextField()), + ('proposed_start', models.DateField()), + ('proposed_completion', models.DateField()), + ('description', models.TextField()), + ('link_to_forum', models.URLField()), + ('image', models.ImageField(upload_to='')), + ('references', models.TextField()), + ('commodities', models.CharField(max_length=128)), + ('like_to_engage_developer', models.BooleanField()), + ('like_to_engage_investors', models.BooleanField()), + ('author', models.ForeignKey(blank=True, editable=False, null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), + ], + ), + ] diff --git a/apps/map/migrations/0002_auto_20170520_0139.py b/apps/map/migrations/0002_auto_20170520_0139.py new file mode 100644 index 0000000..446bc62 --- /dev/null +++ b/apps/map/migrations/0002_auto_20170520_0139.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.1 on 2017-05-20 01:39 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('map', '0001_initial'), + ] + + operations = [ + migrations.RenameField( + model_name='casestudy', + old_name='location', + new_name='geom', + ), + ] diff --git a/ojusomap/apps/map/migrations/__init__.py b/apps/map/migrations/__init__.py similarity index 100% rename from ojusomap/apps/map/migrations/__init__.py rename to apps/map/migrations/__init__.py diff --git a/apps/map/models.py b/apps/map/models.py new file mode 100644 index 0000000..6106495 --- /dev/null +++ b/apps/map/models.py @@ -0,0 +1,57 @@ +from django.contrib.gis.db import models +from django.contrib.auth.models import User +from django_countries.fields import CountryField + + +class CaseStudy(models.Model): + """Model for case studies submitted to the Ojuso Platform""" + + # Choice lists for dropdowns + SUPPLY_CHAIN_CHOICES = ( + ('A', 'Option A'), + ('B', 'Option B'), + ) + GENERATION_TYPE_CHOICES = ( + ('W', 'Wind'), + ('S', 'Solar'), + ) + + # User who submitted case study + author = models.ForeignKey( + User, + models.SET_NULL, + blank=True, + null=True, + editable=False + ) + + # Location of map pin + geom = models.PointField() + + project_name = models.CharField(max_length=128) + supply_chain = models.CharField( + max_length=1, + choices=SUPPLY_CHAIN_CHOICES + ) + generation_type = models.CharField( + max_length=1, + choices=GENERATION_TYPE_CHOICES + ) + associated_companies = models.CharField(max_length=128) + financiers = models.CharField(max_length=128) + important_lenders = models.CharField(max_length=128) + country = CountryField() + affects_indigenous = models.BooleanField() + affects_indigenous_reason = models.TextField() + proposed_start = models.DateField() + proposed_completion = models.DateField() + description = models.TextField() + link_to_forum = models.URLField() + image = models.ImageField() + references = models.TextField() + commodities = models.CharField(max_length=128) + like_to_engage_developer = models.BooleanField() + like_to_engage_investors = models.BooleanField() + + def __str__(self): + return "%s in %s" % (self.project_name, self.country.name) diff --git a/apps/map/requirements.txt b/apps/map/requirements.txt new file mode 100644 index 0000000..a03e38e --- /dev/null +++ b/apps/map/requirements.txt @@ -0,0 +1,11 @@ +appdirs==1.4.3 +Django==1.11.1 +django-countries==4.5 +django-crispy-forms==1.6.1 +django-leaflet==0.22.0 +gunicorn==19.7.1 +packaging==16.8 +psycopg2==2.7.1 +pyparsing==2.2.0 +pytz==2017.2 +six==1.10.0 diff --git a/apps/map/templates/map/index.html b/apps/map/templates/map/index.html new file mode 100644 index 0000000..8e3899b --- /dev/null +++ b/apps/map/templates/map/index.html @@ -0,0 +1,29 @@ +{% load i18n %} +{% load leaflet_tags %} + + + + + {% trans "Ojuso Platform Map" %} + {% leaflet_js %} + {% leaflet_css %} + + +

Ojuso Platform Map

+ {% leaflet_map "main" callback="main_app_init" %} + + + + + diff --git a/ojusomap/apps/map/tests.py b/apps/map/tests.py similarity index 100% rename from ojusomap/apps/map/tests.py rename to apps/map/tests.py diff --git a/apps/map/urls.py b/apps/map/urls.py new file mode 100644 index 0000000..701f65b --- /dev/null +++ b/apps/map/urls.py @@ -0,0 +1,10 @@ +from django.conf.urls import url +from djgeojson.views import GeoJSONLayerView + +from .models import CaseStudy +from . import views + +urlpatterns = [ + url(r'^$', views.index, name='index'), + url(r'^data.geojson$', GeoJSONLayerView.as_view(model=CaseStudy), name='data') +] diff --git a/apps/map/views.py b/apps/map/views.py new file mode 100644 index 0000000..cc0ea94 --- /dev/null +++ b/apps/map/views.py @@ -0,0 +1,5 @@ +from django.shortcuts import render + + +def index(request): + return render(request, 'map/index.html') diff --git a/ojusomap/apps/map/admin.py b/ojusomap/apps/map/admin.py deleted file mode 100644 index 8c38f3f..0000000 --- a/ojusomap/apps/map/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/ojusomap/apps/map/models.py b/ojusomap/apps/map/models.py deleted file mode 100644 index 71a8362..0000000 --- a/ojusomap/apps/map/models.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.db import models - -# Create your models here. diff --git a/ojusomap/apps/map/views.py b/ojusomap/apps/map/views.py deleted file mode 100644 index 91ea44a..0000000 --- a/ojusomap/apps/map/views.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.shortcuts import render - -# Create your views here.