No way to add person as member for a post in organization via web UI #685

Open
kaerumy opened this Issue Nov 17, 2014 · 7 comments

Projects

None yet

3 participants

@kaerumy
kaerumy commented Nov 17, 2014

It would be great if we are able to add Person as holding the post of Chairman/NonExecutive Director for this organization via the web UI.

https://sinar-malaysia.popit.mysociety.org/organizations/546a032c818b4478150e6923#members

https://sinar-malaysia.popit.mysociety.org/posts/546a0627977b363b547277a0

@mhl
Member
mhl commented Nov 18, 2014

Yeah, this would be great - it's the flip side of #654 that I forgot to create an issue for at the same time

@mhl mhl added the 1 - Contender label Nov 18, 2014
@kaerumy
kaerumy commented Nov 28, 2014

Just adding note that this is important for our key use case of representatives. After our imports, we still need to do various adhoc changes, it would be good if non-coders could do this via UI instead of having to send post via API for these updates.

@chrismytton
Member

This is slightly tricky to implement at the moment. We're purposefully trying to hide the complexities of posts in the UI where possible as not everyone will need them and they're a confusing concept to try and explain to someone who is just getting started.

I'll try and explain the problems and some potential solutions below.

Problem

On the current membership form on an edit person page we are already asking for a role:

screen shot 2014-12-03 at 16 40 01

In this case the role of the first membership is Member of Parliament. As it stands we save the role as the role attribute on the membership that links the person to the relevant organization.

If we wanted to add post creation to this form the logical way to do it would be to replace the membership role field with a post role, which would search through the posts in the instance, auto-complete them, or create a new post if it couldn't find one. The problems with this approach are:

  1. It wouldn't retain the old data from the membership role field (unless we showed both fields, which I think would be confusing)
  2. Adding the concept of posts complicates the already quite confusing process of creating a membership.
  3. Not everyone is going to want/need to use the concept of posts in their instance.

Potential solutions

  1. Add an Activate posts for this instance option which only shows things related to posts if an instance admin has explicitly enabled it.

    I'm reluctant to add this kind of option in the settings because it will just add lots of confusing conditionals in the code and means we've deferred a decision to the user rather than just make it up front.

  2. Move membership editing onto a separate page/url, e.g. /persons/john-smith/memberships/edit.

    The membership form is quite cramped and confusing at the moment, meaning there isn't much room for help text and explanations. This solution doesn't really solve the problem of "posts are a complicated concept if you don't need them" it does give a bit more room to explain what they are, how they work and why you might need them.

  3. Only allow posts to be managed via the API

    This is the simplest solution as it's what we do now :) Arguably posts are an advanced topic that isn't always necessary for an instance, but that doesn't really help @kaerumy with his use case :(

Conclusion

So that's the problem, hopefully it makes sense. I'm not sure what the best solution is but I would appreciate any feedback/opinions people have on how they would expect this to work etc.

Thanks!

@kaerumy
kaerumy commented Dec 4, 2014

Trying to avoid writing our own UI, because this issue, and sources #26 are the only things missing for us from Popit in terms of editing. We will use Google Docs first and figure a way to do batch/automated imports via API for first.

@kaerumy
kaerumy commented Dec 4, 2014

I don't think concept aspect it's complicated, and that it's OK to show both roles and posts. People who are maintaining such an important database should be familiar with Popolo I think. If it's confusing for users, then I think it would then be a documentation issue. If there is no space, a hint linking to docs might be an option.

Examples:
a. Member of House of Representatives (membership), as Member of Parliament (role) as MP of Permatang Pauh (post)
b. Member of House of Representatives (membership), as Member of Parliament (role) holding post of Opposition Leader (post)
c. Member of State Assembly (membership), as State Representative (role), as State Rep for Subang Jaya (post)
d. Member of State Assembly (membership), State Representative (role), as Speaker (post)
e. Board of Directors (membership), Executive Director (role), Chairman (post)
f. Cabinet (membership), Minister (role), Deputy Minister of Agriculture (post)

@chrismytton
Member

@kaerumy Thanks for your feedback!

It seems of the 3 potential solutions I gave, the most palatable one is to move the membership form onto it's own page. Then we've got some more space to give example and link to documentation explaining the use-case for posts and how they fit with membership roles.

I'll try and get an initial version of the revised form ready for you folks to look at early next week so I can get some feedback from you and make sure it works for your needs :)

@kaerumy
kaerumy commented Apr 21, 2015

Any progress on this? We're using our own temporary forms at the moment:

https://github.com/sweemeng/sinar_popit_ui/tree/post_hack_branch

This was about the only 2 features that we were missing that @sweemeng hacked a quick form for:

  • ability to add and remove persons from posts
  • ability to merge duplicates while preserving membership information #820

We and I believe openpolis are also working on similar use case for UI where posts held in various organizations are important, but while their work and ours are in progress, having this feature in popit UI would allow others to use popit fully for their needs while waiting on these alternative editing UI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment