Customizing GeoNode. Emere Arco, Simone Balbo, Paolo Pasquali, Constantin Sandu ITHACA

Similar documents
GeoNode Intro & Demo

wagtailtrans Documentation

django-baton Documentation

django-baton Documentation

CSC Web Programming. Introduction to HTML

Django Map Widgets Documentation

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

kaleo Documentation Release 1.5 Eldarion

MY DEWETRA IPAFLOODS REPORT

CSC Web Technologies, Spring HTML Review

Create First Web Page With Bootstrap

wagtailmenus Documentation

cmsplugin-blog Release post 0 Øyvind Saltvik

Web Map Servers. Mark de Blois. Septembre 2016

Responsive Web Design (RWD)

wagtailmenus Documentation

PIC 40A. Midterm 1 Review

The Butterfly Effect. A proposal for distribution and management for butterfly data programs. Dave Waetjen SESYNC Butterfly Workshop May 10, 2012

Techniques for Optimizing Reusable Content in LibGuides

DanubeGIS User Manual Document number: Version: 1 Date: 11-Nov-2016

Compass INSPIRE Services. Compass INSPIRE Services. White Paper Compass Informatics Limited Block 8, Blackrock Business

Web Programming BootStrap Unit Exercises

EXPLORE MODERN RESPONSIVE WEB DESIGN TECHNIQUES

ISESS An Integrated Decision-Support Information System on the Impact of Extreme Natural Hazards on Critical Infrastructure

ArcGIS Hub: Open data best practices. Graham Hudgins, esri product engineer

Make a Website. A complex guide to building a website through continuing the fundamentals of HTML & CSS. Created by Michael Parekh 1

INFS 2150 Introduction to Web Development

INFS 2150 Introduction to Web Development

Foundation Drupal 7: Learn How To Use The Drupal Framework To Quickly Build Feature-rich Websites By RJ Townsend

Deccansoft Software Services

Programming web design MICHAEL BERNSTEIN CS 247

By Robert Slivinsky 1

App.config Could Not Find Schema Information For The Element 'applicationsettings'

Processing and dissemination of satellite remote sensing data in an heterogeneous environment.

Creating an Online Catalogue Search for CD Collection with AJAX, XML, and PHP Using a Relational Database Server on WAMP/LAMP Server

Lecture 7. Action View, Bootstrap & Deploying 1 / 40

OpenData and INSPIRE with GeoServer, GeoNetwork and MapStore: lessons learned from real-world use cases

GeoNode Integration with SDIs and Community Mapping

wagtail-robots Documentation

django-intercom Documentation

Web UI. Survey of Front End Technologies. Web Challenges and Constraints. Desktop and mobile devices. Highly variable runtime environment

Lecture 13. Page Layout. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

django-session-security Documentation

May 22, 2013 Ronald Reagan Building and International Trade Center Washington, DC USA

Django IPRestrict Documentation

django-sitetree Documentation

Building Web Applications

Introduction to INSPIRE. Network Services

An Overview of FMW MapViewer

django-scaffold Documentation

Introduction to WEB PROGRAMMING

SEXTANT 1. Purpose of the Application

mongodb-tornado-angular Documentation

APEX Times Ten Berichte. Tuning DB-Browser Datenmodellierung Schema Copy & Compare Data Grids. Extension Exchange.

Frontend UI Training. Whats App :

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

ARCHITECTURE OF SPATIAL DATA INFRASTRUCTURE (SDI) (DRAFT)

Introduction to Computer Science Web Development

HTML + CSS. ScottyLabs WDW. Overview HTML Tags CSS Properties Resources

Django Groups Manager Documentation

Cartoview Documentation

Vector Issue Tracker and License Manager - Administrator s Guide. Configuring and Maintaining Vector Issue Tracker and License Manager

Open Source Software: What and Why?

Course Outline. SharePoint 2013 End User Level I Course 55050: 4 days Instructor Led

INSPIRE roadmap and architecture: lessons learned INSPIRE 2017

shortcut Tap into learning NOW! Visit for a complete list of Short Cuts. Your Short Cut to Knowledge

Best Practices for Choosing Content Reporting Tools and Datasources. Andrew Grohe Pentaho Director of Services Delivery, Hitachi Vantara

