Highlight: better history and prices are also displayed without taxes.
- prices are now also displayed without taxes
- select a supplier
- select a month
- export selection to csv or txt
- a new input appeared at the top, in the navbar: we can search for any book, even put a new isbn, and we land on the card's presentation page. See https://framasphere.org/posts/2545242
Some pages were enhanced:
- enhanced Command view:
- sort suppliers by name
- show authors
- list the suppliers on the side
- button to toggle the covers (like in other pages)
- link to a supplier
- show prices without taxes, with or without discount
- the navbar (bar on top) displays the current user name and a dropdown to logout
- this dropdown menu also shows access to a first Preferences pages, where one can set:
- the value of the tax for books (VTA, french TVA)
- the default language for the interface
- the default place for the bookshop
- more to come !
- enhanced card view page. It now displays kinda three columns, with
- history information on the right: date of the last sell, number of sells since this date (not new)
- the quantity in stock is shown in red if negative (new), same for the quantity in deposits
- a little link to search for this card in a new tab with the framabee search engine (new)
- enhanced global deposits view: due date column, buttons in a button group, smaller header, links to cards, to the supplier, link to help
- when we search our stock, we can see the quantity in deposits and…
- export the result in txt
some annoyances were fixed:
- sometimes, a page would switch to english. This is now fixed.
- the graphs' legends of statistics are translated
- also prices are displayer more nicely, like a currency, i.e. like
1 500,30 €instead of
- reword "distributor" to supplier, in the program, translations and documentation
At last, we carried on work on deposits for suppliers, but that's for another release.
- the discount value is a float, not an int
- we started developing new api endpoints with the Django Rest Framework.
Search.sellmethod now returns
Sellobjects: commit: searching for cards of a given distributor id is much simpler, the UI is simpler (simply presenting a line per item sold, not a line per sell transaction with the need to list the sold items afterwards. Identical sells still can be grouped in the UI.
- dont' install
- Card and more options for the client admin
- we must say "supplier", no "distributor"
Honcho is the new task supervisor, because we need to run gunicorn and huey. See its
- new script to set the VAT on remote instances. See
- fabfile: gunicorn saves the IP in IP.txt, that makes it ok for dev and prod.
deploytarget of the fabfile: with no argument, save the variables (IP, port) of all clients (with multiprocessing).
fab updatelightdoesn't restart gunicorn any more.
make runtarget uses
runserver_plus, with werkzeug, it displays more info and on a page crash, we can enter a python console at the stacktrace
- the models and the api use a custom
Messagesclass, to list and pass around messages and their status to display in the UI. See
Board for upcoming v0.4: https://gitlab.com/vindarel/abelujo/boards?author_id=&assignee_id=&milestone_title=v0.4&search=
- deposits for suppliers
- commands with postal parcels
- fix pdf exports
- and ?? 'cause it depends also on feedback ! ;)
Features and improvements
Most of all for inventories and a stat.
- the page listing inventories is slightly arranged, grouping more actions under one dropdown. We can now analyse or apply an inventory in one click.
- we can list the columns of the inventories tables, by clickin on their header, like usual.
- applying an inventory is done asynchronously: the UI feedback is immediate but the task runs in the background. An icon shows the task is in progress, we refresh the page to see the "done" icon. This task can take about 3-4 min for 200 books.
- DB queries speed up: the inventories listing is 4 times faster, the display ("continue") twice; work can be done for the analysis.
- Stats: we can now choose the month to display the revenue and other stats, along with the corresponding best sells. Many more graphs and stats to come !
- display the graph of the first shelf for the graph "shelves stock age"
- fix labels not displaying in stats' graphs
- fixed missing translation for graph stock age
- display "no data" in stats instead of nothing
- fix maybe missing xhtml2pdf
- upgrade django_extensions to have the fixed graph db command. See our beautiful graph: http://dev.abelujo.cc/graph-db.png Produce with a make command.
Which technically means
- with use the Huey task queue
- /inventories was in django, it's now in Angular
You now need to start the task queue before the web server:
make taskqueue make run
We have a new
fabcommand to send our bower dependencies into the server with rsync, so than when we deploy a new site it doesn't need to download all bower deps. See #24 .
See Huey settings, it's marked to run async even if DEBUG=True.
Improving the apply looks more difficult since it's only DB writes.
See the new django-toolbar dev branch, with the toolbar installed and configured to inspect queries, even with ajax. Use it to see how many queries are run, how long they take, etc.
An user preferences panel, setting the VTA, more numbers in reports (with and without VTA, discount, etc), first iteration of commands with postal parcels.
This development version has missing features for a secure production use but noneless has proven much helpful for real use cases (inventories are a good entry point to start using the software).
- Searches books by isbn with the bookshop library
- works with a barcode scanner, or without
- Inventories (by shelf, place or publisher), comparison, apply an inventory onto the stock
- Lists of books
- History of sells and entries
- list of products to command, threshold by product
- Alerts (sell ambiguity)
- how many products, books and exemplars in stock
- revenue of current month
- best sells of the month
- products never sold
- age of the stock, by shelf
- exports: to txt, csv and pdf
- fabric commands to manage many instances