Giter Club home page Giter Club logo

grocy's Issues

[Suggestion] Allow adding products without best before date

I would like to use grocy to also track things in my household that do not have best before dates (toilet paper rolls for example) but grocy forces me to put in a best before date.
You can of course use an absurd date like 9999-12-31 but I'd love to just put in "none" (or something similar) for convenience.

//Nevermind, I didnt read the readme carefully enough. Sorry about that

Ideas/Needs for stock analysis

What do we want to have for stock analysis:

  • An overview page with

    • Most bought/used products
    • The value of the current stock (based on tracked prices)
    • Percentage of spoiled products
  • A detail page per product with

    • A list of the last bookings
    • How often the product was bought/used on average per week/month/year

On both pages the period (date from - date to) should be selectable.

Feature Request: No expire date

Is is possible to get a "no expiry checkbox" because there is certain things that does not have expiry dates?
Toilet paper, soap, q-tips etc.
I know that you can press x in the date selection box and it will give you year 2999.
This "trick" is mentioned in the readme.

Just seems a little unpolished in my opinion.

'Slim Application Error': misuse of aliased aggregate best_before_date

While attempting to install grocy 1.16.0 on a fresh install on CentOS 7.5 with PHP versions 7.2 or 7.3, an error is thrown with the title 'Slim Application Error'.

Expected Result

Grocy webapp shows up.

Actual Result

The following error message is thrown while navigating to the grocy web app

Slim Application Error

The application could not run because of the following error:
Details
Type: PDOException
Code: HY000
Message: SQLSTATE[HY000]: General error: 1 misuse of aliased aggregate best_before_date
File: /var/www/grocy/services/DatabaseService.php
Line: 45
Trace

#0 /var/www/grocy/services/DatabaseService.php(45): PDO->exec('CREATE VIEW sto...')
#1 /var/www/grocy/services/DatabaseMigrationService.php(30): Grocy\Services\DatabaseService->ExecuteDbStatement('CREATE VIEW sto...')
#2 /var/www/grocy/services/DatabaseMigrationService.php(21): Grocy\Services\DatabaseMigrationService->ExecuteMigrationWhenNeeded(8, 'CREATE VIEW sto...')
#3 /var/www/grocy/controllers/LoginController.php(60): Grocy\Services\DatabaseMigrationService->MigrateDatabase()
#4 [internal function]: Grocy\Controllers\LoginController->Root(Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#5 /var/www/grocy/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(41): call_user_func(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#6 /var/www/grocy/vendor/slim/slim/Slim/Route.php(335): Slim\Handlers\Strategies\RequestResponse->__invoke(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array)
#7 /var/www/grocy/middleware/SessionAuthMiddleware.php(25): Slim\Route->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#8 [internal function]: Grocy\Middleware\SessionAuthMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route))
#9 /var/www/grocy/vendor/slim/slim/Slim/DeferredCallable.php(43): call_user_func_array(Object(Grocy\Middleware\SessionAuthMiddleware), Array)
#10 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route))
#11 /var/www/grocy/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route))
#12 /var/www/grocy/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response))
#13 /var/www/grocy/vendor/slim/slim/Slim/Route.php(313): Slim\Route->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#14 /var/www/grocy/vendor/slim/slim/Slim/App.php(513): Slim\Route->run(Object(Slim\Http\Request), Object(Slim\Http\Response))
#15 /var/www/grocy/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response))
#16 /var/www/grocy/vendor/slim/slim/Slim/App.php(406): Slim\App->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response))
#17 /var/www/grocy/vendor/slim/slim/Slim/App.php(314): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response))
#18 /var/www/grocy/app.php(54): Slim\App->run()
#19 /var/www/grocy/public/index.php(3): require_once('/var/www/grocy/...')
#20 {main}

Steps to reproduce the issue

Fresh install of CentOS 7.5
Install/enable Remi Repos for PHP 7.2 or 7.3
Install php-pdo (with respect to above versions)
Install grocy to /var/www/grocy
Navigate to webapp

Information on your system

  • grocy 1.16.0
  • CentOS Linux release 7.5.1804 (Core)
  • PHP 7.2 or PHP 7.3 from REMI repos
  • Apache 2.4
  • SELinux set to permissive
  • Data directory owned by Apache user with read/write permissions

Ideas/Needs for chores analysis

What do we want to have for chores analysis:

  • An overview page with

    • Most often done chores
    • Percentage of who did the most chores
  • A detail page per chore with

    • A list of the executions
    • How often the chore was done on average per week/month/year

On both pages the period (date from - date to) should be selectable.

Feature Request: Bigger amount buttons

I have a tablet in my kitchen that shows Grocy 24/7. But I find it difficult to set amount with those tiny arrow buttons. (I dont want to show the on-screen keyboard) What do you think about making them a little bigger for a more touch friendly interface?

Tooltips stay when using touch input

References also #66

Maybe use native tooltips again (they are not bad, Bootstrap/Popper.js tooltips are just nicer) or just disable them on touch input devices (they can also not or only hardly be triggered without being able to hover the element)...

Issue: Recipes can only use quantity units for amount needed

When adding a new recipe to grocy you are only allowed to use quantity units.
So for example, making a cake:
Ingredients required is 250 grams of flour. But the quantity unit might be a pack.

I'm not really sure how we would accomplish this.
Maybe let grocy just see if you have the products in stock and just ignore quantity units?

Responsive design - navbar overlapping content

Since (at least) v1.8.0 the navbar is overlapping the content at certain resolutions.
I uploaded a video/gif of it here.

You can test it for yourself on your demo page, while using the dev tools of your browser.


Not sure if you'd prefer another issue for that, but the big no-real-buttons on the main site are too big for mobile screens, so that the page becomes horizontally scrollable and the hamburger menu button is out of view when opening the page

Issue: GUI in shopping list needs a colored explanation.

In the shopping list when you click the "Add products that are below defined min. stock amount"
It adds the products that are below minimum stock (duh..). It also sets a color for these items.
But its confusing to a new user if he goes into the shopping list and see's items that are colored.
Just need a simple colored bar that says something like "products below min stock"

Bug: Prompt to add known items in purchase page

Please have a look at gif "video" underneath.

I manually type in "egg", then grocy suggests "Eggs". I click that, but it still uses what I typed in, "egg"

Funny thing, if you only type in "e" and then click on "Eggs" it works.

grocy_issue

Not able to get version 1.9.2 running

Hey there,

when I try to run the version 1.9.2 of grocy, it returns a 500 - Internal Server Error, because of an error in one of the dependencies (cors-middleware).

This is the error I get:

Fatal error: 
Uncaught TypeError: Return value of Tuupola\Middleware\CorsMiddleware::origin() must be an instance of Tuupola\Middleware\void, none returned in /var/www/html/vendor/tuupola/cors-middleware/src/CorsMiddleware.php:165 

Stack trace: 
#0 [internal function]: Tuupola\Middleware\CorsMiddleware->origin(Array) 
#1 /var/www/html/vendor/tuupola/cors-middleware/src/CorsMiddleware.php(119): call_user_func(Array, Array) 
#2 /var/www/html/vendor/tuupola/cors-middleware/src/CorsMiddleware.php(51): Tuupola\Middleware\CorsMiddleware->hydrate(Array) 
#3 /var/www/html/routes.php(88): Tuupola\Middleware\CorsMiddleware->__construct(Array) 
#4 /var/www/html/app.php(42): require_once('/var/www/html/r...') 
#5 /var/www/html/public/index.php(3): require_once('/var/www/html/a...') 
#6 {main} thrown in /var/www/html/vendor/tuupola/cors-middleware/src/CorsMiddleware.php on line 165

My php version is:

root@debian-vm:~# php -v
PHP 7.0.28-1~dotdeb+8.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
    with Zend OPcache v7.0.28-1~dotdeb+8.1, Copyright (c) 1999-2017, by Zend Technologies

I also tried with php 7.1.17 without success.

If you want to try on your own - I created a little installation script to automate the process. Thanks in advance for the help.

New setup shows a blank page

I have tried using both docker with a lamp stack or my regular hosted webhost and both times i get a blank page when trying to connect to public/index.php

Document API

Is it possible to create a simple API to add product to the fridge?
My idea is a simple Android App with a barcode scanner, which add items to the fridge.

Date picker 1.13.1

