improved startpage

This commit is contained in:
vabene1111
2025-01-03 22:14:38 +01:00
parent 9eca4673cd
commit dc58b42f68
41 changed files with 118 additions and 7 deletions

View File

@@ -62,6 +62,12 @@
{{ $t('Messages') }}
<message-list-dialog></message-list-dialog>
</v-list-item>
<v-list-item :href="getDjangoUrl('admin')" target="_blank" v-if="useUserPreferenceStore().userSettings.user.isSuperuser">
<template #prepend>
<v-icon icon="fa-solid fa-shield"></v-icon>
</template>
{{ $t('Admin') }}
</v-list-item>
<v-list-item :href="getDjangoUrl('accounts/logout')" link>
<template #prepend>
<v-icon icon="fa-solid fa-arrow-right-from-bracket"></v-icon>

View File

@@ -44,6 +44,7 @@ import {DisplayBreakpoint, useDisplay} from "vuetify";
import {ApiApi, ApiRecipeListRequest, Keyword, Recipe, RecipeOverview} from "@/openapi";
import {homePageCols} from "@/utils/breakpoint_utils";
import {useI18n} from "vue-i18n";
import {DateTime} from "luxon";
//TODO mode ideas "last year/month/cooked long ago"
const props = defineProps(
@@ -116,7 +117,7 @@ function loadRecipes() {
switch (props.mode) {
case 'recent':
// TODO implement correct parameter
requestParameters._new = 'true'
requestParameters.numRecent = 16
break;
case 'new':
requestParameters._new = 'true'
@@ -147,7 +148,13 @@ function doRecipeRequest(params: ApiRecipeListRequest) {
let api = new ApiApi()
api.apiRecipeList(params).then((r) => {
recipes.value = r.results
if (props.mode == 'new') {
recipes.value = r.results.filter(r => r._new)
} else if (props.mode == 'recent') {
recipes.value = r.results.filter(r => r.recent != "0")
} else {
recipes.value = r.results
}
}).finally(() => {
loading.value = false
})

View File

@@ -15,6 +15,7 @@
"Added_To_Shopping_List": "",
"Added_by": "",
"Added_on": "",
"Admin": "",
"Advanced": "",
"App": "",
"Are_You_Sure": "",

View File

@@ -15,6 +15,7 @@
"Added_To_Shopping_List": "Добавено към списъка за пазаруване",
"Added_by": "Добавено от",
"Added_on": "Добавено",
"Admin": "",
"Advanced": "Разширено",
"App": "Приложение",
"Are_You_Sure": "Сигурен ли си?",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "",
"Added_by": "",
"Added_on": "",
"Admin": "",
"Advanced": "",
"Alignment": "",
"Amount": "Quantitat",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Přidáno na nákupní seznam",
"Added_by": "Přidáno uživatelem",
"Added_on": "Přidáno v",
"Admin": "",
"Advanced": "Rozšířené",
"Alignment": "Zarovnání",
"Amount": "Množství",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Tilføjet til indkøbslisten",
"Added_by": "Tilføjet af",
"Added_on": "Tilføjet den",
"Admin": "",
"Advanced": "Avanceret",
"Alignment": "Justering",
"Amount": "Mængde",

View File

@@ -18,6 +18,7 @@
"Added_To_Shopping_List": "Zur Einkaufsliste hinzugefügt",
"Added_by": "Hinzugefügt durch",
"Added_on": "Hinzugefügt am",
"Admin": "Admin",
"Advanced": "Erweitert",
"Alignment": "Ausrichtung",
"Amount": "Menge",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Προστέθηκε στη λίστα αγορών",
"Added_by": "Προστέθηκε από",
"Added_on": "Προστέθηκε στις",
"Admin": "",
"Advanced": "Για προχωρημένους",
"Amount": "Ποσότητα",
"App": "Εφαρμογή",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Added to shopping list",
"Added_by": "Added By",
"Added_on": "Added On",
"Admin": "Admin",
"Advanced": "Advanced",
"Alignment": "Alignment",
"Amount": "Amount",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Añadido a la lista de la compra",
"Added_by": "Añadido por",
"Added_on": "Añadido el",
"Admin": "",
"Advanced": "Avanzado",
"Alignment": "Alineación",
"Amount": "Cantidad",

View File

@@ -10,6 +10,7 @@
"Add_to_Plan": "Lisää suunnitelmaan",
"Add_to_Shopping": "Lisää ostoksiin",
"Added_To_Shopping_List": "Lisätty ostoslistaan",
"Admin": "",
"Advanced Search Settings": "Tarkennetun Haun Asetukset",
"Auto_Planner": "Automaattinen Suunnittelija",
"Automate": "Automatisoi",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Ajouté à la liste de courses",
"Added_by": "Ajouté par",
"Added_on": "Ajouté le",
"Admin": "",
"Advanced": "Avancé",
"Advanced Search Settings": "Paramètres de recherche avancée",
"Alignment": "Alignement",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "נוסף לרשימת הקניות",
"Added_by": "נוסף ע\"י",
"Added_on": "נוסף ב",
"Admin": "",
"Advanced": "מתקדם",
"Alignment": "יישור",
"Amount": "כמות",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Hozzáadva a bevásárlólistához",
"Added_by": "Hozzádta",
"Added_on": "Hozzáadva",
"Admin": "",
"Advanced": "Haladó",
"Alignment": "Igazítás",
"Amount": "Összeg",

View File

@@ -9,6 +9,7 @@
"Add_to_Book": "",
"Add_to_Plan": "Ավելացնել պլանին",
"Add_to_Shopping": "Ավելացնել գնումներին",
"Admin": "",
"Advanced Search Settings": "Ընդլայնված փնտրման կարգավորումներ",
"Automate": "Ավտոմատացնել",
"Available": "",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "",
"Added_by": "",
"Added_on": "",
"Admin": "",
"Advanced": "",
"App": "",
"Are_You_Sure": "",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "",
"Added_by": "",
"Added_on": "",
"Admin": "",
"Advanced": "",
"Alignment": "",
"Amount": "",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Aggiunto alla lista della spesa",
"Added_by": "Aggiunto da",
"Added_on": "Aggiunto il",
"Admin": "",
"Advanced": "Avanzate",
"Advanced Search Settings": "Impostazioni avanzate di ricerca",
"Amount": "Quantità",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "",
"Added_by": "",
"Added_on": "",
"Admin": "",
"Advanced": "",
"Alignment": "",
"Amount": "Suma",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Lagt til i handlelisten",
"Added_by": "Lagt til av",
"Added_on": "Lagt til",
"Admin": "",
"Advanced": "Avansert",
"Alignment": "Justering",
"Amount": "Mengde",

View File

@@ -18,6 +18,7 @@
"Added_To_Shopping_List": "Toegevoegd aan boodschappenlijst",
"Added_by": "Toegevoegd door",
"Added_on": "Toegevoegd op",
"Admin": "",
"Advanced": "Geavanceerd",
"Advanced Search Settings": "Geavanceerde zoekinstellingen",
"Amount": "Hoeveelheid",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Dodano do listy zakupów",
"Added_by": "Dodane przez",
"Added_on": "Dodano dnia",
"Admin": "",
"Advanced": "Zaawansowany",
"Advanced Search Settings": "Ustawienia zaawansowanego wyszukiwania",
"Alignment": "Wyrównanie",

View File

@@ -15,6 +15,7 @@
"Added_To_Shopping_List": "Adicionado à lista de compras",
"Added_by": "Adicionado por",
"Added_on": "Adicionado a",
"Admin": "",
"Advanced": "Avançado",
"Amount": "Quantidade",
"Auto_Planner": "",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Incluído na lista de compras",
"Added_by": "Incluído Por",
"Added_on": "Incluído Em",
"Admin": "",
"Advanced": "Avançado",
"Alignment": "Alinhamento",
"Amount": "Quantidade",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Adăugat la lista de cumpărături",
"Added_by": "Adăugat de",
"Added_on": "Adăugat la",
"Admin": "",
"Advanced": "Avansat",
"Advanced Search Settings": "",
"Amount": "Cantitate",

View File

@@ -15,6 +15,7 @@
"Added_To_Shopping_List": "Добавлено в список покупок",
"Added_by": "Добавлено",
"Added_on": "Добавлено на",
"Admin": "",
"Advanced": "Расширенный",
"Advanced Search Settings": "",
"Are_You_Sure": "Вы уверены?",

View File

@@ -13,6 +13,7 @@
"Add_to_Shopping": "Dodaj v nakupovalni listek",
"Added_To_Shopping_List": "Dodano v nakupovalni listek",
"Added_by": "Dodano s strani",
"Admin": "",
"Advanced Search Settings": "",
"Amount": "Količina",
"Auto_Planner": "Avto-planer",

View File

@@ -18,6 +18,7 @@
"Added_To_Shopping_List": "Lades till i inköpslistan",
"Added_by": "Tillagd av",
"Added_on": "Tillagd på",
"Admin": "",
"Advanced": "Avancerat",
"Alignment": "Orientering",
"Amount": "Mängd",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "Alışveriş listesine eklendi",
"Added_by": "Ekleyen",
"Added_on": "Eklenme Zamanı",
"Admin": "",
"Advanced": "Gelişmiş",
"Alignment": "Hizalama",
"Amount": "Miktar",

View File

@@ -15,6 +15,7 @@
"Added_To_Shopping_List": "Додано до списку покупок",
"Added_by": "Додано",
"Added_on": "Додано На",
"Admin": "",
"Advanced": "",
"Amount": "Кількість",
"App": "",

View File

@@ -17,6 +17,7 @@
"Added_To_Shopping_List": "添加到购物清单",
"Added_by": "添加者",
"Added_on": "添加到",
"Admin": "",
"Advanced": "高级",
"Alignment": "校准",
"Amount": "数量",

View File

@@ -8,6 +8,7 @@
"Add_nutrition_recipe": "為食譜添加營養資訊",
"Add_to_Plan": "加入計劃",
"Add_to_Shopping": "加入購物清單",
"Admin": "",
"Available": "",
"AvailableCategories": "",
"BaseUnit": "",

View File

@@ -1201,6 +1201,7 @@ export interface ApiRecipeListRequest {
keywordsOrNot?: Array<number>;
makenow?: boolean;
_new?: string;
numRecent?: number;
page?: number;
pageSize?: number;
query?: string;
@@ -8763,6 +8764,10 @@ export class ApiApi extends runtime.BaseAPI {
queryParameters['new'] = requestParameters['_new'];
}
if (requestParameters['numRecent'] != null) {
queryParameters['num_recent'] = requestParameters['numRecent'];
}
if (requestParameters['page'] != null) {
queryParameters['page'] = requestParameters['page'];
}

View File

@@ -49,6 +49,24 @@ export interface PatchedUser {
* @memberof PatchedUser
*/
readonly displayName?: string;
/**
* Designates whether the user can log into this admin site.
* @type {boolean}
* @memberof PatchedUser
*/
isStaff?: boolean;
/**
* Designates that this user has all permissions without explicitly assigning them.
* @type {boolean}
* @memberof PatchedUser
*/
isSuperuser?: boolean;
/**
* Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
* @type {boolean}
* @memberof PatchedUser
*/
isActive?: boolean;
}
/**
@@ -73,6 +91,9 @@ export function PatchedUserFromJSONTyped(json: any, ignoreDiscriminator: boolean
'firstName': json['first_name'] == null ? undefined : json['first_name'],
'lastName': json['last_name'] == null ? undefined : json['last_name'],
'displayName': json['display_name'] == null ? undefined : json['display_name'],
'isStaff': json['is_staff'] == null ? undefined : json['is_staff'],
'isSuperuser': json['is_superuser'] == null ? undefined : json['is_superuser'],
'isActive': json['is_active'] == null ? undefined : json['is_active'],
};
}
@@ -90,6 +111,9 @@ export function PatchedUserToJSONTyped(value?: Omit<PatchedUser, 'username'|'dis
'id': value['id'],
'first_name': value['firstName'],
'last_name': value['lastName'],
'is_staff': value['isStaff'],
'is_superuser': value['isSuperuser'],
'is_active': value['isActive'],
};
}

View File

@@ -49,6 +49,24 @@ export interface User {
* @memberof User
*/
readonly displayName: string;
/**
* Designates whether the user can log into this admin site.
* @type {boolean}
* @memberof User
*/
isStaff?: boolean;
/**
* Designates that this user has all permissions without explicitly assigning them.
* @type {boolean}
* @memberof User
*/
isSuperuser?: boolean;
/**
* Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
* @type {boolean}
* @memberof User
*/
isActive?: boolean;
}
/**
@@ -75,6 +93,9 @@ export function UserFromJSONTyped(json: any, ignoreDiscriminator: boolean): User
'firstName': json['first_name'] == null ? undefined : json['first_name'],
'lastName': json['last_name'] == null ? undefined : json['last_name'],
'displayName': json['display_name'],
'isStaff': json['is_staff'] == null ? undefined : json['is_staff'],
'isSuperuser': json['is_superuser'] == null ? undefined : json['is_superuser'],
'isActive': json['is_active'] == null ? undefined : json['is_active'],
};
}
@@ -92,6 +113,9 @@ export function UserToJSONTyped(value?: Omit<User, 'username'|'display_name'> |
'id': value['id'],
'first_name': value['firstName'],
'last_name': value['lastName'],
'is_staff': value['isStaff'],
'is_superuser': value['isSuperuser'],
'is_active': value['isActive'],
};
}

View File

@@ -7,7 +7,7 @@
<script setup lang="ts">
import {defineComponent, onMounted, ref, watch} from 'vue'
import {ApiApi, Recipe} from "@/openapi";
import {ApiApi, Recipe, ViewLog} from "@/openapi";
import RecipeView from "@/components/display/RecipeView.vue";
import {useDisplay} from "vuetify";
@@ -33,6 +33,12 @@ function refreshData(recipeId: string) {
api.apiRecipeRetrieve({id: Number(recipeId)}).then(r => {
recipe.value = r
})
api.apiViewLogCreate({
viewLog: {
recipe: Number(recipeId)
} as ViewLog
})
}
</script>

View File

@@ -10,7 +10,7 @@
<v-list-item :to="{name: 'view_settings_cosmetic'}" prepend-icon="fa-solid fa-palette">{{ $t('Cosmetic') }}</v-list-item>
<v-list-item :to="{name: 'view_settings_shopping'}" prepend-icon="$shopping">{{ $t('Shopping_list') }}</v-list-item>
<v-list-item :to="{name: 'view_settings_mealplan'}" prepend-icon="$mealplan">{{ $t('Meal_Plan') }}</v-list-item>
<!-- <v-list-item prepend-icon="$search">{{ $t('Search') }}</v-list-item>-->
<v-list-item :href="getDjangoUrl('settings-shopping/')" target="_blank" prepend-icon="$search">{{ $t('Search') }}</v-list-item>
<v-divider></v-divider>
<v-list-subheader>Space</v-list-subheader>
<v-list-item :to="{name: 'view_settings_user_space'}" prepend-icon="$spaces">{{ $t('YourSpaces') }}</v-list-item>

View File

@@ -12,8 +12,9 @@
</v-card-text>
</v-card>
<!-- <horizontal-recipe-scroller :skeletons="4" mode="recent"></horizontal-recipe-scroller>-->
<horizontal-recipe-scroller :skeletons="4" mode="recent"></horizontal-recipe-scroller>
<horizontal-recipe-scroller :skeletons="4" mode="new"></horizontal-recipe-scroller>
<horizontal-recipe-scroller :skeletons="4" mode="keyword"></horizontal-recipe-scroller>
<horizontal-recipe-scroller :skeletons="2" mode="rating"></horizontal-recipe-scroller>
<horizontal-recipe-scroller :skeletons="4" mode="keyword"></horizontal-recipe-scroller>