Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggestions from barcode #429

Closed
monsieurtanuki opened this issue Jul 18, 2021 · 1 comment
Closed

Suggestions from barcode #429

monsieurtanuki opened this issue Jul 18, 2021 · 1 comment
Assignees

Comments

@monsieurtanuki
Copy link
Contributor

Currently, the suggestions try to find the input text in the product names.

The idea of this feature is that if a part of a barcode is typed in (that is, only numbers), we try to find products with a similar barcode (instead of product name search).

I'm about to PR that.

@monsieurtanuki monsieurtanuki self-assigned this Jul 18, 2021
monsieurtanuki added a commit to monsieurtanuki/smooth-app that referenced this issue Jul 18, 2021
Impacted files:
* `bulk_manager.dart`: unrelated - fixed a bug about the number of parameters for bulk insert; `insert` method now returns the number of inserted rows; `delete` method now returns the number of deleted rows
* `dao_product.dart`: added barcode for suggestion if text is number; refactored
* `text_search_widget.dart`: added the barcode to the suggestion results
monsieurtanuki added a commit that referenced this issue Jul 18, 2021
feature/#429 - possible barcode suggestions
@monsieurtanuki
Copy link
Contributor Author

Fixed by #430.

teolemon added a commit that referenced this issue Jul 23, 2021
* feature/#349 - history and scan lists now have displayed timestamps

History and Scan lists now behave differently from the other lists.
They use "extra data": a product is in the History (or the Scan) list
if it has as an "extra data" the "last seen timestamp" (or the last scan timestamp).

Bad news: as it's a new concept in the app, we'll start from scratch for both lists.

Impacted files:
* `continuous_scan_model.dart`: new way of adding a product to scanned products; refactoring
* `continuous_scan_page.dart`: unrelated color fix
* `dao_product.dart`: added "last seen" and "last scan" as extra data, with a direct access to products that have those extra data
* `dao_product_list.dart`: history and scan lists are now handled as "different" lists, computed from the "last seen" and "last scan" extra data; refactored
* `product_list.dart`: added extra `int` data; cleaner "same product list" test
* `product_list_dialog_helper.dart`: cleaner "same product list" test
* `product_list_page.dart`: added dates to the display
* `product_page.dart`: simplified history management
* `smooth_product_card_found.dart`: added an optional `refresh` parameter, after visiting the product page

* New Crowdin translations by Github Action

* feature/#349 - now we store and display the whole history and scan timestamps

In table `product_extra` we added an `int` column:
* the primary keys are barcode and "extra key" (e.g. an id for each different list)
* there is an `int` value and a `String` value
* the `int` value is used for ordering data (timestamps or 1,2,3,...)
* the `String` value is used for storing more complex data as json (e.g. the list of timestamps for history)

The contents of table `product_extra` can be stored in flutter code with the new class `ProductExtra` (basically, `int` and `String`)

For the moment the history and scan timestamps of each product are available via a lousy button at the end of the page.

New file:
* `product_extra.dart`: Extra data attached to a Product when it belongs to a ProductList

Impacted files:
* `dao_product.dart`: added an `int` column to the product extra table; now we use new class `ProductExtra`; refactored
* `dao_product_list.dart`: now we use new class `ProductExtra`; refactored
* `local_database.dart`: upgraded the db version because of a new column; added helper method `timestampToDateTime`
* `product_list.dart`: now we use new class `ProductExtra`; refactored
* `product_list_page.dart`: now we use new class `ProductExtra`
* `product_page.dart`: added a sample button at the end of the page in order to display all history and scans related to the product

* feature/#349 - refactoring the db + storing the product refresh timestamps

New files:
* `abstract_dao.dart`: DAO abstraction
* `dao_product_extra.dart`: DAO for Product Extra data