There is an issue with the date picker in 1.13.1
In the "Inventory" and "Purchase" the date picker is not working. The Icon is also not aligned correctly.

Creating a recipe issue

Its not possible to add ingredients without losing data entered in preparations field.

You have to first write the recipe preparation and click save. Then go back in and edit the recipe to add ingredients.

Login and Logout issue

I think there is something wrong with the login session cookies. I tested several browser.
On Firefox 61.0 i can login, but after i always on the login page again. I can as an example, go to the purchase page, but when i go to the stockoverview page i see the login page again. Some pages are available and some show the login page.

On my mobile device i can login with Brave, but i can't logout. anymore.

The cookies and cache are deleted several times!

Quantity unit purchase Red

image

For some reason Quantity unit purchase and Quantity unit stock are red and im unable to change it at all.

Idea: Products at which location

At first thank you for that management programm. Great work. ๐Ÿ‘

What i would wish is a location overview. To see which products are at which location.

Missing htaccess?

Shouldn't there be a htaccess file?

The URL's are SEO friendly, but there's not htaccess to rewrite them

404 Error

When I try to access /grocy/public on my Ampps web server, it immediately redirects me to /stockoverview and a not found 404 error. I'm running on Ampps (apache and php 7.1). I followed the instructions with the config.php file. What am I missing?

Feature Request: Auto refresh (db watchdog)

Is it possible to have some kind of auto refresh if the database changes (watchdog?) ?

I have a tablet in the kitchen that shows grocy 24/7. But sometimes I do updates to grocy on my laptop.
I have to manually refresh the tablet to see changes.

Minor UI issue

When managing master data the scrollbar overlaps sligtly.

capture

Issue: Search keyword being retained

If you search for something on the stock overview page it will retain the search keyword even if you change to another page. When you return to the stock overview page the search box will be blank, but its still showing the result of what you searched for.
To get it to remove the results you have to search for something new and then remove it (backspace).

The retain feature is actually nice, but would be nice if it would remember the keyword even if changing pages.
Maybe also a "Clear Search" button?

grocy_issue

Feature Request: Isle Field

I'm not sure why this isn't a thing with any grocery apps, but I'd love to see an "isle" field attached to products. I'd think most people shop at the same stores the majority of the time.

If adding the isle of items meant you could then sort by isle number as a column you could make shopping trips much more efficient.

Feature Request: Relative path for reverse proxy setup

I have my Grocy now on ubuntu18.04/nginx running on http/80 default-vhost.

It's locally available on http://grocy.mydomain.lan or http://192.168.1.105 or http://sub.mydomain.local and it works.

I do my SSL Termination with HAproxy on https://grocy.mydomain.tld. LETS Certificate with an ALT is already created and working. Grocy is shown.

But now it looks broken. All links are available like "http://grocy.mydomain.tld/node_modules/bootstrap/dist/css/bootstrap.min.css?v=1.18.1" rel="stylesheet">
Blocked loading mixed active content <-- or something like this.

Is it possible to have relative paths to use both, http for internal use and https for external usage?

The ampache project is having a similar problem with absolute/relative paths. ampache/ampache#181

I'm aware i could use a self-signed or any snakeoil certificate to run my local grocy also behind https/443:grocy.mydomain.lan , so the reverse proxy would just show and serve https://grocy.mydomin.tld and my browser wouldn't find a mixed content problem.

If it's possible to have relative paths, or to select "http/https" in absolute paths would be a nice option and feature.

Feature Request: Stock with MHD/Shelf Life/Best Before Date for FIFO

For example: I have posted goods receipt (purchased) 2kg of Flour with BestBeforeDate of 01.06.2019 and also 4 kg of Flour with BestBeforeDate of 01.06.2022. So i can rotate them with FIFO and use the oldest one. (assumed the first one is the piece with the lowest remaining shelf life)

So i have now 6 kg of Flour. Both BestBefore Date are now mixed together and the information is lost. Which one to pick for FIFO is now hard.

https://de.wikipedia.org/wiki/Quant_(Wirtschaft) <-- If a stock is having the same characteristics, it should merge. If not it should be a second stock item with a different BestBeforeDate of the same product.

At the moment i rotate my stock, for examples dried lentils and atm with grocy i'd never know if 99% or just 1% of the stock will be expired tomorrow.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.