Possibility to edit place statuses of cooperation

Whats below is just an idea, not a need.


User story:
As a group member, I would like to be able to create and edit place statuses to be able to filter the place gallery view page and describe places on the place page

Description:
Possibility to edit place cooperation statuses to describe places in more detail and filter places. From my own experience, I know that some places can work with a group in other terms than the default ones which are already in Karrot.

Objectives:

  • Greater ability to organize a group by adjusting place cooperation statuses to the needs of the group
  • Greater self-organization of a group members through the ability to filter by more place statuses

Possible acceptance criteria:

  1. Addition of “Place statuses” tab to group settings
  2. Giving the possibility to edit the places statuses in the terms of:
    1. Create/edit name of status
      1. Standard names - app translations
      2. Individual, not translated name created by the group
    2. Activity/archive Settings
    3. Color change
    4. Visibility on map
  3. Possibility to set new place statuses in individual place settings
    1. Redirecting via the “Manage statuses” button to the “Place statuses” tab in group settings - case as “Manage types”
  4. Possibility to filter places by new place statuses

Mockups:
pt. 1, 2. - place statuses in group settings

pt. 3. - place statuses in place settings

pt. 4. - place statuses filter in places gallery view

Potential use:
(in other places that are not the subject of this user story):

  • In group statistics
  • In activities filters

Additional info:

  1. Probably the logic behind displaying/availability of places with a given cooperation status is more complicated in backend than I think. It’s very possible that point 2.4 is not so simple to fulfill. Perhaps a hardcode addition of an additional type of status (if any group has such a need) would also do all the conditions without ability to set them by a group members.

  2. Usage examples:

  • Foodsharing Warszawa* cooperates with places that have regular pickups, but also with those where activity is added only when the owner of the place give us with information about the pickup. Usage example - dividing “Co-operating” to “Regular co-operation” and “Occasional co-operation”.
  • Foodsharing Warszawa* has special place for “one-time pickups”, which are marked as “Co-operating”, even though each collection is de facto a separate collection place. Application example - new status “One-time pickups”.
  • Foodsharing Warszawa* during negotiations with the new point conducts several test pickups. This can be considered by a different place status, something between “Negociating” and “Co-operating”. Usage example - new status “Trail co-operation”.

*Even though I am a member of Foodsharing Warszawa, I am not responsible for expressing their needs. The above examples are only intended to justify that the feature may also be useful for other groups.

We selected this topic in our selection process yesterday, so work will begin!

It’s one I personally wanted, as when supporting groups to setup for the first time, it’s quite confusing, especially when they are not foodsaving groups… “Co-operating” makes no sense outside of that kind of context.

This could lead to having different “group templates” when starting a group, but for now I think allowing them to be customized is a good step.

Currently, you aren’t allowed to create activities for certain statuses, but I’m thinking to remove this restriction.

Reason: there are other activity types now, and even if you aren’t co-operating yet, you might want to organise a meeting about it (or anything else).

The other option would be to make it an option in the place status (“Allow activities” → yes/no), but I’m not sure there is really much value to that…

There are a few other things in the code that check the place status that I will encounter, so a few more things might crop up like that…

1 Like

It makes sense to me!

PRs are open! Quite a lot working now, still quite a bit to do, but getting much much closer!

One decision to make: what happens to the places if you archive a place status…

  1. automatically archive all the places with that status
  2. optionally (checkbox) archive all the places with that status
  3. allow to switch them all to another status whilst archiving
  4. do nothing to the places

  1. has the follow-up question of how to show places with an archived status (think carefully, as it’s not the place that is archived, but the place status…).

I’m close to being able to merge this but this question is still outstanding… and I’m not sure the best approach, would be happy for input!

The mega option would be that when archiving a place status, you have a choice to either archive the places too, or convert them all to another status… although I’d prefer if there is a simpler way that will work for now.

Funny, it seems it’s mandatory to have a status. Otherwise I’d say, just delete the status.
Didn’t know our places in the Karrot group (General, Funding, Development etc.) are all cooperating :laughing: Now I see even more why this change is needed!

I don’t see why you’d want to archive the places too, cause it’s the status type you want to get rid of (is “archive” even the right term, why not delete?). Can you define a default status type that comes first in the list and that all places get when not set differently? Or allow to have no status :wink: (although that might discourage groups to care about their data)

Not having a status would kind of be like having a status called “no status”, so in practise it’s not very different.

yes :slight_smile: it’s actually the last part of karrot that is hardcoded to be food-saving specific… so it’s a milestone in the generalization topic.

it wasn’t clear to me if you archive a place status, whether people would expect to still see those places visible (and you wouldn’t be able to filter for that status, as it’s archived), so it seems an odd situation to end up in (a place that you are still using, with a status that has been archived).

and it might be people are meaning to sort of make the status and all the places with that status just get archived away… I don’t know what makes sense to people, hence the discussion.

it’s a good question and worth asking. I wondered many times before. it allows an “undo” (restore), which a lot of software has for many things now, and sometimes users expect that. from a practical/technical perspective we would probably never actually delete it, as it’s referenced in the history, and we don’t want to delete history too when you delete something, so the question becomes whether it should be possible to un-archive/un-delete it or not.

I think this is a good idea.

Still have the open question to decide what to do with the places when archiving statuses… I added it to the agenda for the call tomorrow.

Right now I can imagine:

  • implement the default idea, and include a message to say “any places with this status will be set to DEFAULT”
  • when archiving, have an option which allows: “set any places of this status to OPTION”

(and that’s omitting the option to archive places themselves)

I implemented the following now.

When archiving a place status if there are places with that status it prompt you for a status to switch them to.

Happy for design/wording input if it’s not clear…

This is merged now! And currently live on https://dev.karrot.world, happy if anybody wants to try it out - to be deployed to prod at some point in the not too distant future…

This is deployed now :partying_face: