kopia lustrzana https://github.com/jedie/PyInventory
Replace README.creole with README.md
using: https://github.com/jedie/python-creole v1.5.0.rc3pull/115/head
rodzic
12d813596c
commit
700436f9b4
299
README.creole
299
README.creole
|
@ -1,299 +0,0 @@
|
||||||
= PyInventory
|
|
||||||
|
|
||||||
Web based management to catalog things including state and location etc. using Python/Django.
|
|
||||||
Store information in WYSIWYG-HTML-Editor field and tag them and add Files, Images and Links to them.
|
|
||||||
|
|
||||||
Pull requests welcome!
|
|
||||||
|
|
||||||
| {{https://github.com/jedie/PyInventory/workflows/test/badge.svg?branch=main|Build Status on github}} | [[https://github.com/jedie/PyInventory/actions|github.com/jedie/PyInventory/actions]] |
|
|
||||||
| {{https://codecov.io/gh/jedie/PyInventory/branch/main/graph/badge.svg|Coverage Status on codecov.io}} | [[https://codecov.io/gh/jedie/PyInventory|codecov.io/gh/jedie/PyInventory]] |
|
|
||||||
|
|
||||||
[[https://install-app.yunohost.org/?app=pyinventory|Install PyInventory with YunoHost]].
|
|
||||||
If you don't have YunoHost, please consult [[https://yunohost.org/#/install|the guide]] to learn how to install it.
|
|
||||||
|
|
||||||
== 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)
|
|
||||||
** administration a wish & exchange list
|
|
||||||
|
|
||||||
any many more... ;)
|
|
||||||
|
|
||||||
|
|
||||||
== Project structure
|
|
||||||
|
|
||||||
There are two main directories:
|
|
||||||
|
|
||||||
|= directory |= description
|
|
||||||
| **[[https://github.com/jedie/PyInventory/tree/main/src|/src/]]** | The main PyInventory source code
|
|
||||||
| **[[https://github.com/jedie/PyInventory/tree/main/deployment|/deployment/]]** | deploy PyInventory for production use case (**[[https://github.com/jedie/PyInventory/issues/81|DEPRECATED!]]**)
|
|
||||||
|
|
||||||
== install
|
|
||||||
|
|
||||||
There exists these kind of installation/usage:
|
|
||||||
|
|
||||||
* local development installation using poetry
|
|
||||||
* production use with docker-compose on a root server (**[[https://github.com/jedie/PyInventory/issues/81|DEPRECATED!]]**)
|
|
||||||
* Install as [[https://yunohost.org|YunoHost]] App via [[https://github.com/YunoHost-Apps/pyinventory_ynh|pyinventory_ynh]]
|
|
||||||
|
|
||||||
This README contains only the information about local development installation.
|
|
||||||
|
|
||||||
Read [[https://github.com/jedie/PyInventory/tree/main/deployment#readme|/deployment/README]] for instruction to install PyInventory on a root server.
|
|
||||||
|
|
||||||
|
|
||||||
=== local development installation
|
|
||||||
|
|
||||||
e.g.:
|
|
||||||
{{{
|
|
||||||
# Clone project (Use your fork SSH url!):
|
|
||||||
~$ git clone https://github.com/jedie/PyInventory.git
|
|
||||||
~$ cd PyInventory
|
|
||||||
~/PyInventory$ ./devshell.py
|
|
||||||
}}}
|
|
||||||
|
|
||||||
|
|
||||||
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
|
|
||||||
}}}
|
|
||||||
|
|
||||||
|
|
||||||
=== local docker dev run
|
|
||||||
|
|
||||||
You can run the deployment docker containers with current source code with:
|
|
||||||
{{{
|
|
||||||
~/PyInventory$ make run-docker-dev-server
|
|
||||||
}}}
|
|
||||||
Just hit Cntl-C to stop the containers
|
|
||||||
|
|
||||||
The web page is available via: {{{https://localhost/}}}
|
|
||||||
|
|
||||||
|
|
||||||
== Screenshots
|
|
||||||
|
|
||||||
More screenshots are here: [[https://github.com/jedie/jedie.github.io/blob/master/screenshots/PyInventory/README.creole|jedie.github.io/tree/master/screenshots/PyInventory]]
|
|
||||||
|
|
||||||
|
|
||||||
{{https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory v0.2.0 screenshot 1.png|PyInventory v0.2.0 screenshot 1.png}}
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
{{https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory v0.11.0 screenshot memo 1.png|PyInventory v0.11.0 screenshot memo 1.png}}
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
{{https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory v0.1.0 screenshot 2.png|PyInventory v0.1.0 screenshot 2.png}}
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
{{https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory v0.1.0 screenshot 3.png|PyInventory v0.1.0 screenshot 3.png}}
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
|
|
||||||
== Multi user support
|
|
||||||
|
|
||||||
PyInventory supports multiple users. The idea:
|
|
||||||
|
|
||||||
* 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.:
|
|
||||||
|
|
||||||
{{https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory normal user example.png|normal user example}}
|
|
||||||
|
|
||||||
More screenshots are here: [[https://github.com/jedie/jedie.github.io/blob/master/screenshots/PyInventory/README.creole|jedie.github.io/tree/master/screenshots/PyInventory]]
|
|
||||||
|
|
||||||
|
|
||||||
== 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!
|
|
||||||
|
|
||||||
e.g.:
|
|
||||||
{{{
|
|
||||||
~/PyInventory/deployment$ make shell_inventory
|
|
||||||
root@inventory:/django# cp -Rfv /media/ /django_volumes/media/
|
|
||||||
}}}
|
|
||||||
The files are stored locally here:
|
|
||||||
{{{
|
|
||||||
~/PyInventory/deployment$ ls -la volumes/django/media/
|
|
||||||
}}}
|
|
||||||
Now, update the containers and copy the files back.
|
|
||||||
|
|
||||||
|
|
||||||
=== v0.5.0
|
|
||||||
|
|
||||||
Git branches "main" and "deployment" was merged into one.
|
|
||||||
Files are separated into: "/src/" and "/development/"
|
|
||||||
|
|
||||||
|
|
||||||
== history
|
|
||||||
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.15.0...main|compare v0.15.0...main]] **dev**
|
|
||||||
** tbc
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.14.0...v0.15.0|v0.15.0 - 19.08.2022]]
|
|
||||||
** Speedup item change list by prefetch "location"
|
|
||||||
** Better changelists for super users
|
|
||||||
** Add {{{./devsetup.py manage seed_data}}} command to fill the database for development
|
|
||||||
** Update requirements
|
|
||||||
** Update project setup
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.13.1...v0.14.0|v0.14.0 - 24.07.2022]]
|
|
||||||
** [[https://github.com/jedie/PyInventory/issues/102|Fix #102]] by remove limitation of item parents.
|
|
||||||
** Remove "Group Items" functionality
|
|
||||||
** Replace "Group Items" change list filter by "Limit tree depth" for Item and Location.
|
|
||||||
** Display Item and Location as a tree.
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.13.0...v0.13.1|v0.13.1 - 21.07.2022]]
|
|
||||||
** Rename git "master" branch into "main"
|
|
||||||
** Update CI/Test setup:
|
|
||||||
*** Use darker and pytest-darker as code formatter
|
|
||||||
*** Run tests with Python 3.10, too and update requirements
|
|
||||||
*** Replace Selenium tests with Playwright
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.12.0...v0.13.0|v0.13.0 - 01.01.2022]]
|
|
||||||
** [[https://github.com/jedie/PyInventory/pull/83|Update requirements, e.g.: Django v3.2]]
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.11.0...v0.12.0|v0.12.0 - 22.11.2021]]
|
|
||||||
** NEW: [[https://github.com/jedie/PyInventory/pull/78|Protect user to overwrite newer Item/Memo/Location with a older one (e.g.: in other browser TAB)]]
|
|
||||||
** update requirements
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.10.1...v0.11.0|v0.11.0 - 09.10.2021]]
|
|
||||||
** NEW: Memo model/admin: Store Information (incl. images/files/links) independent of items/locations
|
|
||||||
** Bugfix CKEditor sizes and fix toolbar (e.g.: remove useless pdf generator button and add sourcecode function)
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.10.0...v0.10.1|v0.10.1 - 09.10.2021]]
|
|
||||||
** Update to Django 3.1.x
|
|
||||||
** Don't make requests to the a name for a Link, if we already have one or if last request was not long ago.
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.9.4...v0.10.0|v0.10.0 - 29.09.2021]]
|
|
||||||
** Group item: default "automatic" mode and can be disabled by filter action
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.9.3...v0.9.4|v0.9.4 - 15.09.2021]]
|
|
||||||
** Pin {{{psycopg < 2.9}}} because of https://github.com/psycopg/psycopg2/issues/1293
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.9.2...v0.9.3|v0.9.3 - 15.09.2021]]
|
|
||||||
** Optimize "items" changelist queries
|
|
||||||
** Update requirements
|
|
||||||
** Expand {{{run_testserver}}} command and recognize address and port argument
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.9.1...v0.9.2|v0.9.2 - 11.05.2021]]
|
|
||||||
** Update requirements
|
|
||||||
** [[https://github.com/jedie/PyInventory/issues/50|Fix error handling if item link is broken]]
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.9.0...v0.9.1|v0.9.1 - 28.04.2021]]
|
|
||||||
* NEW: Besides images, it's now possible to add file(s) to items, too.
|
|
||||||
* Add a auto login if Django dev. server is used.
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.8.4...v0.9.0|v0.9.0 - 11.04.2021]]
|
|
||||||
** Use https://github.com/jedie/dev-shell for development
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.8.3...v0.8.4|v0.8.4 - 19.01.2021]]
|
|
||||||
** Search items in change list by "kind" and "tags", too
|
|
||||||
** update requirements
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.8.2...v0.8.3|v0.8.3 - 29.12.2020]]
|
|
||||||
** update requirements
|
|
||||||
** remove colorama from direct dependencies
|
|
||||||
** Small project setup changes
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.8.1...v0.8.2|v0.8.2 - 20.12.2020]]
|
|
||||||
** Bugfix [[https://github.com/jedie/PyInventory/issues/33|#33]]: Upload images to new created Items
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.8.0...v0.8.1|v0.8.1 - 09.12.2020]]
|
|
||||||
** Fix migration: Don't create "/media/migrate.log" if there is nothing to migrate
|
|
||||||
** Fix admin redirect by using the url pattern name
|
|
||||||
** YunoHost app package created
|
|
||||||
** update requirements
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.7.0...v0.8.0|v0.8.0 - 06.12.2020]]
|
|
||||||
** Outsource the "MEDIA file serve" part into [[https://github.com/jedie/django-tools/tree/master/django_tools/serve_media_app#readme|django.tools.serve_media_app]]
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.6.0...v0.7.0|v0.7.0 - 23.11.2020]]
|
|
||||||
** Change deployment setup:
|
|
||||||
*** Replace uwsgi with gunicorn
|
|
||||||
*** make deploy setup more generic by renaming "inventory" to "django"
|
|
||||||
*** Bugfix MEDIA path: store the files on a docker volumes
|
|
||||||
*** run app server as normal user and not root
|
|
||||||
*** pull all docker images before build
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.5.0...v0.6.0|v0.6.0 - 15.11.2020]]
|
|
||||||
** User can store images to every item: The image can only be accessed by the same user.
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.4.2...v0.5.0|v0.5.0 - 14.11.2020]]
|
|
||||||
** Merge separate git branches into one: "/src/" and "/development/" [[https://github.com/jedie/PyInventory/issues/19|#19]]
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.4.1...v0.4.2|v0.4.2 - 13.11.2020]]
|
|
||||||
** Serve static files by Caddy
|
|
||||||
** Setup CKEditor file uploads: Store files into random sub directory
|
|
||||||
** reduce CKEditor plugins
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.4.0...v0.4.1|v0.4.1 - 2.11.2020]]
|
|
||||||
** Small bugfixes
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.3.2...v0.4.0|v0.4.0 - 1.11.2020]]
|
|
||||||
** Move docker stuff and production use information into separate git branch
|
|
||||||
** Add django-axes: keeping track of suspicious logins and brute-force attack blocking
|
|
||||||
** Add django-processinfo: collect information about the running server processes
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.3.0...v0.3.2|v0.3.2 - 26.10.2020]]
|
|
||||||
** Bugfix missing translations
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.2.0...v0.3.0|v0.3.0 - 26.10.2020]]
|
|
||||||
** setup production usage:
|
|
||||||
*** Use [[https://caddyserver.com/|caddy server]] as reverse proxy
|
|
||||||
*** Use uWSGI as application server
|
|
||||||
*** autogenerate {{{secret.txt}}} file for {{{settings.SECRET_KEY}}}
|
|
||||||
*** Fix settings
|
|
||||||
** split settings for local development and production use
|
|
||||||
** Bugfix init: move "setup user group" from checks into "post migrate" signal handler
|
|
||||||
** Bugfix for using manage commands {{{dumpdata}}} and {{{loaddata}}}
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.1.0...v0.2.0|v0.2.0 - 24.10.2020]]
|
|
||||||
** Simplify item change list by nested item
|
|
||||||
** Activate Django-Import/Export
|
|
||||||
** Implement multi user usage
|
|
||||||
** Add Django-dbbackup
|
|
||||||
** Add docker-compose usage
|
|
||||||
* [[https://github.com/jedie/PyInventory/compare/v0.0.1...v0.1.0|v0.1.0 - 17.10.2020]]
|
|
||||||
** Enhance models, admin and finish project setup
|
|
||||||
* v0.0.1 - 14.10.2020
|
|
||||||
** Just create a pre-alpha release to save the PyPi package name ;)
|
|
||||||
|
|
||||||
|
|
||||||
== links ==
|
|
||||||
|
|
||||||
| Homepage | http://github.com/jedie/PyInventory
|
|
||||||
| PyPi | https://pypi.org/project/PyInventory/
|
|
||||||
|
|
||||||
Discuss here:
|
|
||||||
|
|
||||||
* [[https://www.vogons.org/viewtopic.php?f=5&t=77285|vogons.org Forum Thread (en)]]
|
|
||||||
* [[https://www.python-forum.de/viewtopic.php?f=9&t=50024|Python-Forum (de)]]
|
|
||||||
* [[https://forum.classic-computing.de/forum/index.php?thread/21738-opensource-projekt-pyinventory-web-basierte-verwaltung-um-seine-dinge-zu-katalog/|VzEkC e. V. Forum Thread (de)]]
|
|
||||||
* [[https://dosreloaded.de/forum/index.php?thread/3702-pyinventory-retro-sammlung-katalogisieren/|dosreloaded.de Forum Thread (de)]]
|
|
||||||
|
|
||||||
== donation ==
|
|
||||||
|
|
||||||
* [[https://www.paypal.me/JensDiemer|paypal.me/JensDiemer]]
|
|
||||||
* [[https://flattr.com/submit/auto?uid=jedie&url=https%3A%2F%2Fgithub.com%2Fjedie%2FPyInventory%2F|Flattr This!]]
|
|
||||||
* Send [[http://www.bitcoin.org/|Bitcoins]] to [[https://blockexplorer.com/address/1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F|1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F]]
|
|
|
@ -0,0 +1,304 @@
|
||||||
|
# PyInventory
|
||||||
|
|
||||||
|
Web based management to catalog things including state and location etc. using Python/Django.
|
||||||
|
Store information in WYSIWYG-HTML-Editor field and tag them and add Files, Images and Links to them.
|
||||||
|
|
||||||
|
[](https://github.com/jedie/PyInventory/actions/workflows/ci.yml)
|
||||||
|
[](https://codecov.io/gh/jedie/PyInventory)
|
||||||
|
[](https://pypi.org/project/PyInventory/)
|
||||||
|
[](https://github.com/jedie/PyInventory/blob/main/pyproject.toml)
|
||||||
|
[](https://github.com/jedie/PyInventory/blob/main/LICENSE)
|
||||||
|
|
||||||
|
[](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)
|
||||||
|
* administration a wish & exchange list
|
||||||
|
|
||||||
|
any many more... ;)
|
||||||
|
|
||||||
|
## Project structure
|
||||||
|
|
||||||
|
There are two main directories:
|
||||||
|
|
||||||
|
| directory | description |
|
||||||
|
| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- |
|
||||||
|
| **[/src/](https://github.com/jedie/PyInventory/tree/main/src)** | The main PyInventory source code |
|
||||||
|
| **[/deployment/](https://github.com/jedie/PyInventory/tree/main/deployment)** | deploy PyInventory for production use case (**[DEPRECATED!](https://github.com/jedie/PyInventory/issues/81)**) |
|
||||||
|
|
||||||
|
## install
|
||||||
|
|
||||||
|
There exists these kind of installation/usage:
|
||||||
|
|
||||||
|
|
||||||
|
* local development installation using poetry
|
||||||
|
* production use with docker-compose on a root server (**[DEPRECATED!](https://github.com/jedie/PyInventory/issues/81)**)
|
||||||
|
* Install as [YunoHost](https://yunohost.org) App via [pyinventory_ynh](https://github.com/YunoHost-Apps/pyinventory_ynh)
|
||||||
|
|
||||||
|
This README contains only the information about local development installation.
|
||||||
|
|
||||||
|
Read [/deployment/README](https://github.com/jedie/PyInventory/tree/main/deployment#readme) for instruction to install PyInventory on a root server.
|
||||||
|
|
||||||
|
### local development installation
|
||||||
|
|
||||||
|
e.g.:
|
||||||
|
```
|
||||||
|
# Clone project (Use your fork SSH url!):
|
||||||
|
~$ git clone https://github.com/jedie/PyInventory.git
|
||||||
|
~$ cd PyInventory
|
||||||
|
~/PyInventory$ ./devshell.py
|
||||||
|
```
|
||||||
|
|
||||||
|
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
|
||||||
|
```
|
||||||
|
|
||||||
|
### local docker dev run
|
||||||
|
|
||||||
|
You can run the deployment docker containers with current source code with:
|
||||||
|
```
|
||||||
|
~/PyInventory$ make run-docker-dev-server
|
||||||
|
```
|
||||||
|
|
||||||
|
Just hit Cntl-C to stop the containers
|
||||||
|
|
||||||
|
The web page is available via: `https://localhost/`
|
||||||
|
|
||||||
|
## 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)
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
|
## Multi user support
|
||||||
|
|
||||||
|
PyInventory supports multiple users. The idea:
|
||||||
|
|
||||||
|
|
||||||
|
* 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.:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
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!
|
||||||
|
|
||||||
|
e.g.:
|
||||||
|
```
|
||||||
|
~/PyInventory/deployment$ make shell_inventory
|
||||||
|
root@inventory:/django# cp -Rfv /media/ /django_volumes/media/
|
||||||
|
```
|
||||||
|
|
||||||
|
The files are stored locally here:
|
||||||
|
```
|
||||||
|
~/PyInventory/deployment$ ls -la volumes/django/media/
|
||||||
|
```
|
||||||
|
|
||||||
|
Now, update the containers and copy the files back.
|
||||||
|
|
||||||
|
### v0.5.0
|
||||||
|
|
||||||
|
Git branches "main" and "deployment" was merged into one.
|
||||||
|
Files are separated into: "/src/" and "/development/"
|
||||||
|
|
||||||
|
## history
|
||||||
|
|
||||||
|
|
||||||
|
* [compare v0.15.0...main](https://github.com/jedie/PyInventory/compare/v0.15.0...main)**dev**
|
||||||
|
* tbc
|
||||||
|
* [v0.15.0 - 19.08.2022](https://github.com/jedie/PyInventory/compare/v0.14.0...v0.15.0)
|
||||||
|
* Speedup item change list by prefetch "location"
|
||||||
|
* Better changelists for super users
|
||||||
|
* Add `./devsetup.py manage seed_data` command to fill the database for development
|
||||||
|
* Update requirements
|
||||||
|
* Update project setup
|
||||||
|
* [v0.14.0 - 24.07.2022](https://github.com/jedie/PyInventory/compare/v0.13.1...v0.14.0)
|
||||||
|
* [Fix #102](https://github.com/jedie/PyInventory/issues/102) by remove limitation of item parents.
|
||||||
|
* Remove "Group Items" functionality
|
||||||
|
* Replace "Group Items" change list filter by "Limit tree depth" for Item and Location.
|
||||||
|
* Display Item and Location as a tree.
|
||||||
|
* [v0.13.1 - 21.07.2022](https://github.com/jedie/PyInventory/compare/v0.13.0...v0.13.1)
|
||||||
|
* Rename git "master" branch into "main"
|
||||||
|
* Update CI/Test setup:
|
||||||
|
* Use darker and pytest-darker as code formatter
|
||||||
|
* Run tests with Python 3.10, too and update requirements
|
||||||
|
* Replace Selenium tests with Playwright
|
||||||
|
* [v0.13.0 - 01.01.2022](https://github.com/jedie/PyInventory/compare/v0.12.0...v0.13.0)
|
||||||
|
* [Update requirements, e.g.: Django v3.2](https://github.com/jedie/PyInventory/pull/83)
|
||||||
|
* [v0.12.0 - 22.11.2021](https://github.com/jedie/PyInventory/compare/v0.11.0...v0.12.0)
|
||||||
|
* 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)
|
||||||
|
* update requirements
|
||||||
|
* [v0.11.0 - 09.10.2021](https://github.com/jedie/PyInventory/compare/v0.10.1...v0.11.0)
|
||||||
|
* NEW: Memo model/admin: Store Information (incl. images/files/links) independent of items/locations
|
||||||
|
* Bugfix CKEditor sizes and fix toolbar (e.g.: remove useless pdf generator button and add sourcecode function)
|
||||||
|
* [v0.10.1 - 09.10.2021](https://github.com/jedie/PyInventory/compare/v0.10.0...v0.10.1)
|
||||||
|
* Update to Django 3.1.x
|
||||||
|
* Don't make requests to the a name for a Link, if we already have one or if last request was not long ago.
|
||||||
|
* [v0.10.0 - 29.09.2021](https://github.com/jedie/PyInventory/compare/v0.9.4...v0.10.0)
|
||||||
|
* Group item: default "automatic" mode and can be disabled by filter action
|
||||||
|
* [v0.9.4 - 15.09.2021](https://github.com/jedie/PyInventory/compare/v0.9.3...v0.9.4)
|
||||||
|
* Pin `psycopg < 2.9` because of [https://github.com/psycopg/psycopg2/issues/1293](https://github.com/psycopg/psycopg2/issues/1293)
|
||||||
|
* [v0.9.3 - 15.09.2021](https://github.com/jedie/PyInventory/compare/v0.9.2...v0.9.3)
|
||||||
|
* Optimize "items" changelist queries
|
||||||
|
* Update requirements
|
||||||
|
* Expand `run_testserver` command and recognize address and port argument
|
||||||
|
* [v0.9.2 - 11.05.2021](https://github.com/jedie/PyInventory/compare/v0.9.1...v0.9.2)
|
||||||
|
* Update requirements
|
||||||
|
* [Fix error handling if item link is broken](https://github.com/jedie/PyInventory/issues/50)
|
||||||
|
* [v0.9.1 - 28.04.2021](https://github.com/jedie/PyInventory/compare/v0.9.0...v0.9.1)
|
||||||
|
* NEW: Besides images, it's now possible to add file(s) to items, too.
|
||||||
|
* Add a auto login if Django dev. server is used.
|
||||||
|
* [v0.9.0 - 11.04.2021](https://github.com/jedie/PyInventory/compare/v0.8.4...v0.9.0)
|
||||||
|
* Use [https://github.com/jedie/dev-shell](https://github.com/jedie/dev-shell) for development
|
||||||
|
* [v0.8.4 - 19.01.2021](https://github.com/jedie/PyInventory/compare/v0.8.3...v0.8.4)
|
||||||
|
* Search items in change list by "kind" and "tags", too
|
||||||
|
* update requirements
|
||||||
|
* [v0.8.3 - 29.12.2020](https://github.com/jedie/PyInventory/compare/v0.8.2...v0.8.3)
|
||||||
|
* update requirements
|
||||||
|
* remove colorama from direct dependencies
|
||||||
|
* Small project setup changes
|
||||||
|
* [v0.8.2 - 20.12.2020](https://github.com/jedie/PyInventory/compare/v0.8.1...v0.8.2)
|
||||||
|
* Bugfix [#33](https://github.com/jedie/PyInventory/issues/33): Upload images to new created Items
|
||||||
|
* [v0.8.1 - 09.12.2020](https://github.com/jedie/PyInventory/compare/v0.8.0...v0.8.1)
|
||||||
|
* Fix migration: Don't create "/media/migrate.log" if there is nothing to migrate
|
||||||
|
* Fix admin redirect by using the url pattern name
|
||||||
|
* YunoHost app package created
|
||||||
|
* update requirements
|
||||||
|
* [v0.8.0 - 06.12.2020](https://github.com/jedie/PyInventory/compare/v0.7.0...v0.8.0)
|
||||||
|
* 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)
|
||||||
|
* [v0.7.0 - 23.11.2020](https://github.com/jedie/PyInventory/compare/v0.6.0...v0.7.0)
|
||||||
|
* Change deployment setup:
|
||||||
|
* Replace uwsgi with gunicorn
|
||||||
|
* make deploy setup more generic by renaming "inventory" to "django"
|
||||||
|
* Bugfix MEDIA path: store the files on a docker volumes
|
||||||
|
* run app server as normal user and not root
|
||||||
|
* pull all docker images before build
|
||||||
|
* [v0.6.0 - 15.11.2020](https://github.com/jedie/PyInventory/compare/v0.5.0...v0.6.0)
|
||||||
|
* User can store images to every item: The image can only be accessed by the same user.
|
||||||
|
* [v0.5.0 - 14.11.2020](https://github.com/jedie/PyInventory/compare/v0.4.2...v0.5.0)
|
||||||
|
* Merge separate git branches into one: "/src/" and "/development/" [#19](https://github.com/jedie/PyInventory/issues/19)
|
||||||
|
* [v0.4.2 - 13.11.2020](https://github.com/jedie/PyInventory/compare/v0.4.1...v0.4.2)
|
||||||
|
* Serve static files by Caddy
|
||||||
|
* Setup CKEditor file uploads: Store files into random sub directory
|
||||||
|
* reduce CKEditor plugins
|
||||||
|
* [v0.4.1 - 2.11.2020](https://github.com/jedie/PyInventory/compare/v0.4.0...v0.4.1)
|
||||||
|
* Small bugfixes
|
||||||
|
* [v0.4.0 - 1.11.2020](https://github.com/jedie/PyInventory/compare/v0.3.2...v0.4.0)
|
||||||
|
* Move docker stuff and production use information into separate git branch
|
||||||
|
* Add django-axes: keeping track of suspicious logins and brute-force attack blocking
|
||||||
|
* Add django-processinfo: collect information about the running server processes
|
||||||
|
* [v0.3.2 - 26.10.2020](https://github.com/jedie/PyInventory/compare/v0.3.0...v0.3.2)
|
||||||
|
* Bugfix missing translations
|
||||||
|
* [v0.3.0 - 26.10.2020](https://github.com/jedie/PyInventory/compare/v0.2.0...v0.3.0)
|
||||||
|
* setup production usage:
|
||||||
|
* Use [caddy server](https://caddyserver.com/) as reverse proxy
|
||||||
|
* Use uWSGI as application server
|
||||||
|
* autogenerate `secret.txt` file for `settings.SECRET_KEY`
|
||||||
|
* Fix settings
|
||||||
|
* split settings for local development and production use
|
||||||
|
* Bugfix init: move "setup user group" from checks into "post migrate" signal handler
|
||||||
|
* Bugfix for using manage commands `dumpdata` and `loaddata`
|
||||||
|
* [v0.2.0 - 24.10.2020](https://github.com/jedie/PyInventory/compare/v0.1.0...v0.2.0)
|
||||||
|
* Simplify item change list by nested item
|
||||||
|
* Activate Django-Import/Export
|
||||||
|
* Implement multi user usage
|
||||||
|
* Add Django-dbbackup
|
||||||
|
* Add docker-compose usage
|
||||||
|
* [v0.1.0 - 17.10.2020](https://github.com/jedie/PyInventory/compare/v0.0.1...v0.1.0)
|
||||||
|
* Enhance models, admin and finish project setup
|
||||||
|
* v0.0.1 - 14.10.2020
|
||||||
|
* Just create a pre-alpha release to save the PyPi package name ;)
|
||||||
|
|
||||||
|
## links
|
||||||
|
|
||||||
|
| Homepage | [http://github.com/jedie/PyInventory](http://github.com/jedie/PyInventory) |
|
||||||
|
| PyPi | [https://pypi.org/project/PyInventory/](https://pypi.org/project/PyInventory/) |
|
||||||
|
|
||||||
|
Discuss here:
|
||||||
|
|
||||||
|
|
||||||
|
* [vogons.org Forum Thread (en)](https://www.vogons.org/viewtopic.php?f=5&t=77285)
|
||||||
|
* [Python-Forum (de)](https://www.python-forum.de/viewtopic.php?f=9&t=50024)
|
||||||
|
* [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/)
|
||||||
|
|
||||||
|
## donation
|
||||||
|
|
||||||
|
|
||||||
|
* [paypal.me/JensDiemer](https://www.paypal.me/JensDiemer)
|
||||||
|
* [Flattr This!](https://flattr.com/submit/auto?uid=jedie&url=https%3A%2F%2Fgithub.com%2Fjedie%2FPyInventory%2F)
|
||||||
|
* Send [Bitcoins](http://www.bitcoin.org/) to [1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F](https://blockexplorer.com/address/1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F)
|
487
README.rst
487
README.rst
|
@ -1,487 +0,0 @@
|
||||||
===========
|
|
||||||
PyInventory
|
|
||||||
===========
|
|
||||||
|
|
||||||
Web based management to catalog things including state and location etc. using Python/Django.
|
|
||||||
Store information in WYSIWYG-HTML-Editor field and tag them and add Files, Images and Links to them.
|
|
||||||
|
|
||||||
Pull requests welcome!
|
|
||||||
|
|
||||||
+---------------------------------+-----------------------------------------+
|
|
||||||
| |Build Status on github| | `github.com/jedie/PyInventory/actions`_ |
|
|
||||||
+---------------------------------+-----------------------------------------+
|
|
||||||
| |Coverage Status on codecov.io| | `codecov.io/gh/jedie/PyInventory`_ |
|
|
||||||
+---------------------------------+-----------------------------------------+
|
|
||||||
|
|
||||||
.. |Build Status on github| image:: https://github.com/jedie/PyInventory/workflows/test/badge.svg?branch=main
|
|
||||||
.. _github.com/jedie/PyInventory/actions: https://github.com/jedie/PyInventory/actions
|
|
||||||
.. |Coverage Status on codecov.io| image:: https://codecov.io/gh/jedie/PyInventory/branch/main/graph/badge.svg
|
|
||||||
.. _codecov.io/gh/jedie/PyInventory: https://codecov.io/gh/jedie/PyInventory
|
|
||||||
|
|
||||||
`Install PyInventory with YunoHost <https://install-app.yunohost.org/?app=pyinventory>`_.
|
|
||||||
If you don't have YunoHost, please consult `the guide <https://yunohost.org/#/install>`_ to learn how to install it.
|
|
||||||
|
|
||||||
-----
|
|
||||||
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)
|
|
||||||
|
|
||||||
* administration a wish & exchange list
|
|
||||||
|
|
||||||
any many more... ;)
|
|
||||||
|
|
||||||
-----------------
|
|
||||||
Project structure
|
|
||||||
-----------------
|
|
||||||
|
|
||||||
There are two main directories:
|
|
||||||
|
|
||||||
+---------------------+-----------------------------------------------------------------+
|
|
||||||
| directory | description |
|
|
||||||
+=====================+=================================================================+
|
|
||||||
| **`/src/`_** | The main PyInventory source code |
|
|
||||||
+---------------------+-----------------------------------------------------------------+
|
|
||||||
| **`/deployment/`_** | deploy PyInventory for production use case (**`DEPRECATED!`_**) |
|
|
||||||
+---------------------+-----------------------------------------------------------------+
|
|
||||||
|
|
||||||
.. _/src/: https://github.com/jedie/PyInventory/tree/main/src
|
|
||||||
.. _/deployment/: https://github.com/jedie/PyInventory/tree/main/deployment
|
|
||||||
.. _DEPRECATED!: https://github.com/jedie/PyInventory/issues/81
|
|
||||||
|
|
||||||
-------
|
|
||||||
install
|
|
||||||
-------
|
|
||||||
|
|
||||||
There exists these kind of installation/usage:
|
|
||||||
|
|
||||||
* local development installation using poetry
|
|
||||||
|
|
||||||
* production use with docker-compose on a root server (**`DEPRECATED!`_**)
|
|
||||||
|
|
||||||
* Install as `YunoHost <https://yunohost.org>`_ App via `pyinventory_ynh <https://github.com/YunoHost-Apps/pyinventory_ynh>`_
|
|
||||||
|
|
||||||
This README contains only the information about local development installation.
|
|
||||||
|
|
||||||
Read `/deployment/README <https://github.com/jedie/PyInventory/tree/main/deployment#readme>`_ for instruction to install PyInventory on a root server.
|
|
||||||
|
|
||||||
local development installation
|
|
||||||
==============================
|
|
||||||
|
|
||||||
e.g.:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
# Clone project (Use your fork SSH url!):
|
|
||||||
~$ git clone https://github.com/jedie/PyInventory.git
|
|
||||||
~$ cd PyInventory
|
|
||||||
~/PyInventory$ ./devshell.py
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
local docker dev run
|
|
||||||
====================
|
|
||||||
|
|
||||||
You can run the deployment docker containers with current source code with:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
~/PyInventory$ make run-docker-dev-server
|
|
||||||
|
|
||||||
Just hit Cntl-C to stop the containers
|
|
||||||
|
|
||||||
The web page is available via: ``https://localhost/``
|
|
||||||
|
|
||||||
-----------
|
|
||||||
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>`_
|
|
||||||
|
|
||||||
|PyInventory v0.2.0 screenshot 1.png|
|
|
||||||
|
|
||||||
.. |PyInventory v0.2.0 screenshot 1.png| image:: https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory v0.2.0 screenshot 1.png
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
|PyInventory v0.11.0 screenshot memo 1.png|
|
|
||||||
|
|
||||||
.. |PyInventory v0.11.0 screenshot memo 1.png| image:: https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory v0.11.0 screenshot memo 1.png
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
|PyInventory v0.1.0 screenshot 2.png|
|
|
||||||
|
|
||||||
.. |PyInventory v0.1.0 screenshot 2.png| image:: https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory v0.1.0 screenshot 2.png
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
|PyInventory v0.1.0 screenshot 3.png|
|
|
||||||
|
|
||||||
.. |PyInventory v0.1.0 screenshot 3.png| image:: https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory v0.1.0 screenshot 3.png
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
------------------
|
|
||||||
Multi user support
|
|
||||||
------------------
|
|
||||||
|
|
||||||
PyInventory supports multiple users. The idea:
|
|
||||||
|
|
||||||
* 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|
|
|
||||||
|
|
||||||
.. |normal user example| image:: https://raw.githubusercontent.com/jedie/jedie.github.io/master/screenshots/PyInventory/PyInventory normal user example.png
|
|
||||||
|
|
||||||
More screenshots are here: `jedie.github.io/tree/master/screenshots/PyInventory`_
|
|
||||||
|
|
||||||
------------------------------
|
|
||||||
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!
|
|
||||||
|
|
||||||
e.g.:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
~/PyInventory/deployment$ make shell_inventory
|
|
||||||
root@inventory:/django# cp -Rfv /media/ /django_volumes/media/
|
|
||||||
|
|
||||||
The files are stored locally here:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
~/PyInventory/deployment$ ls -la volumes/django/media/
|
|
||||||
|
|
||||||
Now, update the containers and copy the files back.
|
|
||||||
|
|
||||||
v0.5.0
|
|
||||||
======
|
|
||||||
|
|
||||||
Git branches "main" and "deployment" was merged into one.
|
|
||||||
Files are separated into: "/src/" and "/development/"
|
|
||||||
|
|
||||||
-------
|
|
||||||
history
|
|
||||||
-------
|
|
||||||
|
|
||||||
* `compare v0.15.0...main <https://github.com/jedie/PyInventory/compare/v0.15.0...main>`_ **dev**
|
|
||||||
|
|
||||||
* tbc
|
|
||||||
|
|
||||||
* `v0.15.0 - 19.08.2022 <https://github.com/jedie/PyInventory/compare/v0.14.0...v0.15.0>`_
|
|
||||||
|
|
||||||
* Speedup item change list by prefetch "location"
|
|
||||||
|
|
||||||
* Better changelists for super users
|
|
||||||
|
|
||||||
* Add ``./devsetup.py manage seed_data`` command to fill the database for development
|
|
||||||
|
|
||||||
* Update requirements
|
|
||||||
|
|
||||||
* Update project setup
|
|
||||||
|
|
||||||
* `v0.14.0 - 24.07.2022 <https://github.com/jedie/PyInventory/compare/v0.13.1...v0.14.0>`_
|
|
||||||
|
|
||||||
* `Fix #102 <https://github.com/jedie/PyInventory/issues/102>`_ by remove limitation of item parents.
|
|
||||||
|
|
||||||
* Remove "Group Items" functionality
|
|
||||||
|
|
||||||
* Replace "Group Items" change list filter by "Limit tree depth" for Item and Location.
|
|
||||||
|
|
||||||
* Display Item and Location as a tree.
|
|
||||||
|
|
||||||
* `v0.13.1 - 21.07.2022 <https://github.com/jedie/PyInventory/compare/v0.13.0...v0.13.1>`_
|
|
||||||
|
|
||||||
* Rename git "master" branch into "main"
|
|
||||||
|
|
||||||
* Update CI/Test setup:
|
|
||||||
|
|
||||||
* Use darker and pytest-darker as code formatter
|
|
||||||
|
|
||||||
* Run tests with Python 3.10, too and update requirements
|
|
||||||
|
|
||||||
* Replace Selenium tests with Playwright
|
|
||||||
|
|
||||||
* `v0.13.0 - 01.01.2022 <https://github.com/jedie/PyInventory/compare/v0.12.0...v0.13.0>`_
|
|
||||||
|
|
||||||
* `Update requirements, e.g.: Django v3.2 <https://github.com/jedie/PyInventory/pull/83>`_
|
|
||||||
|
|
||||||
* `v0.12.0 - 22.11.2021 <https://github.com/jedie/PyInventory/compare/v0.11.0...v0.12.0>`_
|
|
||||||
|
|
||||||
* 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>`_
|
|
||||||
|
|
||||||
* update requirements
|
|
||||||
|
|
||||||
* `v0.11.0 - 09.10.2021 <https://github.com/jedie/PyInventory/compare/v0.10.1...v0.11.0>`_
|
|
||||||
|
|
||||||
* NEW: Memo model/admin: Store Information (incl. images/files/links) independent of items/locations
|
|
||||||
|
|
||||||
* Bugfix CKEditor sizes and fix toolbar (e.g.: remove useless pdf generator button and add sourcecode function)
|
|
||||||
|
|
||||||
* `v0.10.1 - 09.10.2021 <https://github.com/jedie/PyInventory/compare/v0.10.0...v0.10.1>`_
|
|
||||||
|
|
||||||
* Update to Django 3.1.x
|
|
||||||
|
|
||||||
* Don't make requests to the a name for a Link, if we already have one or if last request was not long ago.
|
|
||||||
|
|
||||||
* `v0.10.0 - 29.09.2021 <https://github.com/jedie/PyInventory/compare/v0.9.4...v0.10.0>`_
|
|
||||||
|
|
||||||
* Group item: default "automatic" mode and can be disabled by filter action
|
|
||||||
|
|
||||||
* `v0.9.4 - 15.09.2021 <https://github.com/jedie/PyInventory/compare/v0.9.3...v0.9.4>`_
|
|
||||||
|
|
||||||
* Pin ``psycopg < 2.9`` because of `https://github.com/psycopg/psycopg2/issues/1293 <https://github.com/psycopg/psycopg2/issues/1293>`_
|
|
||||||
|
|
||||||
* `v0.9.3 - 15.09.2021 <https://github.com/jedie/PyInventory/compare/v0.9.2...v0.9.3>`_
|
|
||||||
|
|
||||||
* Optimize "items" changelist queries
|
|
||||||
|
|
||||||
* Update requirements
|
|
||||||
|
|
||||||
* Expand ``run_testserver`` command and recognize address and port argument
|
|
||||||
|
|
||||||
* `v0.9.2 - 11.05.2021 <https://github.com/jedie/PyInventory/compare/v0.9.1...v0.9.2>`_
|
|
||||||
|
|
||||||
* Update requirements
|
|
||||||
|
|
||||||
* `Fix error handling if item link is broken <https://github.com/jedie/PyInventory/issues/50>`_
|
|
||||||
|
|
||||||
* `v0.9.1 - 28.04.2021 <https://github.com/jedie/PyInventory/compare/v0.9.0...v0.9.1>`_
|
|
||||||
|
|
||||||
* NEW: Besides images, it's now possible to add file(s) to items, too.
|
|
||||||
|
|
||||||
* Add a auto login if Django dev. server is used.
|
|
||||||
|
|
||||||
* `v0.9.0 - 11.04.2021 <https://github.com/jedie/PyInventory/compare/v0.8.4...v0.9.0>`_
|
|
||||||
|
|
||||||
* Use `https://github.com/jedie/dev-shell <https://github.com/jedie/dev-shell>`_ for development
|
|
||||||
|
|
||||||
* `v0.8.4 - 19.01.2021 <https://github.com/jedie/PyInventory/compare/v0.8.3...v0.8.4>`_
|
|
||||||
|
|
||||||
* Search items in change list by "kind" and "tags", too
|
|
||||||
|
|
||||||
* update requirements
|
|
||||||
|
|
||||||
* `v0.8.3 - 29.12.2020 <https://github.com/jedie/PyInventory/compare/v0.8.2...v0.8.3>`_
|
|
||||||
|
|
||||||
* update requirements
|
|
||||||
|
|
||||||
* remove colorama from direct dependencies
|
|
||||||
|
|
||||||
* Small project setup changes
|
|
||||||
|
|
||||||
* `v0.8.2 - 20.12.2020 <https://github.com/jedie/PyInventory/compare/v0.8.1...v0.8.2>`_
|
|
||||||
|
|
||||||
* Bugfix `#33 <https://github.com/jedie/PyInventory/issues/33>`_: Upload images to new created Items
|
|
||||||
|
|
||||||
* `v0.8.1 - 09.12.2020 <https://github.com/jedie/PyInventory/compare/v0.8.0...v0.8.1>`_
|
|
||||||
|
|
||||||
* Fix migration: Don't create "/media/migrate.log" if there is nothing to migrate
|
|
||||||
|
|
||||||
* Fix admin redirect by using the url pattern name
|
|
||||||
|
|
||||||
* YunoHost app package created
|
|
||||||
|
|
||||||
* update requirements
|
|
||||||
|
|
||||||
* `v0.8.0 - 06.12.2020 <https://github.com/jedie/PyInventory/compare/v0.7.0...v0.8.0>`_
|
|
||||||
|
|
||||||
* 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>`_
|
|
||||||
|
|
||||||
* `v0.7.0 - 23.11.2020 <https://github.com/jedie/PyInventory/compare/v0.6.0...v0.7.0>`_
|
|
||||||
|
|
||||||
* Change deployment setup:
|
|
||||||
|
|
||||||
* Replace uwsgi with gunicorn
|
|
||||||
|
|
||||||
* make deploy setup more generic by renaming "inventory" to "django"
|
|
||||||
|
|
||||||
* Bugfix MEDIA path: store the files on a docker volumes
|
|
||||||
|
|
||||||
* run app server as normal user and not root
|
|
||||||
|
|
||||||
* pull all docker images before build
|
|
||||||
|
|
||||||
* `v0.6.0 - 15.11.2020 <https://github.com/jedie/PyInventory/compare/v0.5.0...v0.6.0>`_
|
|
||||||
|
|
||||||
* User can store images to every item: The image can only be accessed by the same user.
|
|
||||||
|
|
||||||
* `v0.5.0 - 14.11.2020 <https://github.com/jedie/PyInventory/compare/v0.4.2...v0.5.0>`_
|
|
||||||
|
|
||||||
* Merge separate git branches into one: "/src/" and "/development/" `#19 <https://github.com/jedie/PyInventory/issues/19>`_
|
|
||||||
|
|
||||||
* `v0.4.2 - 13.11.2020 <https://github.com/jedie/PyInventory/compare/v0.4.1...v0.4.2>`_
|
|
||||||
|
|
||||||
* Serve static files by Caddy
|
|
||||||
|
|
||||||
* Setup CKEditor file uploads: Store files into random sub directory
|
|
||||||
|
|
||||||
* reduce CKEditor plugins
|
|
||||||
|
|
||||||
* `v0.4.1 - 2.11.2020 <https://github.com/jedie/PyInventory/compare/v0.4.0...v0.4.1>`_
|
|
||||||
|
|
||||||
* Small bugfixes
|
|
||||||
|
|
||||||
* `v0.4.0 - 1.11.2020 <https://github.com/jedie/PyInventory/compare/v0.3.2...v0.4.0>`_
|
|
||||||
|
|
||||||
* Move docker stuff and production use information into separate git branch
|
|
||||||
|
|
||||||
* Add django-axes: keeping track of suspicious logins and brute-force attack blocking
|
|
||||||
|
|
||||||
* Add django-processinfo: collect information about the running server processes
|
|
||||||
|
|
||||||
* `v0.3.2 - 26.10.2020 <https://github.com/jedie/PyInventory/compare/v0.3.0...v0.3.2>`_
|
|
||||||
|
|
||||||
* Bugfix missing translations
|
|
||||||
|
|
||||||
* `v0.3.0 - 26.10.2020 <https://github.com/jedie/PyInventory/compare/v0.2.0...v0.3.0>`_
|
|
||||||
|
|
||||||
* setup production usage:
|
|
||||||
|
|
||||||
* Use `caddy server <https://caddyserver.com/>`_ as reverse proxy
|
|
||||||
|
|
||||||
* Use uWSGI as application server
|
|
||||||
|
|
||||||
* autogenerate ``secret.txt`` file for ``settings.SECRET_KEY``
|
|
||||||
|
|
||||||
* Fix settings
|
|
||||||
|
|
||||||
* split settings for local development and production use
|
|
||||||
|
|
||||||
* Bugfix init: move "setup user group" from checks into "post migrate" signal handler
|
|
||||||
|
|
||||||
* Bugfix for using manage commands ``dumpdata`` and ``loaddata``
|
|
||||||
|
|
||||||
* `v0.2.0 - 24.10.2020 <https://github.com/jedie/PyInventory/compare/v0.1.0...v0.2.0>`_
|
|
||||||
|
|
||||||
* Simplify item change list by nested item
|
|
||||||
|
|
||||||
* Activate Django-Import/Export
|
|
||||||
|
|
||||||
* Implement multi user usage
|
|
||||||
|
|
||||||
* Add Django-dbbackup
|
|
||||||
|
|
||||||
* Add docker-compose usage
|
|
||||||
|
|
||||||
* `v0.1.0 - 17.10.2020 <https://github.com/jedie/PyInventory/compare/v0.0.1...v0.1.0>`_
|
|
||||||
|
|
||||||
* Enhance models, admin and finish project setup
|
|
||||||
|
|
||||||
* v0.0.1 - 14.10.2020
|
|
||||||
|
|
||||||
* Just create a pre-alpha release to save the PyPi package name ;)
|
|
||||||
|
|
||||||
-----
|
|
||||||
links
|
|
||||||
-----
|
|
||||||
|
|
||||||
+----------+------------------------------------------+
|
|
||||||
| Homepage | `http://github.com/jedie/PyInventory`_ |
|
|
||||||
+----------+------------------------------------------+
|
|
||||||
| PyPi | `https://pypi.org/project/PyInventory/`_ |
|
|
||||||
+----------+------------------------------------------+
|
|
||||||
|
|
||||||
.. _http://github.com/jedie/PyInventory: http://github.com/jedie/PyInventory
|
|
||||||
.. _https://pypi.org/project/PyInventory/: https://pypi.org/project/PyInventory/
|
|
||||||
|
|
||||||
Discuss here:
|
|
||||||
|
|
||||||
* `vogons.org Forum Thread (en) <https://www.vogons.org/viewtopic.php?f=5&t=77285>`_
|
|
||||||
|
|
||||||
* `Python-Forum (de) <https://www.python-forum.de/viewtopic.php?f=9&t=50024>`_
|
|
||||||
|
|
||||||
* `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/>`_
|
|
||||||
|
|
||||||
--------
|
|
||||||
donation
|
|
||||||
--------
|
|
||||||
|
|
||||||
* `paypal.me/JensDiemer <https://www.paypal.me/JensDiemer>`_
|
|
||||||
|
|
||||||
* `Flattr This! <https://flattr.com/submit/auto?uid=jedie&url=https%3A%2F%2Fgithub.com%2Fjedie%2FPyInventory%2F>`_
|
|
||||||
|
|
||||||
* Send `Bitcoins <http://www.bitcoin.org/>`_ to `1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F <https://blockexplorer.com/address/1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F>`_
|
|
||||||
|
|
||||||
------------
|
|
||||||
|
|
||||||
``Note: this file is generated from README.creole 2022-08-20 23:41:15 with "python-creole"``
|
|
|
@ -1654,7 +1654,7 @@ psycopg2-source = ["psycopg2"]
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "1.1"
|
lock-version = "1.1"
|
||||||
python-versions = ">=3.7,<4.0.0"
|
python-versions = ">=3.7,<4.0.0"
|
||||||
content-hash = "172f8d60024c52490428eae4c85589ff3d9ad3cf30df7f7b6b37f619960299f8"
|
content-hash = "9f37417bb67f86b455f8c32a8be518314b2347347412657004f039a43deca0a3"
|
||||||
|
|
||||||
[metadata.files]
|
[metadata.files]
|
||||||
asgiref = [
|
asgiref = [
|
||||||
|
|
|
@ -28,10 +28,8 @@ classifiers = [
|
||||||
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
|
"Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
|
||||||
"Operating System :: OS Independent",
|
"Operating System :: OS Independent",
|
||||||
]
|
]
|
||||||
include = ['AUTHORS', 'LICENSE', 'README.creole']
|
include = ['AUTHORS', 'LICENSE']
|
||||||
|
readme='README.md'
|
||||||
# Will be generated from README.creole with: 'poetry run update_rst_readme'
|
|
||||||
readme='README.rst'
|
|
||||||
|
|
||||||
# FIXME: Invalid value for project_urls. Error: Use valid URL.
|
# FIXME: Invalid value for project_urls. Error: Use valid URL.
|
||||||
#[tool.poetry.urls]
|
#[tool.poetry.urls]
|
||||||
|
@ -74,7 +72,6 @@ psycopg2-source = ["psycopg2"]
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
dev_shell = "*" # https://github.com/jedie/dev-shell
|
dev_shell = "*" # https://github.com/jedie/dev-shell
|
||||||
poetry-publish = "*" # https://github.com/jedie/poetry-publish
|
poetry-publish = "*" # https://github.com/jedie/poetry-publish
|
||||||
python-creole = "*" # https://github.com/jedie/python-creole
|
|
||||||
cmd2_ext_test = "*"
|
cmd2_ext_test = "*"
|
||||||
tox = "*"
|
tox = "*"
|
||||||
pytest = "*"
|
pytest = "*"
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from creole.setup_utils import update_rst_readme
|
|
||||||
from poetry_publish.publish import poetry_publish
|
from poetry_publish.publish import poetry_publish
|
||||||
from poetry_publish.utils.subprocess_utils import verbose_check_call
|
from poetry_publish.utils.subprocess_utils import verbose_check_call
|
||||||
|
|
||||||
|
@ -11,13 +10,6 @@ import inventory
|
||||||
PACKAGE_ROOT = Path(inventory.__file__).parent.parent.parent
|
PACKAGE_ROOT = Path(inventory.__file__).parent.parent.parent
|
||||||
|
|
||||||
|
|
||||||
def update_readme():
|
|
||||||
return update_rst_readme(
|
|
||||||
package_root=PACKAGE_ROOT,
|
|
||||||
filename='README.creole'
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def publish():
|
def publish():
|
||||||
"""
|
"""
|
||||||
Publish to PyPi
|
Publish to PyPi
|
||||||
|
@ -30,9 +22,4 @@ def publish():
|
||||||
poetry_publish(
|
poetry_publish(
|
||||||
package_root=PACKAGE_ROOT,
|
package_root=PACKAGE_ROOT,
|
||||||
version=inventory.__version__,
|
version=inventory.__version__,
|
||||||
creole_readme=True # don't publish if README.rst is not up-to-date
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
update_readme()
|
|
||||||
|
|
|
@ -3,7 +3,6 @@ import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from creole.setup_utils import update_rst_readme
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.core import checks
|
from django.core import checks
|
||||||
from django.core.cache import cache
|
from django.core.cache import cache
|
||||||
|
@ -35,13 +34,7 @@ def test_version(package_root=None, version=None):
|
||||||
version_string = f'v{version}'
|
version_string = f'v{version}'
|
||||||
|
|
||||||
assert_file_contains_string(
|
assert_file_contains_string(
|
||||||
file_path=Path(package_root, 'README.creole'),
|
file_path=Path(package_root, 'README.md'), string=version_string
|
||||||
string=version_string
|
|
||||||
)
|
|
||||||
|
|
||||||
assert_file_contains_string(
|
|
||||||
file_path=Path(package_root, 'README.rst'),
|
|
||||||
string=version_string
|
|
||||||
)
|
)
|
||||||
|
|
||||||
assert_file_contains_string(
|
assert_file_contains_string(
|
||||||
|
@ -72,17 +65,6 @@ def test_poetry_check(package_root=None):
|
||||||
assert output == 'All set!\n'
|
assert output == 'All set!\n'
|
||||||
|
|
||||||
|
|
||||||
def test_update_rst_readme(capsys):
|
|
||||||
rest_readme_path = update_rst_readme(
|
|
||||||
package_root=PACKAGE_ROOT, filename='README.creole'
|
|
||||||
)
|
|
||||||
captured = capsys.readouterr()
|
|
||||||
assert captured.out == 'Generate README.rst from README.creole...nothing changed, ok.\n'
|
|
||||||
assert captured.err == ''
|
|
||||||
assert isinstance(rest_readme_path, Path)
|
|
||||||
assert str(rest_readme_path).endswith('/README.rst')
|
|
||||||
|
|
||||||
|
|
||||||
class ProjectSettingsTestCase(TestCase):
|
class ProjectSettingsTestCase(TestCase):
|
||||||
def test_project_path(self):
|
def test_project_path(self):
|
||||||
project_path = settings.PROJECT_PATH
|
project_path = settings.PROJECT_PATH
|
||||||
|
|
Ładowanie…
Reference in New Issue