Merge pull request #2404 from ignas2526/feature/2402-make-now-count

Add ability to set maximum missing ingredient count
This commit is contained in:
vabene1111
2023-10-05 19:01:48 +02:00
committed by GitHub
3 changed files with 19 additions and 10 deletions

View File

@ -549,7 +549,7 @@ class RecipeSearch():
), ),
has_child_sub=Case(When(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users), then=Value(1)), default=Value(0)), has_child_sub=Case(When(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users), then=Value(1)), default=Value(0)),
has_sibling_sub=Case(When(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users), then=Value(1)), default=Value(0)) has_sibling_sub=Case(When(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users), then=Value(1)), default=Value(0))
).annotate(missingfood=F('count_food') - F('count_onhand') - F('count_ignore_shopping')).filter(missingfood=missing) ).annotate(missingfood=F('count_food') - F('count_onhand') - F('count_ignore_shopping')).filter(missingfood__lte=missing)
self._queryset = self._queryset.distinct().filter(id__in=makenow_recipes.values('id')) self._queryset = self._queryset.distinct().filter(id__in=makenow_recipes.values('id'))
@staticmethod @staticmethod

View File

@ -558,14 +558,16 @@
<b-input-group-append v-if="ui.show_makenow"> <b-input-group-append v-if="ui.show_makenow">
<b-input-group-text> <b-input-group-text>
{{ $t("make_now") }} {{ $t("make_now") }}
<b-form-checkbox <b-form-checkbox v-model="search.makenow" name="check-button"
v-model="search.makenow" @change="refreshData(false)"
name="check-button" class="shadow-none" switch style="width: 4em"/>
@change="refreshData(false)" </b-input-group-text>
class="shadow-none" <b-input-group-text>
switch <span>{{ $t("make_now_count") }}</span>
style="width: 4em" <b-form-input type="number" min="0" max="20" v-model="search.makenow_count"
/> @change="refreshData(false)"
size="sm" class="mt-1"></b-form-input>
</b-input-group-text> </b-input-group-text>
</b-input-group-append> </b-input-group-append>
</b-input-group> </b-input-group>
@ -921,6 +923,7 @@ export default {
timescooked: undefined, timescooked: undefined,
timescooked_gte: true, timescooked_gte: true,
makenow: false, makenow: false,
makenow_count: 0,
cookedon: undefined, cookedon: undefined,
cookedon_gte: true, cookedon_gte: true,
createdon: undefined, createdon: undefined,
@ -1233,6 +1236,7 @@ export default {
this.search.pagination_page = 1 this.search.pagination_page = 1
this.search.timescooked = undefined this.search.timescooked = undefined
this.search.makenow = false this.search.makenow = false
this.search.make_now_count = 0
this.search.cookedon = undefined this.search.cookedon = undefined
this.search.viewedon = undefined this.search.viewedon = undefined
this.search.createdon = undefined this.search.createdon = undefined
@ -1317,6 +1321,10 @@ export default {
} else if (!this.search.timescooked_gte) { } else if (!this.search.timescooked_gte) {
timescooked = timescooked * -1 timescooked = timescooked * -1
} }
let makenow = this.search.makenow || undefined
if (makenow !== undefined) {
makenow = parseInt(this.search.makenow_count)
}
// when a filter is selected - added search params will be added to the filter // when a filter is selected - added search params will be added to the filter
params = { params = {
...params, ...params,
@ -1329,7 +1337,7 @@ export default {
internal: this.search.search_internal, internal: this.search.search_internal,
random: this.random_search, random: this.random_search,
timescooked: timescooked, timescooked: timescooked,
makenow: this.search.makenow || undefined, makenow: makenow,
cookedon: cookedon, cookedon: cookedon,
createdon: createdon, createdon: createdon,
updatedon: updatedon, updatedon: updatedon,

View File

@ -388,6 +388,7 @@
"show_sortby": "Show Sort By", "show_sortby": "Show Sort By",
"search_rank": "Search Rank", "search_rank": "Search Rank",
"make_now": "Make Now", "make_now": "Make Now",
"make_now_count": "At most missing ingredients",
"recipe_filter": "Recipe Filter", "recipe_filter": "Recipe Filter",
"book_filter_help": "Include recipes from recipe filter in addition to manually assigned ones.", "book_filter_help": "Include recipes from recipe filter in addition to manually assigned ones.",
"review_shopping": "Review shopping entries before saving", "review_shopping": "Review shopping entries before saving",