liqd / a4-meinberlin Goto Github PK
View Code? Open in Web Editor NEWThe central participation platform of the city of Berlin, Germany
Home Page: https://mein.berlin.de
License: GNU Affero General Public License v3.0
The central participation platform of the city of Berlin, Germany
Home Page: https://mein.berlin.de
License: GNU Affero General Public License v3.0
I get an internal server error when trying to fill in content for polls after having created a poll process.
The header area shows some strange styling errors when the width is set to 800px (tested on Safari 10.0.3).
The seocond problem persists even for smaller widths. The first problem I can only produce at 800px viewport width.
I accidentally click on the magenta button because my brain expects it to be the button that logs me in. I think this is because it is positioned on the very left while the log in comes in second place. Also its color is much stronger.
Suggestion:
Log In button comes first
Password Forgotten follows below, maybe styled as a link instead of a button
The meinberlin header (#78) is supposed to party cover the hero image on the frontpage. this is broken if there are alerts:
Button "show all projects" missing on landing page
Uncaught SyntaxError: Unexpected token o in JSON at position 1 <embed.js:108>
For some reason, when loading the page containing the iframe, it seems the message
handler gets triggered and has an object {request: 'geturi'}
in event.data
.
Maybe its from a browser extension?
When we have buttons that only contain an icon and maybe in some other cases, we need to provide an alternative text (WCAG 1.1.1). There are a lot of options for that, but currently we use of of these two:
aria-label
: <button><i class="fa" aria-label="alt text"></i></button>
title
: <button title="alt text"><i class="fa" aria-hidden="true"></i></button>
Both options have pros and cons, but we should have clear rules on when to use which one.
We need some proper styling for logout and email confirmation etc.
i.e. buttons
Call to action missing on landing page
It would be really cool to have a build-up animation for the graph in our polls.
A transition that builds up the bars from left to right would not just be pretty, it would also create a better sense for what's happening.
Currently we are mixing generated and custom content in /static
I propose to move all custom content (images, js, scss) to assets and copy them with webpack to static.
This would enable us to completely ignore the /static/ folder ing git
While the list gets cut after x items already, there is no pagination to access the other pages.
Most of our URLs are not hierarchical. For example, the path to a project is /projects/{project_slug}/
rather than /organisations/{organisation_slug}/projects/{project_slug}
. However, the paths in the dashboard are hierarchical.
The hierarchical style lead to some security issues (e.g. #162). The issue was that the URL contains redundant information (i.e. the organisation is given both explicitly and implicitly from the project). We failed to check that the two match up which allowed initiators from one organisation to edit another organisation's projects.
I personally prefer the hierarchical style, e.g. on github. But note that github issue ids are scoped to the project, so there is no redundant information.
I do not think that one style is more secure than the other. But I mixing them leads to confusion. We should pick one of these options, ideally before going live:
Given the current code base, I think it third option is the easiest to implement. I also think that hierarchical paths are mostly useful for people with a technical background, so not really that important for our target group.
Some frontend libraries are only used on specific pages (e.g. leaflet for maps). Sometimes we just include these libraries in the webpack bundle so that it gets quite big (~1.5MB at the moment). Sometimes we only load them on the pages where they are needed, which adds complexity.
We should find a consistent solution for this which balances performance and code complexity.
This is a counterpart to #226
If a project is already published it should not be possible to remove dates from its phases.
Maybe users should also be prevented from modifying dates?
just so we don't forget about it: the min-height should be reduced for mobile, it's too high.
When creating a priotisation of topics process I can't add categories. Nothing happens after I click on the '+' button
We need to delete follows at some point, e.g. when the project is archived or deleted.
^
With the setup since #278, webpack generates the following code:
var leaflet.draw = …
This breaks some mapping functionality.
Possible fix: rename bundle to leafletDraw.
I recently experienced difficulties with the javascript generated webpack. On first build, everything works fine. Subsequent build look considerably different (e.g. the parantheses around function
are missing) and the the following error message is shown in the JavaScript console:
Uncaught TypeError: Cannot read property 'call' of undefined
This means that a module that webpack is trying to initiate is undefined
.
With the introduction of #201 the settings for the BoundingBox are wrong.
Nevermind the previous image, but the zoom still should be adjusted.
When I read a proposal for a participatory budget is very central. It would be great, if we could emphasize the budget visually and give it a label „Estimated cost by user“ or similar. I would also use dividers for thousands of euros like so: 1.000.000 €
Could we show the cost in the list view, too?
When I visit a page with a map, I get the following errors in the web console:
GET http://localhost:8000/static/leaflet.js
GET http://localhost:8000/static/leaflet.css
This is because core expects these files, but we include leaflet in our regular bundle. It is not clear which behavior is more correct yet (see discussion in #195). But we should handle the error messages anyway.
Currently the .validate()
methods of the Documents and Poll Serializers are setting the related module. Consider using a HiddenField for the module which could be set from the kwargs. Compare the creator fields which is set with:
creator = serializers.HiddenField( default=serializers.CurrentUserDefault() )
Checkbox is missing.
Static pages missing on landing page (imprint, faq, terms of use, feedback)
If a projects initial phase starts in the future, the default a4projects/project_detail.html
is rendered.
This template is by default empty and should be overridden. Currently this is tried by apps/projects/a4projects/project_detail.html
which is not working. Django is still using the a4 template.
Furthermore the project_detauil template is missing logic and information if no phase has been started yet
The dimensions here need to be adjusted. See status quo (left) and design (right):
Design on Zeplin: https://zpl.io/26x4Mz
The project form limits image to a minimum size. Those restrictions are not checked when importing images with the api.
If a smaller image is already imported, the project can not be edited in the dashboard.
In the form to reset your password the button is not recognizable as a button.
https://meinberlin-dev.liqd.net/accounts/password/reset/
Our projects tend to have a large overlap in terms of features and UI. In the past we tried to limit duplication by sharing a lot of code. The downside of this was that the shared code became very abstract and hard to reason about.
With the switch from a3 to a4, we went the other way and did a lot of duplication. In order to find a good balance, we should think about ways to limit duplication while keeping it simple. At the very least, we should have an understanding of:
According to @2e2a, we already have a good balance in the python code. The same is true for CSS. So for now we can concentrate on the templates.
We already tried to work on this in some pull requests (#206, #237, #239). We found that the templates are in fact very similar, but also different in some key places:
create_idea
/ create_proposal
) (see #206)idea-create
/ proposal-create
) (see #206)Currently filters have two issues:
OrderingFilter
(currently fixed by the RequestOrderingMixin
)Django says to include app specific static files in a /static
directory in the root of the particular app (https://docs.djangoproject.com/en/1.11/howto/static-files/). On runserver
Django collects static files from the project wide static directory (mentioned in base.py) and the /static
directories within all apps, grouping them into one global /static
directory.
Now, we don't need .jsx
files in that global /static
directory since they are required and put together into one file by webpack. Still, those files need a directory to be put into on app level – therefore sometimes there might be an asset directory instead of a static directory or the other way around.
It'd be great to have one directory and in the best case that would include not having .jsx
files in that django-generated, global /static
directory.
Mark draft projects with a badge or something when a moderator is browsing the project list. Currently every project is listed and logged in moderators can only find out if they are drafted in the dashboard or with an incognito browser.
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.