Giter Club home page Giter Club logo

toucan's Introduction

toucan's People

Contributors

fadr avatar mcallistersean avatar thammerl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

ejochum

toucan's Issues

replace issue with need

sed 's/issue/need/g'

Replace all occurences of the word issue with need. This seems to be the common term in the humanitarian sector.

Refactor Issue Detail

We currently have a single container component to handle issue details/ comments / comment posting.
The passing down of props is quite bothersome. I will have to refactor this to have multiple containers.

Reset Password forms

Just noticed that the password reset form is completely unstyled. It works but it's ugly.

Rework webpack workflow

The current state of the frontend build works quite nicely but could use some optimisations.

I am thinking of:

  • hot module replacement
  • better dev/production/test configs
  • more npm scripts
  • more documentation

markers / icons

The markers as used on the map are supposed to show icons referencing the issue type.
Since multiple issue types per issue are possible this is hard to do.

Organisations to issue types

Create an intermediary model between organisation and issue types.
Then allow organisations to configure which expertise they have, allowing them to add a few lines of text to specify the details.

Issue creation

We want to redo the issue creation form.
Issue creation should encompass the following steps:

  1. Select a location. Either by selecting from a map or a list of locations defined by your organisation
  2. Select the What of the issue/need:
    • medical assistance
    • supplies
    • demand
    • etc
  3. Structured input of the needs, to be seen in conjunction with the What captured in step 2. e.g: medical assistance for 3 pregnant women, 1000 water bottles for our field supply camp

make issues closeable

There is currently no way to actually close an issue.
As a first step every signed in user should be able to close/re-open an existing issue.

deal with offers

Toucan is currently focused on requests for help.
In the future we might want to allow "issues" that offer help. This issue is here to discuss options for such a feature.

IMHO the easiest way to facilitate such a feature would be to create a issue type named 'offer' , but that could make it harder to integrate further workflow related to "offers" in the future.

Organisation contact details

Currently it is only possible to add a homepage and any number of locations to an organisation. The designs show multiple telephone numbers, email addresses etc.
I'll have to implement various fieldtypes to accomodate this.

Role description inside an organisation

Apart from the permissions (admin/member) inside an organisation, admins should be able to add job descriptions for their members.

e.g. "Camp Manager", "Logistics"

research mapbox

Mapbox (https://www.mapbox.com/) looks interesting and offers a lot of options to customize the look and feel of maps, might be an interesting approach to improve the mapping features

Help needed

These are some open issues/feature requests that I will have to deal with in the next days.
Source: @fadr via slack


Toucan Progammierhilfe

  • Add Need / I can pick it up by myself
    eintrag in der db und display auf der issue detail seite (da mag vielleicht emanuel auch noch was dazu sagen)
    → einbau in die filter

  • Issue Status (open/in progress/resolved)
    db und verknüpfung mit dem dropdown auf der issue detail seite
    dann kann auch der resolve button weg (da ist allerdings dann noch offen wie man eine resolve Nachricht eingibt)

  • Kategorie
    nur eine erlauben beim erstellen

  • Filters
    Labels sind jetzt die CSS Klassen
    Reset sollte die Filter zurücksetzen (das kann man sonst auch erst mal ausblenden)
    Beim Filter sollte eine Zahl mit der Auswahl daneben stehen wenn Filter ausgewählt sind

  • Listen
    → Sorting ist noch nicht implementiert
    Wenn man auf den MapHandle klickt sollte die Klasse .listExpanded an .app-container angehängt werden.

  • Add meta tag

  • Cancel buttons für Formulare
    Sollte auf die vorherige Seite zurückspringen, wenn das geht?

Make marker color represent issue status

Currently the marker colors are different from the colors used in the bootstrap theme. I think it would be a good idea to make the marker color equal to the color used by the status label. This way it would also be possible to distinguish open from closed issues on the map.

Navigation

New solution/design suggestion for the "Return to Toucan" - Button

Re-open/close state

React state is somehow not cleared after writing a comment and then writing another one and opening/closing the issue during these actions.

list of closed issues

provide a list of closed issues sorted by date closed in reverse order (recently closed issues on top)

Session issue on IOS

Description

It seems that when using an Ios Device (Iphone) and adding Toucan to the homescreen a user needs to login every time he clicks on the Icon.

Explanation

This relates to session handling which by default is set to session length. Checking the Remember me box during login should set this to 2 weeks.

Solution

I'd need some help from an Iphone user (@LauraPirgie) to confirm this.
Please login using the checkbox and see if things work for you?

Rework issue created notifications

Issue reated notifications currently work via model signals.
I want this to be made more explicit at the view level. And through the use of channels.

Safari 8 support

Our layout breaks on Safari 8.
@thammerl Is flexbox the only problem with Safari 8? Or did you notice further problems.
Any reason Isabella can not update? There is no version of OSX that I know of where Safari 8 is the latest available version.
We are using autoprefixer and I have added more configuration for it in 0dd072e.
But I don't think this is actually going to work, because the css looks rather similar to before.

Links in invitation mail not clickable in gmail

We are sending text mails for various events. One of those is the invitation of a user to an organisation.
The first screenshot shows the gmail webinterface correctly formatting the link, the second one does not.
Somebody should do some research why that is the case.

gmail

2017-08-09-photo-00000018

DB migration error

$ ./manage.py migrate
Operations to perform:
  Apply all migrations: account, admin, auth, contenttypes, invitations, issues, organisations, sessions, site_config, sites, socialaccount, user_profile
Running migrations:
  Applying site_config.0004_auto_20160701_1714...Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
    utility.execute()
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/core/management/__init__.py", line 359, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/core/management/base.py", line 294, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/core/management/base.py", line 345, in execute
    output = self.handle(*args, **options)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/core/management/commands/migrate.py", line 204, in handle
    fake_initial=fake_initial,
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/migrations/executor.py", line 115, in migrate
    state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, fake_initial=fake_initial)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/migrations/executor.py", line 145, in _migrate_all_forwards
    state = self.apply_migration(state, migration, fake=fake, fake_initial=fake_initial)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/migrations/executor.py", line 244, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/migrations/migration.py", line 129, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/migrations/operations/special.py", line 189, in database_forwards
    self.code(from_state.apps, schema_editor)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/site_config/migrations/0004_auto_20160701_1714.py", line 14, in create_site_configs
    create_site_config(instance=s)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/site_config/signals.py", line 17, in create_site_config
    'issue_point': DEFAULT_POINT
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/models/manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/models/query.py", line 473, in get_or_create
    return self.get(**lookup), False
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/models/query.py", line 376, in get
    clone = self.filter(*args, **kwargs)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/models/query.py", line 796, in filter
    return self._filter_or_exclude(False, *args, **kwargs)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/models/query.py", line 814, in _filter_or_exclude
    clone.query.add_q(Q(*args, **kwargs))
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1227, in add_q
    clause, _ = self._add_q(q_object, self.used_aliases)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1253, in _add_q
    allow_joins=allow_joins, split_subq=split_subq,
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1158, in build_filter
    self.check_related_objects(field, value, opts)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1055, in check_related_objects
    self.check_query_object_type(value, opts, field)
  File "/home/thomas/workspaces/beetwo/b2-issue-tracker/b2it/lib/python3.5/site-packages/django/db/models/sql/query.py", line 1039, in check_query_object_type
    (value, opts.object_name))
ValueError: Cannot query "Site object": Must be "Site" instance.

Fix map if less than two issues exist

The map currently causes a javascript error when no issues exist yet. If only one issue exists, the map does not display anything because invalid map bounds are calculated.

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.