Release v0.1.0 Candidate (#85)

* Changed uvicorn port to 80

* Changed port in docker-compose to match dockerfile

* Readded environment variables in docker-compose

* production image rework

* Use opengraph metadata to make basic recipe cards when full recipe metadata is not available

* fixed instrucitons on parse

* add last_recipe

* automated testing

* roadmap update

* Sqlite (#75)

* file structure

* auto-test

* take 2

* refactor ap scheduler and startup process

* fixed scraper error

* database abstraction

* database abstraction

* port recipes over to new schema

* meal migration

* start settings migration

* finale mongo port

* backup improvements

* migration imports to new DB structure

* unused import cleanup

* docs strings

* settings and theme import logic

* cleanup

* fixed tinydb error

* requirements

* fuzzy search

* remove scratch file

* sqlalchemy models

* improved search ui

* recipe models almost done

* sql modal population

* del scratch

* rewrite database model mixins

* mostly grabage

* recipe updates

* working sqllite

* remove old files and reorganize

* final cleanup

Co-authored-by: Hayden <hay-kot@pm.me>

* Backup card (#78)

* backup / import dialog

* upgrade to new tag method

* New import card

* rename settings.py to app_config.py

* migrate to poetry for development

* fix failing test

Co-authored-by: Hayden <hay-kot@pm.me>

* added mkdocs to docker-compose

* Translations (#72)

* Translations + danish

* changed back proxy target to use ENV

* Resolved more merge conflicts

* Removed test in translation

* Documentation of translations

* Updated translations

* removed old packages

Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>

* fail to start bug fixes

* feature: prep/cook/total time slots (#80)

Co-authored-by: Hayden <hay-kot@pm.me>

* missing bind attributes

* Bug fixes (#81)

* fix: url remains after succesful import

* docs: changelog + update todos

* arm image

* arm compose

* compose updates

* update poetry

* arm support

Co-authored-by: Hayden <hay-kot@pm.me>

* dockerfile hotfix

* dockerfile hotfix

* Version Release Final Touches (#84)

* Remove slim

* bug: opacity issues

* bug: startup failure with no database

* ci/cd on dev branch

* formatting

* v0.1.0 documentation

Co-authored-by: Hayden <hay-kot@pm.me>

* db init hotfix

* bug: fix crash in mongo

* fix mongo bug

* fixed version notifier

* finale changelog

Co-authored-by: kentora <=>
Co-authored-by: Hayden <hay-kot@pm.me>
Co-authored-by: Richard Mitic <richard.h.mitic@gmail.com>
Co-authored-by: kentora <kentora@kentora.dk>
This commit is contained in:
Hayden
2021-01-17 22:22:54 -09:00
committed by GitHub
parent f6c1fa0e8b
commit 88dfd40b8d
173 changed files with 10273 additions and 3735 deletions

View File

@@ -5,9 +5,9 @@
<v-col>
<v-card height="">
<v-card-text>
<h1>404 No Page Found</h1>
<h1>{{$t('404.page-not-found')}}</h1>
</v-card-text>
<v-btn text block @click="$router.push('/')"> Take me Home </v-btn>
<v-btn text block @click="$router.push('/')"> {{$t('404.take-me-home')}} </v-btn>
</v-card>
</v-col>
<v-col cols="2"></v-col>

View File

@@ -8,7 +8,7 @@
<NewMeal v-else @created="requestMeals" />
<v-card class="my-1">
<v-card-title class="headline"> Meal Plans </v-card-title>
<v-card-title class="headline"> {{$t('meal-plan.meal-plans')}} </v-card-title>
<v-divider></v-divider>
<v-timeline align-top :dense="$vuetify.breakpoint.smAndDown">
@@ -50,7 +50,7 @@
text
@click="editPlan(mealplan.uid)"
>
Edit
{{$t('general.edit')}}
</v-btn>
<v-btn
color="error lighten-2"
@@ -58,7 +58,7 @@
text
@click="deletePlan(mealplan.uid)"
>
Delete
{{$t('general.delete')}}
</v-btn>
</v-row>
</v-card-text>

View File

@@ -22,14 +22,16 @@
<v-card-text> {{ meal.description }} </v-card-text>
<v-btn
align="center"
color="secondary"
text
@click="$router.push(`/recipe/${meal.slug}`)"
>
View Recipe
</v-btn>
<v-card-actions>
<v-btn
align="center"
color="secondary"
text
@click="$router.push(`/recipe/${meal.slug}`)"
>
{{$t('recipe.view-recipe')}}
</v-btn>
</v-card-actions>
</v-card>
</v-col>
<v-col order-sm="0" :order-md="getOrder(index)" md="6" sm="12">

View File

@@ -6,6 +6,12 @@
class="d-print-none"
:key="imageKey"
>
<RecipeTimeCard
class="force-bottom"
:prepTime="recipeDetails.prepTime"
:totalTime="recipeDetails.totalTime"
:performTime="recipeDetails.performTime"
/>
</v-img>
<ButtonRow
:open="showIcons"
@@ -49,6 +55,7 @@ import utils from "../utils";
import VJsoneditor from "v-jsoneditor";
import RecipeViewer from "../components/Recipe/RecipeViewer";
import RecipeEditor from "../components/Recipe/RecipeEditor";
import RecipeTimeCard from "../components/Recipe/RecipeTimeCard.vue";
import ButtonRow from "../components/UI/ButtonRow";
export default {
@@ -57,10 +64,11 @@ export default {
RecipeViewer,
RecipeEditor,
ButtonRow,
RecipeTimeCard,
},
data() {
return {
// CurrentRecipe: this.$route.params.recipe,
// currentRecipe: this.$route.params.recipe,
form: false,
jsonEditor: false,
jsonEditorOptions: {
@@ -99,7 +107,7 @@ export default {
},
computed: {
CurrentRecipe() {
currentRecipe() {
return this.$route.params.recipe;
},
showIcons() {
@@ -118,7 +126,7 @@ export default {
this.fileObject = fileObject;
},
async getRecipeDetails() {
this.recipeDetails = await api.recipes.requestDetails(this.CurrentRecipe);
this.recipeDetails = await api.recipes.requestDetails(this.currentRecipe);
this.form = false;
},
getImage(image) {
@@ -130,7 +138,7 @@ export default {
api.recipes.delete(this.recipeDetails.slug);
},
async saveRecipe() {
await api.recipes.update(this.recipeDetails);
let slug = await api.recipes.update(this.recipeDetails);
if (this.fileObject) {
await api.recipes.updateImage(this.recipeDetails.slug, this.fileObject);
@@ -138,6 +146,7 @@ export default {
this.form = false;
this.imageKey += 1;
this.$router.push(`/recipe/${slug}`);
},
showForm() {
this.form = true;
@@ -154,4 +163,10 @@ export default {
.disabled-card {
opacity: 0.5;
}
.force-bottom {
position: absolute;
width: 100%;
bottom: 0;
}
</style>

View File

@@ -0,0 +1,58 @@
<template>
<div>
<v-row justify="center">
<v-col cols="1"> </v-col>
<v-col>
<SearchBar @results="updateResults" :show-results="false" />
</v-col>
<v-col cols="2">
<v-btn icon>
<v-icon large> mdi-filter </v-icon>
</v-btn>
</v-col>
</v-row>
<v-row v-if="searchResults">
<v-col
:sm="6"
:md="6"
:lg="4"
:xl="3"
v-for="item in searchResults.slice(0, 10)"
:key="item.item.name"
>
<RecipeCard
:name="item.item.name"
:description="item.item.description"
:slug="item.item.slug"
:rating="item.item.rating"
:image="item.item.image"
/>
</v-col>
</v-row>
</div>
</template>
<script>
import SearchBar from "../components/UI/SearchBar";
import RecipeCard from "../components/UI/RecipeCard";
export default {
components: {
SearchBar,
RecipeCard,
},
data() {
return {
searchResults: null,
};
},
methods: {
updateResults(results) {
this.searchResults = results;
},
},
};
</script>
<style>
</style>

View File

@@ -1,30 +1,37 @@
<template>
<v-container>
<v-alert v-if="newVersion" color="green" type="success" outlined>
A New Version of Mealie is Avaiable,
<a
href="https://github.com/hay-kot/mealie/releases/latest"
target="_blank"
class="green--text"
>
Visit the Repo
</a>
<v-alert
v-if="newVersion"
color="green"
type="success"
outlined
v-html="
$t('settings.new-version-available', {
aContents:
'target=\'_blank\' href=\'https://github.com/hay-kot/mealie\' class=\'green--text\'',
})
"
>
</v-alert>
<Theme />
<Backup class="mt-2" />
<Webhooks class="mt-2" />
<Migration class="mt-2" />
<p class="text-center my-2">
Version: {{ version }} | Latest: {{ latestVersion }} ·
{{ $t("settings.current") }}
{{ version }} |
{{ $t("settings.latest") }}
{{ latestVersion }}
·
<a href="https://hay-kot.github.io/mealie/" target="_blank">
Explore the Docs
{{ $t("settings.explore-the-docs") }}
</a>
·
<a
href="https://hay-kot.github.io/mealie/2.1%20-%20Contributions/"
href="https://hay-kot.github.io/mealie/contributors/non-coders/"
target="_blank"
>
Contribute
{{ $t("settings.contribute") }}
</a>
</p>
</v-container>
@@ -47,7 +54,7 @@ export default {
data() {
return {
latestVersion: null,
version: "v0.0.2",
version: "v0.1.0",
};
},
mounted() {