Impacted files:
* `barcode_product_query.dart`: automatically storing the product in the database
* `continuous_scan_model.dart`: refactored
* `dao_product.dart`: now extends new class `AbstractDao`; moved code to new class `DaoProductExtra`; refactored; optimized bulk actions
* `dao_product_list.dart`: now extends new class `AbstractDao`; now using new class `DaoProductExtra`; removed a SQLite foreign key for performance reasons; not storing products anymore (it's done somewhere else)
* `database_product_list_supplier.dart`: refactored because of `ProductListSupplier`
* `local_database.dart`: new database version; added `DaoProductExtra`
* `main.dart`: more verbose database crash message
* `product_dialog_helper.dart`: minor refactoring
* `product_list_supplier.dart`: refactored
* `product_page.dart`: now we display the access, the scan and the refresh timestamps in the lousy temporary button
* `product_query_model.dart`: removed the code regarding storing products in the database as it's now done in the `QueryProductListSupplier`
* `product_query_page.dart`: minor refactoring
* `product_query_page_helper.dart`: refactored because of `ProductListSupplier`
* `query_product_list_supplier.dart`: automatically storing the products in the database; refactored because of `ProductListSupplier`

* feature/#349 - refactoring the db + storing the product refresh timestamps

Impacted file:
* `continuous_scan_model.dart`: minor private variable renaming

* Update crowdin.yml

* Updated dependencies (#410)

* Update home_page.dart

* Update home_page.dart (#411)

* Linting

* Linting (#412)

* start

* feature/#166_3 - user product lists are now reorderable

Database table `product_extra` replaces now dropped `product_list_item`.

New files:
* `bulk_deletable.dart`: Interface for bulk database deletes
* `bulk_insertable.dart`: Interface for bulk database inserts
* `bulk_manager.dart`: Manager for bulk database inserts and deletes

Impacted files:
* `abstract_dao.dart`: moved specific code to new classes `Bulk...`
* `dao_product.dart`: refactored
* `dao_product_extra.dart`: now manages the product list as "product extra"; now implements new interface `BulkDeletable`
* `dao_product_list.dart`: moved the data from table `product_list_item` to table `product_extra`; dropped table `product_list_item`; refactored
* `home_page.dart`: refresh after product list preview
* `list_page.dart`: refresh after product list preview
* `local_database.dart`: new database version
* `multi_select_product_page.dart`: refactored
* `product_copy_helper.dart`: refactored
* `product_list.dart`: added the list reordering feature; refactored
* `product_list_dialog_helper.dart`: refactored
* `product_list_page.dart`: some product lists are now reorderable and with dismissible items
* `product_list_preview.dart`: added the `andThen` parameter for a refresh afterwards
* `product_page.dart`: minor fix
* `query_product_list_supplier.dart`: refactored
* `smooth_it_model.dart`: refactored

* .

* .

* .

* Null safety on data_models and database folders

As a side effect I've also removed 4 stale files that were kept "just in case".

* Null safety

Co-Authored-By: monsieurtanuki <[email protected]>

* Null safety

* Null safety: no more "official" errors

* invisible bug fix 1

* Null safety

* linting

* Update pubspec.yaml

* Update pubspec.yaml

* New Crowdin translations by Github Action

* Adding template files

* Adding template files

* Flutter format

* Deleyte the desktop version

* feature/#166 _4 - put back pantries and shopping lists, as regular "database" product lists

Now the database and the code is much more consistent.
Is that relevant to display pantries and shopping lists in the home page? That's another story.
But at least for the tests and for brainstorming purposes, it's good to see that it's easy to create product list types with different UIs.

Deleted files:
* `pantry.dart`
* `pantry_button.dart`
* `pantry_dialog_helper.dart`
* `pantry_list_page.dart`
* `pantry_page.dart`
* `pantry_preview.dart`

New files:
* `product_list_add_button.dart`: "Add button" related to a user product list type
* `product_list_item.dart`: Widget for a `ProductList` item, for all product list types
* `product_list_item_pantry.dart`: Widget for a `ProductList` item (pantry)
* `product_list_item_shopping.dart`: Widget for a `ProductList` item (shopping list)
* `product_list_item_simple.dart`: Widget for a `ProductList` item (simple product list)

Impacted files:
* `home_page.dart`: now displays pantries and shopping lists (as product lists) and removed dead commented code
* `list_page.dart`: now manages new product list types; now uses new class `ProductListAddButton`
* `multi_select_product_page.dart`: simplified by removing the pantries and shopping lists, as they are now just special product lists
* `product_copy_helper.dart`: simplified by removing the pantries and shopping lists, as they are now just special product lists
* `product_copy_view.dart`: simplified by removing the pantries and shopping lists, as they are now just special product lists
* `product_list.dart`: create new list types for pantries and shopping lists;
* `product_list_button.dart`: moved code to new class `ProductListAddButton` - here we only care about
* `product_list_dialog_helper.dart`: now manages new product list types, more specifically in method `openNew`
* `product_list_page.dart`: now manages new product list types, by using new class `ProductListItem`
* `product_page.dart`: simplified by removing the pantries and shopping lists, as they are now just special product lists
* `product_query_page_helper.dart`: handled the new product list types; refactored
* `smooth_product_card_found.dart`: unrelated fix
* `user_preferences.dart`: removed everything related to pantry and shopping

* feature/#37 - "details" button for ecoscore with html page display

New file:
* `html_page.dart`: Displays as widgets a HTML page

Impacted files:
* `attribute_card.dart`: added a barcode parameter that is needed (only) for ecoscore details; added a "details" button for ecoscore with html page display
* `attribute_list_expandable.dart`: added a now relevant barcode parameter to `AttributeCard`
* `pubspec.yaml`: added `flutter_widget_from_html_core` for html page display

* feature/#37 - "details" button for ecoscore with html page display

New file:
* `html_page.dart`: Displays as widgets a HTML page

Impacted files:
* `attribute_card.dart`: added a barcode parameter that is needed (only) for ecoscore details; added a "details" button for ecoscore with html page display
* `attribute_list_expandable.dart`: added a now relevant barcode parameter to `AttributeCard`
* `pubspec.yaml`: added `flutter_widget_from_html_core` for html page display

* feature/#166 _4 - put back pantries and shopping lists, as regular "database" product lists

Now the database and the code is much more consistent.
Is that relevant to display pantries and shopping lists in the home page? That's another story.
But at least for the tests and for brainstorming purposes, it's good to see that it's easy to create product list types with different UIs.

Deleted files:
* `pantry.dart`
* `pantry_button.dart`
* `pantry_dialog_helper.dart`
* `pantry_list_page.dart`
* `pantry_page.dart`
* `pantry_preview.dart`

New files:
* `product_list_add_button.dart`: "Add button" related to a user product list type
* `product_list_item.dart`: Widget for a `ProductList` item, for all product list types
* `product_list_item_pantry.dart`: Widget for a `ProductList` item (pantry)
* `product_list_item_shopping.dart`: Widget for a `ProductList` item (shopping list)
* `product_list_item_simple.dart`: Widget for a `ProductList` item (simple product list)

Impacted files:
* `home_page.dart`: now displays pantries and shopping lists (as product lists) and removed dead commented code
* `list_page.dart`: now manages new product list types; now uses new class `ProductListAddButton`
* `multi_select_product_page.dart`: simplified by removing the pantries and shopping lists, as they are now just special product lists
* `product_copy_helper.dart`: simplified by removing the pantries and shopping lists, as they are now just special product lists
* `product_copy_view.dart`: simplified by removing the pantries and shopping lists, as they are now just special product lists
* `product_list.dart`: create new list types for pantries and shopping lists;
* `product_list_button.dart`: moved code to new class `ProductListAddButton` - here we only care about
* `product_list_dialog_helper.dart`: now manages new product list types, more specifically in method `openNew`
* `product_list_page.dart`: now manages new product list types, by using new class `ProductListItem`
* `product_page.dart`: simplified by removing the pantries and shopping lists, as they are now just special product lists
* `product_query_page_helper.dart`: handled the new product list types; refactored
* `smooth_product_card_found.dart`: unrelated fix
* `user_preferences.dart`: removed everything related to pantry and shopping

* Update crowdin.yml

* feature/#338 - explicit "server search" button and "local result" label

In order to avoid confusion in the suggestion display.

Impacted file:
* `text_search_widget.dart`: added a fake null Product for server search button

* New Crowdin translations by Github Action

* feature_2/#37 - preparing the code for the next openfoodfacts-dart version

Impacted file:
* `attribute_card.dart`: preparing the code for when OpenFoodAPIClient.getEcoscoreHtmlDescription is available

* fix/#427 - dialogs and context management with list items

Impacted file:
* `text_search_widget.dart`: now using the "main" context for the dialogs, instead of the transient single item context

* remove vulnerability

* feature/#429 - possible barcode suggestions

Impacted files:
* `bulk_manager.dart`: unrelated - fixed a bug about the number of parameters for bulk insert; `insert` method now returns the number of inserted rows; `delete` method now returns the number of deleted rows
* `dao_product.dart`: added barcode for suggestion if text is number; refactored
* `text_search_widget.dart`: added the barcode to the suggestion results

* Fixes #431 by changing the order of the database upgrade

* Remove unused code and deprecated fields/methods

* removed deprecated fields and methods

* new Smoothie icons

* built new splash screen

* built new splash screen

* changed app name from smooth_app to Smoothie

* fixed transparency for glass reflection

* use pnnsGroup2 filter instead of deprecated queryPnnsGroup

* Replace lc query param with language, fixes #433

* Update README.md

* minor change to export filename

* removed default flutter Logo

* removed /assets/temp/, added /assets/app/

Co-authored-by: monsieurtanuki <[email protected]>
Co-authored-by: Crowdin Bot <[email protected]>
Co-authored-by: Marvin M <[email protected]>
Co-authored-by: monsieurtanuki <[email protected]>
Co-authored-by: mboussaid <[email protected]>
Co-authored-by: Stéphane Gigandet <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant