sysadminsmedia / homebox

A continuation of HomeBox the inventory and organization system built for the Home User
https://homebox.software
GNU Affero General Public License v3.0
871 stars 51 forks source link

Containers #27

Open jeranon opened 3 months ago

jeranon commented 3 months ago

What is the problem you are trying to solve with this feature?

Often people put items into containers that can easily move. It doesn't make sense (semantically) to move a location around. Currently we have items and locations.

What is the solution you are proposing?

I'd like to have a new hierarchy level. In practice, this could be the same as our current locations (as locations can currently be nested and moved with all their contents). It would allow a person to make locations semi-permanent, and have containers and nested sub-containers to be the main method of moving items around. It would make sense semantically to differentiate between a location, a container, and an item.

What alternatives have you considered?

Currently, there are locations, and they can be moved. So this suggestion is not critical, honestly.

Additional context

I think by adding a container option, and making the hierarchical levels more semantic, it would in turn make it more user-friendly and intuitive to a new user.

Contributions

betapictoris commented 3 months ago

I like the idea of having containers, but I wanted to pitch in an idea to have some sort of idea of ownership. I'm unsure how hard it would be to implement, but somethings don't fit into a location (like a watch or smartphone), and some locations are "owned" by some people, kinda like this:

home/
└── jane-doe/
   ├── jane-does-room/
   │  ├── jane-does-alarmclock
   │  ├── jane-does-computer
   │  ├── jane-does-nightlight
   │  └── jane-does-speaker
   ├── jane-does-casio
   └── jane-does-smartphone

This too also works with locations, so it's not like it's needed, but it'd be a nice QoL.

AeliusSaionji commented 3 months ago

I'm new to homebox so maybe this was added after you wrote this-

But any location can be assigned a parent location. Is your container proposal substantially different from having a location named say, "red box" and updating the parent location if moved?

If there's more to the container it's not clear to me and might be unclear to others as well- could you elaborate further on your idea?

jeranon commented 3 months ago

I'm new to homebox so maybe this was added after you wrote this-

But any location can be assigned a parent location. Is your container proposal substantially different from having a location named say, "red box" and updating the parent location if moved?

If there's more to the container it's not clear to me and might be unclear to others as well- could you elaborate further on your idea?

I'm aware the locations can be nested and moved. The primary difference is going to be creating a name that is semantically correct. You don't really "move" locations around in real life, you move containers. In practice, they could be identical in function to existing locations. I'm proposing a name change to make it more user friendly - something that defines what it does for the uninitiated. Perhaps all this would be would be some sort of tag/flag, perhaps it is something that is done at a more root level to create a distinction between locations and containers.

The largest advantage gained by having a defined "container" would be ease of use and semantics to make functions clear(er) to new users.

katosdev commented 2 weeks ago

Unless I am misunderstanding, you should be able to copy the code for Location and adjust the name to container?