Giter VIP home page Giter VIP logo

commonknowledge / groundwork Goto Github PK

View Code? Open in Web Editor NEW
14.0 1.0 1.0 1.85 MB

An integrated and opinionated collection of Django applications and Javascript components for people building software for organisers and campaigners

Home Page: https://groundwork.commonknowledge.coop

License: GNU General Public License v3.0

Dockerfile 0.77% Makefile 2.25% Python 74.73% TypeScript 14.69% HTML 3.65% JavaScript 3.90%
campaigns

groundwork's People

Contributors

chrisdevereux avatar janbaykara avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

ivvvve

groundwork's Issues

Fixes for developer set up

Notes from the pairing session, where we managed to overcome the VSCode devcontainer set up and missing dependencies.

sudo chown -R $(whoami) .
make bootstrap
curl https://raw.githubusercontent.com/commonknowledge/do-app-baseimage-django-node/439e8fecc8279266fcdd80942640000a1fb5a3ba/.bin/prepare.sh | /bin/bash

Add utilities for some common mapbox paint operations.

We provide the ability to customize our mapbox widgets with custom themes and styles, but actually using this requires people to use the relatively low-level mapbox style DSL.

Add some python helpers to produce the mapbox json for common requirements, such as:

  • Showing markers for datapoints within the current view.
  • Rendering some html into a popover for a given datapoint (possibly by fetching html over the wire).
  • Shading a geographical area with a data-driven color. Support user interactions on painted areas.
  • Rendering points onto the map via geojson. Support clustering and fetch-on-demand.

Add a guide for Mapbox functionality

There's already one for Data Pipelining.

Parsons integration

Parsons provides an extensive suite of connectors for common tools used by progressive organisations, with a Table abstraction that isn't a million miles away from our Datasource (for list queries, at least).

Investigate a way of allowing Parsons connectors to be used easily in this library.

This might take the form of a Datasource subclass with an abstract method that subclassers implement to return a Parsons table, for example.

Rename this repository?

In the docs, edit links point to commonknowledge/groundwork. We should probably change this repository's name.

Airtable integration

AIrtable is a popular tool used by organisers for ad-hoc data capture and management.

Add a Datasource subclass that is able to connect to Airtable bases and map them into Python dataclasses.

Investigate replacing our use of vite's `import.meta.glob` with import maps.

@janbaykara suggests:

Occurred to me that there could be scope for including a django variant of Ruby-style import maps, for loading Stimulus controller files for templates, as an alternative to bundling them altogether.

We in fact kind of already have this behaviour by using dynamic import() via vite's import.meta.glob to load and register controllers on-demand.

Using import maps could prove to be a more 'standard' way of providing this behaviour. Especially when the django hotwired libraries mature a bit.

Release 0.1.3 workflow is failing

Release workflow is failing: https://github.com/commonknowledge/groundwork/actions/runs/2097768625

Unsure why this is, as release 0.1.2 used the same workflow and the db service hasn't been changed either v0.1.2...v0.1.3

db service starts

   docker.io/kartoza/postgis:latest
  /usr/bin/docker create --name 209d5af565794f609c0ae5cd4061e8db_kartozapostgislatest_c836e0 --label 2bcf09 --network github_network_5b496bb6f92648099e3cf3b47c911a79 --network-alias db  -e "POSTGRES_USER=postgres" -e "POSTGRES_PASSWORD=postgres" -e "POSTGRES_DBNAME=postgres" -e "POSTGRES_HOSTNAME=postgres" -e "POSTGRES_PORT=5432" -e GITHUB_ACTIONS=true -e CI=true kartoza/postgis:latest
  22e58ab40abb3a86e8014dde579ffd41ce2372d0ae0940705cde3a54d9331bde
  /usr/bin/docker start 22e58ab40abb3a86e8014dde579ffd41ce2372d0ae0940705cde3a54d9331bde
  22e58ab40abb3a86e8014dde579ffd41ce2372d0ae0940705cde3a54d9331bde
  /usr/bin/docker ps --all --filter id=22e58ab40abb3a86e8014dde579ffd41ce2372d0ae0940705cde3a54d9331bde --filter status=running --no-trunc --format "{{.ID}} {{.Status}}"
  22e58ab40abb3a86e8014dde579ffd41ce2372d0ae0940705cde3a54d9331bde Up Less than a second

wait-for-it fails

Run .github/bin/wait-for-it.sh db:5432
  .github/bin/wait-for-it.sh db:5432
  shell: sh -e {0}
/__w/_temp/c4db5d80-dd3d-4c30-a5b4-b0517bd4279e.sh: 1: /__w/_temp/c4db5d80-dd3d-4c30-a5b4-b0517bd4279e.sh: .github/bin/wait-for-it.sh: Permission denied
Error: Process completed with exit code 126.

Container logs

2022-04-05 17:36:00.133 UTC [72] LOG:  database system is ready to accept connections

Webhook support in datasources

Re @conatus ' comment on SyncedModel:

One question I do have is what does one do when one doesn't want to sync the data periodically with a Cron. The documentation doesn't answer this directly. We can imagine some cases where the data changes quite rapidly and is important to keep up to date. I presume we somehow override the method, but can't be sure. I don't think this blocks this very good work going in however! Maybe take a ticket to document this situation?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.