Forerunner Mobilizer Dashboards

django-responsive2 Documentation

From Geoportal to Spatial Data Service Platform. Jani Kylmäaho National Land Survey of Finland Development Centre

Settings & Notifications

Developing ASP.NET MVC Web Applications (486)

Lotus IT Hub. Module-1: Python Foundation (Mandatory)

Checkout Customization

VERINT EFM 7.1 Release Overview

CSCI 1320 Creating Modern Web Applications. Content Management Systems

Building a Django Twilio Programmable Chat Application

CSC Website Design, Spring CSS Flexible Box

Oracle CPQ Cloud for Salesforce.com

I need two demo sites. And I need them in two days

djangocms-cascade Documentation

HTML TIPS FOR DESIGNING.

DBNsim. Giorgio Giuffrè. 0 Abstract How to run it on your machine How to contribute... 2

Full Stack Web Developer

Harvard Hypermap: An Open Source Framework for Making the World's Geospatial Information more Accessible

Description. Speaker Patrizia Monteduro (International Consultant, FAO) TRAINING GEONETWORK OPENSOURCE Islamabad, Pakistan, Jan 29-31, 2014

Tablo Documentation. Release Conservation Biology Institute

HTML & CSS. Rupayan Neogy

MEAN Stack. 1. Introduction. 2. Foundation a. The Node.js framework b. Installing Node.js c. Using Node.js to execute scripts

CMS Online Store Quick Start Guide. with Joomla, j2store

Web Programming Week 2 Semester Byron Fisher 2018

Django Admin Sortable Documentation

Mateen Eslamy 10/31/13

AGENDA :: MULTIMEDIA TOOLS :: CLASS NOTES

Documentation for the new Self Admin

Addressing Geospatial Big Data Management and Distribution Challenges ERDAS APOLLO & ECW

Index. alt, 38, 57 class, 86, 88, 101, 107 href, 24, 51, 57 id, 86 88, 98 overview, 37. src, 37, 57. backend, WordPress, 146, 148

django-intranet Documentation

UNIX and Operating System Topics

VINEPILOT. Project Design Specification. v2.0 - The Savvy-gnon Team

Transcription:

Customizing GeoNode Emere Arco, Simone Balbo, Paolo Pasquali, Constantin Sandu ITHACA

Outline GMES RDA MASDAP HaitiData UI/UX Considerations Way forward Conclusions

ITHACA + GeoNode Need for a complete set of functionalities Upload data Quickly create a Web Map Data styling (optional) Metadata catalogue Support Open Source Knowledge of GeoNode key components (Django, GeoServer, GeoNetwork and PostGIS)

GMES Reference Data GeoNode Implementation of an initial GMES Service for Geospatial Data Access covering areas outside Europe Analysis of non-eu reference data availability, quality and consistency and gaps to be filled Dissemination of the data quality assessment results

MASDAP 1 (2012) Ensure that the data created by a number of past or ongoing projects is maintained and remains accessible and useful to the Government of Malawi Technical support and training to the National Spatial Data Center and partner ministries

MASDAP 2

GeoNode 2.4

Apps: Contact Form Requirements: A contact form to be available on the GeoNode site Registered and non-registered users must be enabled to send a message to the administrators A security check must prevent a robot to spam the system The message should reach an email inbox, managed by the administrators Solution: A Django app was added, that performs the required descriptions This was enriched with the google nocaptcha_recaptcha tool (i.e. I m not a robot )

GeoNode 2.6

HaitiData

