[![Install PyInventory with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=pyinventory)
> [pyinventory_ynh](https://github.com/YunoHost-Apps/pyinventory_ynh) allows you to install PyInventory quickly and simply on a YunoHost server. If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.
Pull requests welcome!
## about
The focus of this project is on the management of retro computing hardware.
Current features:
* Web-based
* Multiuser ready (Every user see and manage only his own entries)
* Chaotic warehousing
* Grouped "Items" e.g.: Graphics card Foo is in computer Bar
* Data structure kept as general as possible
* Manage information to every item:
* Description: free WYSIWYG-HTML-Editor field
* Storage location
* State
* Images, Files and Web-Links
* receiving and delivering (when, from whom, at what price, etc.)
* Manage "Memos" (Information independent of item/location):
* A free WYSIWYG-HTML-Editor field
* Tags
* Images, Files and Web-Links
Future ideas:
* Information: Publicly visible yes/no
* A public list of existing items (think about it, you can set in your profile if you want to)
Helpful for writing and debugging unittests is to run a local test server.
e.g.:
```
~/PyInventory$ ./devshell.py run_testserver
```
The web page is available via: `http://127.0.0.1:8000/`
You can also pass a other port number or `ipaddr:port` combination. See: `./devshell.py run_testserver --help`
Call manage commands from test project, e.g.:
```
~/PyInventory$ ./devshell.py manage --help
```
## Screenshots
More screenshots are here: [jedie.github.io/tree/master/screenshots/PyInventory](https://github.com/jedie/jedie.github.io/blob/master/screenshots/PyInventory/README.creole)
* Every normal user sees only his own created database entries
* All users used the Django admin
Note: All created Tags are shared for all existing users!
So setup a normal user:
* Set "Staff status"
* Unset "Superuser status"
* Add user to "normal_user" group
* Don't add any additional permissions
e.g.:
![normal user example](https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory%20normal%20user%20example.png "normal user example")
More screenshots are here: [jedie.github.io/tree/master/screenshots/PyInventory](https://github.com/jedie/jedie.github.io/blob/master/screenshots/PyInventory/README.creole)
## Backwards-incompatible changes
### v0.7.0
Docker-Compose usage: The MEDIA files was not stored on a docker volumes.
You should backup rhe media files **before** update the containers!
* NEW: [Protect user to overwrite newer Item/Memo/Location with a older one (e.g.: in other browser TAB)](https://github.com/jedie/PyInventory/pull/78)
* Outsource the "MEDIA file serve" part into [django.tools.serve_media_app](https://github.com/jedie/django-tools/tree/master/django_tools/serve_media_app#readme)
* [VzEkC e. V. Forum Thread (de)](https://forum.classic-computing.de/forum/index.php?thread/21738-opensource-projekt-pyinventory-web-basierte-verwaltung-um-seine-dinge-zu-katalog/)
* [dosreloaded.de Forum Thread (de)](https://dosreloaded.de/forum/index.php?thread/3702-pyinventory-retro-sammlung-katalogisieren/)
* Send [Bitcoins](http://www.bitcoin.org/) to [1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F](https://blockexplorer.com/address/1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F)