Merge branch 'develop' of https://github.com/vabene1111/recipes into develop

This commit is contained in:
vabene1111
2021-06-17 13:38:59 +02:00
10 changed files with 102 additions and 78 deletions

View File

@@ -13,16 +13,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-06-12 20:30+0200\n"
"PO-Revision-Date: 2021-05-04 09:02+0000\n"
"Last-Translator: Jesse <jesse.kamps@pm.me>\n"
"Language-Team: Dutch <http://translate.tandoor.dev/projects/tandoor/recipes-"
"backend/nl/>\n"
"PO-Revision-Date: 2021-06-16 20:12+0000\n"
"Last-Translator: Sander <dev.tandoor.translate_1623785130@binaryletter.com>\n"
"Language-Team: Dutch <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/nl/>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.5.3\n"
"X-Generator: Weblate 4.6.2\n"
#: .\cookbook\filters.py:23 .\cookbook\templates\base.html:98
#: .\cookbook\templates\forms\edit_internal_recipe.html:246
@@ -223,21 +223,23 @@ msgstr ""
#: .\cookbook\forms.py:409
msgid "Maximum number of users for this space reached."
msgstr ""
msgstr "Maximum aantal gebruikers voor deze ruimte bereikt."
#: .\cookbook\forms.py:415
msgid "Email address already taken!"
msgstr ""
msgstr "E-mailadres reeds in gebruik!"
#: .\cookbook\forms.py:423
msgid ""
"An email address is not required but if present the invite link will be send "
"to the user."
msgstr ""
"Een e-mailadres is niet vereist, maar indien aanwezig zal de "
"uitnodigingslink naar de gebruiker worden gestuurd."
#: .\cookbook\forms.py:438
msgid "Name already taken."
msgstr ""
msgstr "Naam reeds in gebruik."
#: .\cookbook\forms.py:449
msgid "Accept Terms and Privacy"
@@ -248,6 +250,8 @@ msgid ""
"In order to prevent spam, the requested email was not send. Please wait a "
"few minutes and try again."
msgstr ""
"Om spam te voorkomen werd de gevraagde e-mail niet verzonden. Wacht een paar "
"minuten en probeer het opnieuw."
#: .\cookbook\helper\permission_helper.py:124
#: .\cookbook\helper\permission_helper.py:144 .\cookbook\views\views.py:147
@@ -303,6 +307,8 @@ msgid ""
"An unexpected error occurred during the import. Please make sure you have "
"uploaded a valid file."
msgstr ""
"Er is een onverwachte fout opgetreden tijdens het importeren. Controleer of "
"u een geldig bestand hebt geüpload."
#: .\cookbook\integration\integration.py:169
msgid "The following recipes were ignored because they already existed:"
@@ -373,6 +379,8 @@ msgid ""
"Maximum file storage for space in MB. 0 for unlimited, -1 to disable file "
"upload."
msgstr ""
"Maximale bestandsopslag voor ruimte in MB. 0 voor onbeperkt, -1 om uploaden "
"van bestanden uit te schakelen."
#: .\cookbook\models.py:121 .\cookbook\templates\search.html:7
#: .\cookbook\templates\shopping_list.html:52
@@ -416,18 +424,16 @@ msgstr "Tijd"
#: .\cookbook\models.py:340
#: .\cookbook\templates\forms\edit_internal_recipe.html:204
#: .\cookbook\templates\forms\edit_internal_recipe.html:218
#, fuzzy
#| msgid "File ID"
msgid "File"
msgstr "Bestands ID"
msgstr "Bestand"
#: .\cookbook\serializer.py:109
msgid "File uploads are not enabled for this Space."
msgstr ""
msgstr "Bestandsuploads zijn niet ingeschakeld voor deze Ruimte."
#: .\cookbook\serializer.py:117
msgid "You have reached your file upload limit."
msgstr ""
msgstr "U heeft de uploadlimiet bereikt."
#: .\cookbook\tables.py:35 .\cookbook\templates\books.html:36
#: .\cookbook\templates\generic\edit_template.html:6
@@ -468,23 +474,23 @@ msgstr "Rapporteer een bug"
#: .\cookbook\templates\account\email.html:6
#: .\cookbook\templates\account\email.html:9
msgid "E-mail Addresses"
msgstr ""
msgstr "E-mailadressen"
#: .\cookbook\templates\account\email.html:11
msgid "The following e-mail addresses are associated with your account:"
msgstr ""
msgstr "De volgende e-mailadressen zijn aan uw account gekoppeld:"
#: .\cookbook\templates\account\email.html:28
msgid "Verified"
msgstr ""
msgstr "Geverifieerd"
#: .\cookbook\templates\account\email.html:30
msgid "Unverified"
msgstr ""
msgstr "Ongeverifieerd"
#: .\cookbook\templates\account\email.html:32
msgid "Primary"
msgstr ""
msgstr "Primair"
#: .\cookbook\templates\account\email.html:39
#, fuzzy
@@ -494,7 +500,7 @@ msgstr "Stel in als kop"
#: .\cookbook\templates\account\email.html:41
msgid "Re-send Verification"
msgstr ""
msgstr "Verificatie opnieuw verzenden"
#: .\cookbook\templates\account\email.html:42
#: .\cookbook\templates\socialaccount\connections.html:36
@@ -502,33 +508,33 @@ msgid "Remove"
msgstr "Verwijder"
#: .\cookbook\templates\account\email.html:50
#, fuzzy
#| msgid "Warning"
msgid "Warning:"
msgstr "Waarschuwing"
msgstr "Waarschuwing:"
#: .\cookbook\templates\account\email.html:50
msgid ""
"You currently do not have any e-mail address set up. You should really add "
"an e-mail address so you can receive notifications, reset your password, etc."
msgstr ""
"U hebt momenteel geen e-mailadres ingesteld. U zou een e-mailadres moeten "
"toevoegen zodat u meldingen kunt ontvangen, uw wachtwoord kunt resetten, enz."
#: .\cookbook\templates\account\email.html:56
msgid "Add E-mail Address"
msgstr ""
msgstr "E-mailadres toevoegen"
#: .\cookbook\templates\account\email.html:61
msgid "Add E-mail"
msgstr ""
msgstr "E-mail toevoegen"
#: .\cookbook\templates\account\email.html:71
msgid "Do you really want to remove the selected e-mail address?"
msgstr ""
msgstr "Wilt u het geselecteerde e-mailadres echt verwijderen?"
#: .\cookbook\templates\account\email_confirm.html:6
#: .\cookbook\templates\account\email_confirm.html:10
msgid "Confirm E-mail Address"
msgstr ""
msgstr "Bevestig e-mailadres"
#: .\cookbook\templates\account\email_confirm.html:16
#, python-format
@@ -538,6 +544,10 @@ msgid ""
"for user %(user_display)s\n"
" ."
msgstr ""
"Bevestig dat\n"
" <a href=\"mailto:%(email)s\">%(email)s</a> een e-mailadres is voor "
"gebruiker %(user_display)s\n"
" ."
#: .\cookbook\templates\account\email_confirm.html:22
#: .\cookbook\templates\generic\delete_template.html:21

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
<template>
<div>
<b-modal class="modal" id="id_modal_add_book" :title="$t('Add_to_Book')" :ok-title="$t('Add')"
<b-modal class="modal" :id="`id_modal_add_book_${modal_id}`" :title="$t('Add_to_Book')" :ok-title="$t('Add')"
:cancel-title="$t('Close')" @ok="addToBook()">
<multiselect
@@ -42,6 +42,7 @@ export default {
},
props: {
recipe: Object,
modal_id: Number
},
data() {
return {

View File

@@ -1,7 +1,7 @@
<template>
<div>
<b-modal class="modal" id="id_modal_cook_log" :title="$t('Log_Recipe_Cooking')" :ok-title="$t('Save')"
<b-modal class="modal" :id="`id_modal_cook_log_${modal_id}`" :title="$t('Log_Recipe_Cooking')" :ok-title="$t('Save')"
:cancel-title="$t('Close')" @ok="logCook()">
<p>{{ $t('all_fields_optional') }}</p>
@@ -38,6 +38,7 @@ export default {
name: 'CookLog',
props: {
recipe: Object,
modal_id: Number
},
data() {
return {

View File

@@ -5,13 +5,13 @@
<a :href="clickUrl()">
<b-card-img-lazy style="height: 15vh; object-fit: cover" :src=recipe_image v-bind:alt="$t('Recipe_Image')"
top></b-card-img-lazy>
<div class="card-img-overlay h-100 d-flex flex-column justify-content-right"
style="float:right; text-align: right; padding-top: 10px; padding-right: 5px">
<recipe-context-menu :recipe="recipe" style="float:right" v-if="recipe !== null"></recipe-context-menu>
<a><recipe-context-menu :recipe="recipe" style="float:right" v-if="recipe !== null"></recipe-context-menu></a>
</div>
</a>
<b-card-body>
<h5><a :href="clickUrl()">
<template v-if="recipe !== null">{{ recipe.name }}</template>
@@ -23,7 +23,10 @@
{{ recipe.description }}
<keywords :recipe="recipe" style="margin-top: 4px"></keywords>
<b-badge pill variant="info" v-if="!recipe.internal">{{ $t('External') }}</b-badge>
<b-badge pill variant="success" v-if="Date.parse(recipe.created_at) > new Date(Date.now() - (7 * (1000 * 60 * 60 * 24)))">{{ $t('New') }}</b-badge>
<b-badge pill variant="success"
v-if="Date.parse(recipe.created_at) > new Date(Date.now() - (7 * (1000 * 60 * 60 * 24)))">
{{ $t('New') }}
</b-badge>
</template>
<template v-else>{{ meal_plan.note }}</template>
</b-card-text>

View File

@@ -15,9 +15,11 @@
<a class="dropdown-item" :href="resolveDjangoUrl('edit_convert_recipe', recipe.id)" v-if="!recipe.internal"><i
class="fas fa-exchange-alt fa-fw"></i> {{ $t('convert_internal') }}</a>
<button class="dropdown-item" @click="$bvModal.show('id_modal_add_book')">
<i class="fas fa-bookmark fa-fw"></i> {{ $t('Add_to_Book') }}
</button>
<a href="#">
<button class="dropdown-item" @click="$bvModal.show(`id_modal_add_book_${modal_id}`)">
<i class="fas fa-bookmark fa-fw"></i> {{ $t('Add_to_Book') }}
</button>
</a>
<a class="dropdown-item" :href="`${resolveDjangoUrl('view_shopping') }?r=[${recipe.id},${servings_value}]`"
v-if="recipe.internal" target="_blank" rel="noopener noreferrer">
@@ -29,10 +31,11 @@
class="fas fa-calendar fa-fw"></i> {{ $t('Add_to_Plan') }}
</a>
<button class="dropdown-item" @click="$bvModal.show('id_modal_cook_log')"><i
class="fas fa-clipboard-list fa-fw"></i> {{ $t('Log_Cooking') }}
</button>
<a href="#">
<button class="dropdown-item" @click="$bvModal.show(`id_modal_cook_log_${modal_id}`)"><i
class="fas fa-clipboard-list fa-fw"></i> {{ $t('Log_Cooking') }}
</button>
</a>
<button class="dropdown-item" onclick="window.print()"><i
class="fas fa-print fa-fw"></i> {{ $t('Print') }}
@@ -41,34 +44,30 @@
<a class="dropdown-item" :href="resolveDjangoUrl('view_export') + '?r=' + recipe.id" target="_blank"
rel="noopener noreferrer"><i class="fas fa-file-export fa-fw"></i> {{ $t('Export') }}</a>
<button class="dropdown-item" @click="createShareLink()" v-if="recipe.internal"><i
class="fas fa-share-alt fa-fw"></i> {{ $t('Share') }}
</button>
<a href="#">
<button class="dropdown-item" @click="createShareLink()" v-if="recipe.internal"><i
class="fas fa-share-alt fa-fw"></i> {{ $t('Share') }}
</button>
</a>
</div>
</div>
<cook-log :recipe="recipe"></cook-log>
<cook-log :recipe="recipe" :modal_id="modal_id"></cook-log>
<add-recipe-to-book :recipe="recipe" :modal_id="modal_id"></add-recipe-to-book>
<b-modal id="modal-share-link" v-bind:title="$t('Share')" hide-footer>
<b-modal :id="`modal-share-link_${modal_id}`" v-bind:title="$t('Share')" hide-footer>
<div class="row">
<div class="col col-md-12">
<label v-if="recipe_share_link !== undefined">
{{ $t('Link') }}
<input ref="share_link_ref" class="form-control" v-model="recipe_share_link"/>
</label>
<br/>
<br/>
<b-button variant="success" @click="copyShareLink()" style="margin-right: 1vh; ">{{ $t('Copy') }}</b-button>
<b-button @click="$bvModal.hide('modal-share-link')">{{ $t('Close') }}</b-button>
<br/>
<br/>
<label v-if="recipe_share_link !== undefined">{{ $t('Link') }}</label>
<input ref="share_link_ref" class="form-control" v-model="recipe_share_link"/>
<b-button class="mt-2 mb-3" variant="secondary" @click="$bvModal.hide(`modal-share-link_${modal_id}`)">{{ $t('Close') }}</b-button>
<b-button class="mt-2 mb-3 ml-2" variant="primary" @click="copyShareLink()">{{ $t('Copy') }}</b-button>
<b-button class="mt-2 mb-3 ml-2 float-right" variant="success" @click="shareIntend()">{{ $t('Share') }} <i class="fa fa-share-alt"></i></b-button>
</div>
</div>
</b-modal>
@@ -80,6 +79,7 @@
import {makeToast, resolveDjangoUrl, ResolveUrlMixin} from "@/utils/utils";
import CookLog from "@/components/CookLog";
import axios from "axios";
import AddRecipeToBook from "./AddRecipeToBook";
export default {
name: 'RecipeContextMenu',
@@ -87,12 +87,14 @@ export default {
ResolveUrlMixin
],
components: {
AddRecipeToBook,
CookLog
},
data() {
return {
servings_value: 0,
recipe_share_link: undefined
recipe_share_link: undefined,
modal_id: this.recipe.id + Math.round(Math.random() * 100000)
}
},
props: {
@@ -108,7 +110,7 @@ export default {
methods: {
createShareLink: function () {
axios.get(resolveDjangoUrl('api_share_link', this.recipe.id)).then(result => {
this.$bvModal.show('modal-share-link')
this.$bvModal.show(`modal-share-link_${this.modal_id}`)
this.recipe_share_link = result.data.link
}).catch(err => {
@@ -119,10 +121,17 @@ export default {
},
copyShareLink: function () {
let share_input = this.$refs.share_link_ref;
share_input.select();
document.execCommand("copy");
},
shareIntend: function () {
let shareData = {
title: this.recipe.name,
text: this.$t('Check out this recipe!'),
url: this.recipe_share_link
}
navigator.share(shareData)
}
}
}

View File

@@ -1 +1 @@
{"status":"done","chunks":{"recipe_search_view":["css/chunk-vendors.css","js/chunk-vendors.js","js/recipe_search_view.js"],"recipe_view":["css/chunk-vendors.css","js/chunk-vendors.js","js/recipe_view.js"],"offline_view":["css/chunk-vendors.css","js/chunk-vendors.js","js/offline_view.js"],"import_response_view":["css/chunk-vendors.css","js/chunk-vendors.js","js/import_response_view.js"],"supermarket_view":["css/chunk-vendors.css","js/chunk-vendors.js","js/supermarket_view.js"],"user_file_view":["css/chunk-vendors.css","js/chunk-vendors.js","js/user_file_view.js"]},"assets":{"../../templates/sw.js":{"name":"../../templates/sw.js","path":"..\\..\\templates\\sw.js"},"css/chunk-vendors.css":{"name":"css/chunk-vendors.css","path":"css\\chunk-vendors.css"},"js/chunk-vendors.js":{"name":"js/chunk-vendors.js","path":"js\\chunk-vendors.js"},"js/import_response_view.js":{"name":"js/import_response_view.js","path":"js\\import_response_view.js"},"js/offline_view.js":{"name":"js/offline_view.js","path":"js\\offline_view.js"},"js/recipe_search_view.js":{"name":"js/recipe_search_view.js","path":"js\\recipe_search_view.js"},"js/recipe_view.js":{"name":"js/recipe_view.js","path":"js\\recipe_view.js"},"js/supermarket_view.js":{"name":"js/supermarket_view.js","path":"js\\supermarket_view.js"},"js/user_file_view.js":{"name":"js/user_file_view.js","path":"js\\user_file_view.js"},"recipe_search_view.html":{"name":"recipe_search_view.html","path":"recipe_search_view.html"},"recipe_view.html":{"name":"recipe_view.html","path":"recipe_view.html"},"offline_view.html":{"name":"offline_view.html","path":"offline_view.html"},"import_response_view.html":{"name":"import_response_view.html","path":"import_response_view.html"},"supermarket_view.html":{"name":"supermarket_view.html","path":"supermarket_view.html"},"user_file_view.html":{"name":"user_file_view.html","path":"user_file_view.html"},"manifest.json":{"name":"manifest.json","path":"manifest.json"}}}
{"status":"done","chunks":{"recipe_search_view":["js/chunk-vendors.js","js/recipe_search_view.js","recipe_search_view.8ddb3d95083697d49aed.hot-update.js"],"recipe_view":["js/chunk-vendors.js","js/recipe_view.js","recipe_view.8ddb3d95083697d49aed.hot-update.js"],"offline_view":["js/chunk-vendors.js","js/offline_view.js"],"import_response_view":["js/chunk-vendors.js","js/import_response_view.js"],"supermarket_view":["js/chunk-vendors.js","js/supermarket_view.js"],"user_file_view":["js/chunk-vendors.js","js/user_file_view.js"]},"publicPath":"http://localhost:8080/","assets":{"js/chunk-vendors.js":{"name":"js/chunk-vendors.js","path":"js\\chunk-vendors.js","publicPath":"http://localhost:8080/js/chunk-vendors.js"},"js/import_response_view.js":{"name":"js/import_response_view.js","path":"js\\import_response_view.js","publicPath":"http://localhost:8080/js/import_response_view.js"},"js/offline_view.js":{"name":"js/offline_view.js","path":"js\\offline_view.js","publicPath":"http://localhost:8080/js/offline_view.js"},"js/recipe_search_view.js":{"name":"js/recipe_search_view.js","path":"js\\recipe_search_view.js","publicPath":"http://localhost:8080/js/recipe_search_view.js"},"js/recipe_view.js":{"name":"js/recipe_view.js","path":"js\\recipe_view.js","publicPath":"http://localhost:8080/js/recipe_view.js"},"js/supermarket_view.js":{"name":"js/supermarket_view.js","path":"js\\supermarket_view.js","publicPath":"http://localhost:8080/js/supermarket_view.js"},"js/user_file_view.js":{"name":"js/user_file_view.js","path":"js\\user_file_view.js","publicPath":"http://localhost:8080/js/user_file_view.js"},"recipe_search_view.8ddb3d95083697d49aed.hot-update.js":{"name":"recipe_search_view.8ddb3d95083697d49aed.hot-update.js","path":"recipe_search_view.8ddb3d95083697d49aed.hot-update.js","publicPath":"http://localhost:8080/recipe_search_view.8ddb3d95083697d49aed.hot-update.js"},"recipe_view.8ddb3d95083697d49aed.hot-update.js":{"name":"recipe_view.8ddb3d95083697d49aed.hot-update.js","path":"recipe_view.8ddb3d95083697d49aed.hot-update.js","publicPath":"http://localhost:8080/recipe_view.8ddb3d95083697d49aed.hot-update.js"},"8ddb3d95083697d49aed.hot-update.json":{"name":"8ddb3d95083697d49aed.hot-update.json","path":"8ddb3d95083697d49aed.hot-update.json","publicPath":"http://localhost:8080/8ddb3d95083697d49aed.hot-update.json"},"recipe_search_view.html":{"name":"recipe_search_view.html","path":"recipe_search_view.html","publicPath":"http://localhost:8080/recipe_search_view.html"},"recipe_view.html":{"name":"recipe_view.html","path":"recipe_view.html","publicPath":"http://localhost:8080/recipe_view.html"},"offline_view.html":{"name":"offline_view.html","path":"offline_view.html","publicPath":"http://localhost:8080/offline_view.html"},"import_response_view.html":{"name":"import_response_view.html","path":"import_response_view.html","publicPath":"http://localhost:8080/import_response_view.html"},"supermarket_view.html":{"name":"supermarket_view.html","path":"supermarket_view.html","publicPath":"http://localhost:8080/supermarket_view.html"},"user_file_view.html":{"name":"user_file_view.html","path":"user_file_view.html","publicPath":"http://localhost:8080/user_file_view.html"},"manifest.json":{"name":"manifest.json","path":"manifest.json","publicPath":"http://localhost:8080/manifest.json"}}}