HaitiData with Kartoza Updating the existing Haiti GeoNode platform (HaitiData) using the latest version of GeoNode and developing additional functions specific to HaitiData Mosaic Clip n Ship (Aerial imagery and DSM) Charts Docker + Rancher In depth training of staff of CNIGS (Centre National de l'information Géo-Spatiale) that will be responsible of the renewed HaitiData platform.

Charts Specifications: Capacity of generating a chart On vector datasets Two-fields entry (label or category field, quantity field) Possibility of aggregating data, according to e.g. mean, average etc. Capacity of storing the chart in db, for retrieving it at a later stage

Charts

Charts Solution provided Software stack: GeoServer, Django (two apps), d3js GeoServer provides the WFS service, which is used as source a Django app acts as a middleware between the client and WFS D3js reads a csv file obtained from the WFS D3js performs the aggregation and generates the chart on the client side another Django app stores the input parameters of each single chart in the db and handle modifications

Charts Integration with the GeoNode permission system: Non registered users can create a chart, on vector layers on which download permissions is granted to anyone Registered users can create a chart, on additional layers which they have been granted download permission to Registered users can save a chart in the system, in order to publish it. A chart inherits the download permissions on the original layer Charts can be modified and deleted by the owner, or by the owner of the original layer

Charts Next steps and ideas: Currently the chart is not saved as image; the input parameters are saved (i.e. layer, fields, aggregation, chart type, title, abstract). As a consequence every time a user wants to see a chart, this must be regenerated (bandwidth...) A solution would be to store the HTML element that describes a chart but what about consistency if the layers is modified? Triggering chart update?

GeoNode + Wagtail CMS Wagtail built on Django MASDAP is based on GeoNode 2.4 Django==1.6.11 but need Django>=1.8.1,<1.12 (Latest Wagtail version requires Django>=1.11,<2.1)

How to install Wagtail CMS in GeoNode 1. 2. 3. 4. 5. 6. pip install wagtail Add required apps to INSTALLED_APPS Add 2 entries in MIDDLEWARE Configure urls.py manage.py migrate manage.py startapp

How to integrate Wagtail CMS? GeoNode and Wagtail can share: Same Users Same Content (e.g. Maps)

How can I share more? Register your piece of code as a Snippet... from geonode.maps.models import Map class BlogMap(BlogPage): map = models.foreignkey( 'maps.map', null=true, blank=true, on_delete=models.set_null, related_name='+' ) content_panels = BlogPage.content_panels + [ SnippetChooserPanel('map'), ] register_snippet(map)

GeoNode Maps

Wagtail Maps

Editing Posts

Wagtail Blog Posts

A Blog post with a GeoNode map

What s next? ITHACA GeoNode (based on 2.8) will provide ERDS (Extreme Rainfall Detection System) products: GPM Cumulated Rainfall GFS Cumulated Rainfall Extreme Rainfall Alerted Areas Drought Monitoring Early Impact Maps OSM Extracts and Analysis UI/UX Refactoring (Bootstrap 4?)

How can I customize the UI/UX? GeoNode UI is based on Bootstrap 3 HTML, CSS, JS are documented in Bootstrap Always create a Django project to customize your GeoNode installation Modify the Less files (e.g. variables.less) and then compile in CSS

Example: About 20 years ago <table style= width:100% > <tr> <th>...</th> <th>...</th> <th>...</th> </tr> <tr> <td>...</td> <td>...</td> <td>...</td> </tr> <tr> <td>...</td> <td>...</td> <td>...</td> </tr> </table>

Tables vs Divs. Spot any difference? <table style= width:100% > <tr> <th>...</th> <th>...</th> <th>...</th> </tr> <tr> <td>...</td> <td>...</td> <td>...</td> </tr> <tr> <td>...</td> <td>...</td> <td>...</td> </tr> </table> <div class= container-fluid > <div class= row > <div class= col-md-4 >...</div> <div class= col-md-4 >...</div> <div class= col-md-4 >...</div> </div> <div class= row > <div class= col-md-4 >...</div> <div class= col-md-4 >...</div> <div class= col-md-4 >...</div> </div> <div class= row > <div class= col-md-4 >...</div> <div class= col-md-4 >...</div> <div class= col-md-4 >...</div> </div> </div>

HTML5 Best practice <header>...</header> <nav>...</nav> <article>...</article> <aside>...</aside> <footer>...</footer>

Solution Use CSS to style your HTML pages Use mixins = you can include the Bootstrap classes in your stylesheet! Bad: <a href="#" class="btn btn-primary btn-lg">button</a> Good: <a href="#" class="my-style">button</a>.my-style {.btn.btn-primary.btn-lg }

Conclusions (or Recommendations) Easy to add Django apps Keep the pace with recent Django version Translations: Don t mix content (Django v. Angular) Use Front-end framework (Bootstrap?) in a smarter way Light pages (more speed, more compatibility, more suitable) Less is more but Sass is even more Avoid inline styling