From 2d66936d8bd7be911d290663e15c5ec9524b6d46 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 12 Dec 2020 09:24:01 +0100 Subject: [PATCH 1/9] NL translation update NL translation update --- cps/translations/nl/LC_MESSAGES/messages.po | 615 +++++++++++--------- 1 file changed, 352 insertions(+), 263 deletions(-) diff --git a/cps/translations/nl/LC_MESSAGES/messages.po b/cps/translations/nl/LC_MESSAGES/messages.po index 7f2eeec6..63c3d4f4 100644 --- a/cps/translations/nl/LC_MESSAGES/messages.po +++ b/cps/translations/nl/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Calibre-Web (GPLV3)\n" "Report-Msgid-Bugs-To: https://github.com/janeczku/Calibre-Web\n" -"POT-Creation-Date: 2020-12-01 14:10+0100\n" -"PO-Revision-Date: 2020-05-10 21:00+0200\n" +"POT-Creation-Date: 2020-12-12 08:17+0100\n" +"PO-Revision-Date: 2020-12-12 08:20+0100\n" "Last-Translator: Marcel Maas \n" "Language: nl\n" "Language-Team: ed.driesen@telenet.be\n" @@ -17,7 +17,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.8.0\n" +"Generated-By: Babel 2.7.0\n" #: cps/about.py:42 msgid "installed" @@ -62,233 +62,242 @@ msgstr "Systeembeheer" msgid "UI Configuration" msgstr "Uiterlijk aanpassen" -#: cps/admin.py:192 cps/admin.py:729 +#: cps/admin.py:192 cps/admin.py:745 msgid "Calibre-Web configuration updated" msgstr "Calibre-Web-configuratie bijgewerkt" -#: cps/admin.py:438 cps/admin.py:444 cps/admin.py:455 cps/admin.py:466 +#: cps/admin.py:434 cps/admin.py:440 cps/admin.py:451 cps/admin.py:462 #: cps/templates/modal_dialogs.html:29 msgid "Deny" msgstr "Weigeren" -#: cps/admin.py:440 cps/admin.py:446 cps/admin.py:457 cps/admin.py:468 +#: cps/admin.py:436 cps/admin.py:442 cps/admin.py:453 cps/admin.py:464 #: cps/templates/modal_dialogs.html:28 msgid "Allow" msgstr "Toestaan" -#: cps/admin.py:514 +#: cps/admin.py:510 msgid "client_secrets.json Is Not Configured For Web Application" msgstr "client_secrets.json is niet geconfigureerd voor webapplicatie" -#: cps/admin.py:554 +#: cps/admin.py:550 msgid "Logfile Location is not Valid, Please Enter Correct Path" msgstr "De locatie van het logbestand is onjuist, voer een geldige locatie in" -#: cps/admin.py:560 +#: cps/admin.py:556 msgid "Access Logfile Location is not Valid, Please Enter Correct Path" msgstr "De locatie vam het toegangslog is onjuist, voer een geldige locatie in" -#: cps/admin.py:586 +#: cps/admin.py:585 msgid "Please Enter a LDAP Provider, Port, DN and User Object Identifier" msgstr "" -#: cps/admin.py:601 +#: cps/admin.py:600 #, python-format msgid "LDAP Group Object Filter Needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:604 +#: cps/admin.py:603 msgid "LDAP Group Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:609 +#: cps/admin.py:608 #, python-format msgid "LDAP User Object Filter needs to Have One \"%s\" Format Identifier" msgstr "" -#: cps/admin.py:612 +#: cps/admin.py:611 msgid "LDAP User Object Filter Has Unmatched Parenthesis" msgstr "" -#: cps/admin.py:617 -msgid "LDAP Certificate Location is not Valid, Please Enter Correct Path" -msgstr "LDAP certificaatlocatie is onjuist, voer een geldige locatie in" +#: cps/admin.py:619 +#, python-format +msgid "LDAP Member User Filter needs to Have One \"%s\" Format Identifier" +msgstr "" -#: cps/admin.py:642 +#: cps/admin.py:622 +msgid "LDAP Member User Filter Has Unmatched Parenthesis" +msgstr "" + +#: cps/admin.py:630 +msgid "LDAP CACertificate, Certificate or Key Location is not Valid, Please Enter Correct Path" +msgstr "" + +#: cps/admin.py:656 msgid "Keyfile Location is not Valid, Please Enter Correct Path" msgstr "SSL-sleutellocatie is niet geldig, voer een geldige locatie in" -#: cps/admin.py:646 +#: cps/admin.py:660 msgid "Certfile Location is not Valid, Please Enter Correct Path" msgstr "SSL-certificaatlocatie is niet geldig, voer een geldige locatie in" -#: cps/admin.py:712 cps/admin.py:811 cps/admin.py:901 cps/admin.py:950 +#: cps/admin.py:728 cps/admin.py:827 cps/admin.py:917 cps/admin.py:966 #: cps/shelf.py:100 cps/shelf.py:161 cps/shelf.py:202 cps/shelf.py:260 #: cps/shelf.py:309 cps/shelf.py:338 cps/shelf.py:368 cps/shelf.py:392 msgid "Settings DB is not Writeable" -msgstr "" +msgstr "Instellingen niet opgeslagen" -#: cps/admin.py:724 +#: cps/admin.py:740 msgid "DB Location is not Valid, Please Enter Correct Path" msgstr "Database niet gevonden, voer de juiste locatie in" -#: cps/admin.py:726 +#: cps/admin.py:742 msgid "DB is not Writeable" -msgstr "" +msgstr "Kan niet schrijven naar database" -#: cps/admin.py:759 +#: cps/admin.py:775 msgid "Basic Configuration" msgstr "Basis configuratie" -#: cps/admin.py:774 cps/web.py:1508 +#: cps/admin.py:790 cps/web.py:1552 msgid "Please fill out all fields!" msgstr "Vul alle velden in!" -#: cps/admin.py:777 cps/admin.py:789 cps/admin.py:795 cps/admin.py:919 +#: cps/admin.py:793 cps/admin.py:805 cps/admin.py:811 cps/admin.py:935 msgid "Add new user" msgstr "Gebruiker toevoegen" -#: cps/admin.py:786 cps/web.py:1754 +#: cps/admin.py:802 cps/web.py:1798 msgid "E-mail is not from valid domain" msgstr "Het e-mailadres bevat geen geldige domeinnaam" -#: cps/admin.py:793 cps/admin.py:808 +#: cps/admin.py:809 cps/admin.py:824 msgid "Found an existing account for this e-mail address or nickname." msgstr "Bestaand account met dit e-mailadres of deze gebruikersnaam aangetroffen." -#: cps/admin.py:804 +#: cps/admin.py:820 #, python-format msgid "User '%(user)s' created" msgstr "Gebruiker '%(user)s' aangemaakt" -#: cps/admin.py:820 +#: cps/admin.py:836 #, python-format msgid "User '%(nick)s' deleted" msgstr "Gebruiker '%(nick)s' verwijderd" -#: cps/admin.py:823 +#: cps/admin.py:839 msgid "No admin user remaining, can't delete user" msgstr "Kan laatste systeembeheerder niet verwijderen" -#: cps/admin.py:829 +#: cps/admin.py:845 msgid "No admin user remaining, can't remove admin role" msgstr "Kan systeembeheerder rol niet verwijderen van de laatste systeembeheerder" -#: cps/admin.py:865 cps/web.py:1796 +#: cps/admin.py:881 cps/web.py:1840 msgid "Found an existing account for this e-mail address." msgstr "Bestaand account met dit e-mailadres aangetroffen." -#: cps/admin.py:874 cps/admin.py:888 cps/admin.py:991 cps/web.py:1772 +#: cps/admin.py:890 cps/admin.py:904 cps/admin.py:1007 cps/web.py:1816 #, python-format msgid "Edit User %(nick)s" msgstr "Gebruiker '%(nick)s' bewerken" -#: cps/admin.py:880 cps/web.py:1765 +#: cps/admin.py:896 cps/web.py:1809 msgid "This username is already taken" msgstr "Deze gebruikersnaam is al in gebruik" -#: cps/admin.py:895 +#: cps/admin.py:911 #, python-format msgid "User '%(nick)s' updated" msgstr "Gebruiker '%(nick)s' bijgewerkt" -#: cps/admin.py:898 +#: cps/admin.py:914 msgid "An unknown error occured." msgstr "Er is een onbekende fout opgetreden." -#: cps/admin.py:928 cps/templates/admin.html:71 +#: cps/admin.py:944 msgid "Edit E-mail Server Settings" msgstr "SMTP-instellingen bewerken" -#: cps/admin.py:957 +#: cps/admin.py:973 #, python-format msgid "Test e-mail successfully send to %(kindlemail)s" msgstr "Test-e-mail verstuurd naar %(kindlemail)s" -#: cps/admin.py:960 +#: cps/admin.py:976 #, python-format msgid "There was an error sending the Test e-mail: %(res)s" msgstr "Fout opgetreden bij het versturen van de test-e-mail: %(res)s" -#: cps/admin.py:962 +#: cps/admin.py:978 msgid "Please configure your e-mail address first..." msgstr "Gelieve eerst je e-mail adres configureren..." -#: cps/admin.py:964 +#: cps/admin.py:980 msgid "E-mail server settings updated" msgstr "E-mailserver-instellingen bijgewerkt" -#: cps/admin.py:975 +#: cps/admin.py:991 msgid "User not found" msgstr "Gebruiker niet gevonden" -#: cps/admin.py:1002 +#: cps/admin.py:1018 #, python-format msgid "Password for user %(user)s reset" msgstr "Wachtwoord voor gebruiker %(user)s is hersteld" -#: cps/admin.py:1005 cps/web.py:1532 cps/web.py:1596 +#: cps/admin.py:1021 cps/web.py:1576 cps/web.py:1640 msgid "An unknown error occurred. Please try again later." msgstr "Onbekende fout opgetreden. Probeer het later nog eens." -#: cps/admin.py:1008 cps/web.py:1470 +#: cps/admin.py:1024 cps/web.py:1514 msgid "Please configure the SMTP mail settings first..." msgstr "Stel eerst SMTP-mail in..." -#: cps/admin.py:1020 +#: cps/admin.py:1036 msgid "Logfile viewer" msgstr "Logbestand lezer" -#: cps/admin.py:1081 +#: cps/admin.py:1097 msgid "Requesting update package" msgstr "Update opvragen" -#: cps/admin.py:1082 +#: cps/admin.py:1098 msgid "Downloading update package" msgstr "Update downloaden" -#: cps/admin.py:1083 +#: cps/admin.py:1099 msgid "Unzipping update package" msgstr "Update uitpakken" -#: cps/admin.py:1084 +#: cps/admin.py:1100 msgid "Replacing files" msgstr "Update toepassen" -#: cps/admin.py:1085 +#: cps/admin.py:1101 msgid "Database connections are closed" msgstr "Databaseverbindingen zijn gesloten" -#: cps/admin.py:1086 +#: cps/admin.py:1102 msgid "Stopping server" msgstr "Bezig met stoppen van Calibre-Web" -#: cps/admin.py:1087 +#: cps/admin.py:1103 msgid "Update finished, please press okay and reload page" msgstr "Update voltooid, klik op 'Oké' en vernieuw de pagina" -#: cps/admin.py:1088 cps/admin.py:1089 cps/admin.py:1090 cps/admin.py:1091 -#: cps/admin.py:1092 +#: cps/admin.py:1104 cps/admin.py:1105 cps/admin.py:1106 cps/admin.py:1107 +#: cps/admin.py:1108 msgid "Update failed:" msgstr "Update mislukt:" -#: cps/admin.py:1088 cps/updater.py:320 cps/updater.py:521 cps/updater.py:523 +#: cps/admin.py:1104 cps/updater.py:320 cps/updater.py:521 cps/updater.py:523 msgid "HTTP Error" msgstr "HTTP-fout" -#: cps/admin.py:1089 cps/updater.py:322 cps/updater.py:525 +#: cps/admin.py:1105 cps/updater.py:322 cps/updater.py:525 msgid "Connection error" msgstr "Verbindingsfout" -#: cps/admin.py:1090 cps/updater.py:324 cps/updater.py:527 +#: cps/admin.py:1106 cps/updater.py:324 cps/updater.py:527 msgid "Timeout while establishing connection" msgstr "Time-out tijdens maken van verbinding" -#: cps/admin.py:1091 cps/updater.py:326 cps/updater.py:529 +#: cps/admin.py:1107 cps/updater.py:326 cps/updater.py:529 msgid "General error" msgstr "Algemene fout" -#: cps/admin.py:1092 +#: cps/admin.py:1108 msgid "Update File Could Not be Saved in Temp Dir" msgstr "Geüpload bestand kon niet opgeslagen worden in de tijdelijke map" @@ -298,7 +307,7 @@ msgstr "niet geconfigureerd" #: cps/converter.py:33 msgid "Execution permissions missing" -msgstr "" +msgstr "Kan programma niet uitvoeren" #: cps/editbooks.py:272 cps/editbooks.py:274 msgid "Book Format Successfully Deleted" @@ -308,8 +317,8 @@ msgstr "Het boekformaat is verwijderd" msgid "Book Successfully Deleted" msgstr "Het boek is verwijderd" -#: cps/editbooks.py:292 cps/editbooks.py:595 cps/web.py:1827 cps/web.py:1868 -#: cps/web.py:1930 +#: cps/editbooks.py:292 cps/editbooks.py:595 cps/web.py:1871 cps/web.py:1912 +#: cps/web.py:1983 msgid "Error opening eBook. File does not exist or file is not accessible" msgstr "Kan e-boek niet openen: het bestand bestaat niet of is ontoegankelijk" @@ -344,7 +353,7 @@ msgstr "Kan %(file)s niet opslaan." #: cps/editbooks.py:551 cps/editbooks.py:906 #, python-format msgid "Database error: %(error)s." -msgstr "" +msgstr "Database fout: %(error)s." #: cps/editbooks.py:555 #, python-format @@ -353,7 +362,7 @@ msgstr "Bestandsformaat %(ext)s toegevoegd aan %(book)s" #: cps/editbooks.py:675 msgid "Identifiers are not Case Sensitive, Overwriting Old Identifier" -msgstr "" +msgstr "Identificatoren zijn niet hoofdlettergevoelig, overschrijf huidige identificatoren" #: cps/editbooks.py:712 msgid "Metadata successfully updated" @@ -502,11 +511,11 @@ msgstr "Boeken locatie '%(path)s' niet aangetroffen op Google Drive" #: cps/helper.py:591 msgid "Error Downloading Cover" -msgstr "" +msgstr "Fout bij downloaden omslag" #: cps/helper.py:594 msgid "Cover Format Error" -msgstr "" +msgstr "Onjuist omslag formaat" #: cps/helper.py:609 msgid "Failed to create path for cover" @@ -581,7 +590,7 @@ msgstr "Inloggen bij Google mislukt." msgid "Failed to fetch user info from Google." msgstr "Opvragen gebruikersinfo bij Google mislukt." -#: cps/oauth_bb.py:225 cps/web.py:1568 cps/web.py:1710 +#: cps/oauth_bb.py:225 cps/web.py:1612 cps/web.py:1754 #, python-format msgid "you are now logged in as: '%(nickname)s'" msgstr "je bent ingelogd als: '%(nickname)s'" @@ -735,13 +744,13 @@ msgstr "Populaire boeken tonen" #: cps/ub.py:74 msgid "Downloaded Books" -msgstr "" +msgstr "Gedownloade boeken" #: cps/ub.py:76 msgid "Show Downloaded Books" -msgstr "" +msgstr "Gedownloade boeken tonen" -#: cps/templates/index.xml:24 cps/ub.py:79 cps/web.py:642 +#: cps/templates/index.xml:24 cps/ub.py:79 cps/web.py:683 msgid "Top Rated Books" msgstr "Best beoordeelde boeken" @@ -750,7 +759,7 @@ msgid "Show Top Rated Books" msgstr "Best beoordeelde boeken tonen" #: cps/templates/index.xml:46 cps/templates/index.xml:50 cps/ub.py:82 -#: cps/web.py:903 +#: cps/web.py:944 msgid "Read Books" msgstr "Gelezen boeken" @@ -759,7 +768,7 @@ msgid "Show read and unread" msgstr "Gelezen/Ongelezen boeken tonen" #: cps/templates/index.xml:53 cps/templates/index.xml:57 cps/ub.py:86 -#: cps/web.py:906 +#: cps/web.py:947 msgid "Unread Books" msgstr "Ongelezen boeken" @@ -776,7 +785,7 @@ msgid "Show random books" msgstr "Willekeurige boeken tonen" #: cps/templates/book_table.html:50 cps/templates/index.xml:75 cps/ub.py:92 -#: cps/web.py:1207 +#: cps/web.py:1248 msgid "Categories" msgstr "Categorieën" @@ -786,7 +795,7 @@ msgstr "Categoriekeuze tonen" #: cps/templates/book_edit.html:84 cps/templates/book_table.html:51 #: cps/templates/index.xml:82 cps/templates/search_form.html:54 cps/ub.py:95 -#: cps/web.py:1111 cps/web.py:1121 +#: cps/web.py:1152 cps/web.py:1162 msgid "Series" msgstr "Boekenreeksen" @@ -803,7 +812,7 @@ msgid "Show author selection" msgstr "Auteurkeuze tonen" #: cps/templates/book_table.html:55 cps/templates/index.xml:68 cps/ub.py:102 -#: cps/web.py:1090 +#: cps/web.py:1131 msgid "Publishers" msgstr "Uitgevers" @@ -812,7 +821,7 @@ msgid "Show publisher selection" msgstr "Uitgeverskeuze tonen" #: cps/templates/book_table.html:53 cps/templates/index.xml:89 -#: cps/templates/search_form.html:75 cps/ub.py:105 cps/web.py:1186 +#: cps/templates/search_form.html:75 cps/ub.py:105 cps/web.py:1227 msgid "Languages" msgstr "Talen" @@ -836,7 +845,7 @@ msgstr "Bestandsformaten" msgid "Show file formats selection" msgstr "Bestandsformaten tonen" -#: cps/ub.py:116 cps/web.py:930 +#: cps/ub.py:116 cps/web.py:971 msgid "Archived Books" msgstr "Gearchiveerde boeken" @@ -844,13 +853,13 @@ msgstr "Gearchiveerde boeken" msgid "Show archived books" msgstr "Gearchiveerde boeken tonen" -#: cps/ub.py:120 cps/web.py:1001 +#: cps/ub.py:120 cps/web.py:1042 msgid "Books List" -msgstr "" +msgstr "Boekenlijst" #: cps/ub.py:122 msgid "Show Books List" -msgstr "" +msgstr "Boekenlijst tonen" #: cps/updater.py:295 cps/updater.py:306 cps/updater.py:407 cps/updater.py:421 msgid "Unexpected data while reading update information" @@ -890,212 +899,212 @@ msgstr "Fout: %(ldaperror)s" msgid "Error: No user returned in response of LDAP server" msgstr "Fout: No user returned in response of LDAP server" -#: cps/web.py:371 +#: cps/web.py:389 msgid "Failed to Create at Least One LDAP User" msgstr "" -#: cps/web.py:374 +#: cps/web.py:392 msgid "At Least One LDAP User Not Found in Database" msgstr "" -#: cps/web.py:376 -msgid "User Successfully Imported" -msgstr "Gebruiker is geïmporteerd" +#: cps/web.py:394 +msgid "{} User Successfully Imported" +msgstr "" -#: cps/templates/index.html:5 cps/web.py:650 +#: cps/templates/index.html:5 cps/web.py:691 msgid "Discover (Random Books)" msgstr "Verkennen (willekeurige boeken)" -#: cps/web.py:689 +#: cps/web.py:730 msgid "Books" msgstr "Boeken" -#: cps/web.py:716 +#: cps/web.py:757 msgid "Hot Books (Most Downloaded)" msgstr "Populaire boeken (meest gedownload)" -#: cps/web.py:751 +#: cps/web.py:792 #, python-format msgid "Downloaded books by %(user)s" -msgstr "" +msgstr "Gedownloade boeken door %(user)s" -#: cps/web.py:765 +#: cps/web.py:806 msgid "Oops! Selected book title is unavailable. File does not exist or is not accessible" msgstr "Oeps! Geselecteerd boek is niet beschikbaar. Bestand bestaat niet of is niet toegankelijk" -#: cps/web.py:779 +#: cps/web.py:820 #, python-format msgid "Author: %(name)s" msgstr "Auteur: %(name)s" -#: cps/web.py:793 +#: cps/web.py:834 #, python-format msgid "Publisher: %(name)s" msgstr "Uitgever: %(name)s" -#: cps/web.py:806 +#: cps/web.py:847 #, python-format msgid "Series: %(serie)s" msgstr "Reeks: %(serie)s" -#: cps/web.py:819 +#: cps/web.py:860 #, python-format msgid "Rating: %(rating)s stars" msgstr "Beoordeling: %(rating)s sterren" -#: cps/web.py:832 +#: cps/web.py:873 #, python-format msgid "File format: %(format)s" msgstr "Bestandsformaat: %(format)s" -#: cps/web.py:846 +#: cps/web.py:887 #, python-format msgid "Category: %(name)s" msgstr "Categorie: %(name)s" -#: cps/web.py:865 +#: cps/web.py:906 #, python-format msgid "Language: %(name)s" msgstr "Taal: %(name)s" -#: cps/web.py:894 +#: cps/web.py:935 #, python-format msgid "Custom Column No.%(column)d is not existing in calibre database" msgstr "" -#: cps/templates/layout.html:56 cps/web.py:961 cps/web.py:1410 +#: cps/templates/layout.html:56 cps/web.py:1002 cps/web.py:1451 msgid "Advanced Search" msgstr "Geavanceerd zoeken" #: cps/templates/book_edit.html:213 cps/templates/feed.xml:33 #: cps/templates/layout.html:45 cps/templates/layout.html:48 -#: cps/templates/search_form.html:175 cps/web.py:973 cps/web.py:1244 +#: cps/templates/search_form.html:175 cps/web.py:1014 cps/web.py:1285 msgid "Search" msgstr "Zoeken" -#: cps/web.py:1139 +#: cps/web.py:1180 msgid "Ratings list" msgstr "Beoordelingen" -#: cps/web.py:1158 +#: cps/web.py:1199 msgid "File formats list" msgstr "Alle bestandsformaten" -#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:1221 +#: cps/templates/layout.html:74 cps/templates/tasks.html:7 cps/web.py:1262 msgid "Tasks" msgstr "Taken" -#: cps/web.py:1306 +#: cps/web.py:1347 msgid "Published after " msgstr "Gepubliceerd na " -#: cps/web.py:1313 +#: cps/web.py:1354 msgid "Published before " msgstr "Gepubliceerd vóór " -#: cps/web.py:1328 +#: cps/web.py:1369 #, python-format msgid "Rating <= %(rating)s" msgstr "Beoordeling <= %(rating)s" -#: cps/web.py:1330 +#: cps/web.py:1371 #, python-format msgid "Rating >= %(rating)s" msgstr "Beoordeling >= %(rating)s" -#: cps/web.py:1475 +#: cps/web.py:1519 #, python-format msgid "Book successfully queued for sending to %(kindlemail)s" msgstr "Het boek is in de wachtrij geplaatst om te worden verstuurd aan %(kindlemail)s" -#: cps/web.py:1479 +#: cps/web.py:1523 #, python-format msgid "Oops! There was an error sending this book: %(res)s" msgstr "Fout opgetreden bij het versturen van dit boek: %(res)s" -#: cps/web.py:1481 +#: cps/web.py:1525 msgid "Please update your profile with a valid Send to Kindle E-mail Address." msgstr "Stel je kindle-e-mailadres in..." -#: cps/web.py:1498 +#: cps/web.py:1542 msgid "E-Mail server is not configured, please contact your administrator!" msgstr "E-mailserver is niet geconfigureerd, neem contact op met de beheerder!" -#: cps/web.py:1499 cps/web.py:1509 cps/web.py:1533 cps/web.py:1537 -#: cps/web.py:1542 cps/web.py:1546 +#: cps/web.py:1543 cps/web.py:1553 cps/web.py:1577 cps/web.py:1581 +#: cps/web.py:1586 cps/web.py:1590 msgid "register" msgstr "registreren" -#: cps/web.py:1535 +#: cps/web.py:1579 msgid "Your e-mail is not allowed to register" msgstr "Dit e-mailadres mag niet worden gebruikt voor registratie" -#: cps/web.py:1538 +#: cps/web.py:1582 msgid "Confirmation e-mail was send to your e-mail account." msgstr "Er is een bevestigings-e-mail verstuurd naar je e-mailadres." -#: cps/web.py:1541 +#: cps/web.py:1585 msgid "This username or e-mail address is already in use." msgstr "Gebruikersnaam of e-mailadres is al in gebruik." -#: cps/web.py:1558 +#: cps/web.py:1602 msgid "Cannot activate LDAP authentication" msgstr "Kan de LDAP authenticatie niet activeren" -#: cps/web.py:1575 +#: cps/web.py:1619 #, python-format msgid "Fallback Login as: '%(nickname)s', LDAP Server not reachable, or user not known" msgstr "" -#: cps/web.py:1581 +#: cps/web.py:1625 #, python-format msgid "Could not login: %(message)s" msgstr "Inloggen mislukt: %(message)s" -#: cps/web.py:1585 cps/web.py:1609 +#: cps/web.py:1629 cps/web.py:1653 msgid "Wrong Username or Password" msgstr "Verkeerde gebruikersnaam of wachtwoord" -#: cps/web.py:1592 +#: cps/web.py:1636 msgid "New Password was send to your email address" msgstr "Een nieuw wachtwoord is verzonden naar je e-mailadres" -#: cps/web.py:1598 +#: cps/web.py:1642 msgid "Please enter valid username to reset password" msgstr "Geef een geldige gebruikersnaam op om je wachtwoord te herstellen" -#: cps/web.py:1604 +#: cps/web.py:1648 #, python-format msgid "You are now logged in as: '%(nickname)s'" msgstr "Je bent ingelogd als: '%(nickname)s'" -#: cps/web.py:1615 cps/web.py:1642 +#: cps/web.py:1659 cps/web.py:1686 msgid "login" msgstr "inloggen" -#: cps/web.py:1654 cps/web.py:1688 +#: cps/web.py:1698 cps/web.py:1732 msgid "Token not found" msgstr "Toegangssleutel niet gevonden" -#: cps/web.py:1663 cps/web.py:1696 +#: cps/web.py:1707 cps/web.py:1740 msgid "Token has expired" msgstr "Toegangssleutel is verlopen" -#: cps/web.py:1672 +#: cps/web.py:1716 msgid "Success! Please return to your device" msgstr "Gelukt! Ga terug naar je apparaat" -#: cps/web.py:1756 cps/web.py:1812 +#: cps/web.py:1800 cps/web.py:1856 #, python-format msgid "%(name)s's profile" msgstr "%(name)s's profiel" -#: cps/web.py:1792 +#: cps/web.py:1836 msgid "Profile updated" msgstr "Profiel bijgewerkt" -#: cps/web.py:1839 cps/web.py:1842 cps/web.py:1845 cps/web.py:1852 -#: cps/web.py:1857 +#: cps/web.py:1883 cps/web.py:1886 cps/web.py:1889 cps/web.py:1896 +#: cps/web.py:1901 msgid "Read a Book" msgstr "Lees een boek" @@ -1192,17 +1201,17 @@ msgstr "Verwijderen" #: cps/templates/admin.html:23 msgid "Public Shelf" -msgstr "" +msgstr "Openbare boekenplank" #: cps/templates/admin.html:44 msgid "Add New User" msgstr "Gebruiker toevoegen" -#: cps/templates/admin.html:46 cps/templates/admin.html:47 +#: cps/templates/admin.html:46 msgid "Import LDAP Users" msgstr "LDAP gebruikers importeren" -#: cps/templates/admin.html:54 +#: cps/templates/admin.html:53 msgid "E-mail Server Settings" msgstr "SMTP-serverinstellingen" @@ -1210,149 +1219,149 @@ msgstr "SMTP-serverinstellingen" msgid "SMTP Hostname" msgstr "SMTP-hostnaam (gebruik mail.example.org om wachtwoordherstel uit te schakelen)" -#: cps/templates/admin.html:58 cps/templates/email_edit.html:15 +#: cps/templates/admin.html:61 cps/templates/email_edit.html:15 msgid "SMTP Port" msgstr "SMTP-poort" -#: cps/templates/admin.html:59 cps/templates/email_edit.html:19 +#: cps/templates/admin.html:65 cps/templates/email_edit.html:19 msgid "Encryption" msgstr "Encryptie" -#: cps/templates/admin.html:60 cps/templates/email_edit.html:27 +#: cps/templates/admin.html:69 cps/templates/email_edit.html:27 msgid "SMTP Login" msgstr "SMTP-gebruikersnaam" -#: cps/templates/admin.html:61 cps/templates/email_edit.html:35 +#: cps/templates/admin.html:73 cps/templates/email_edit.html:35 msgid "From E-mail" msgstr "Van e-mail" -#: cps/templates/admin.html:77 -msgid "Configuration" -msgstr "Instellingen" - -#: cps/templates/admin.html:80 -msgid "Calibre Database Directory" -msgstr "Calibre-database locatie" - -#: cps/templates/admin.html:84 cps/templates/config_edit.html:129 -msgid "Log Level" -msgstr "Logniveau" - -#: cps/templates/admin.html:88 -msgid "Port" -msgstr "Poort" - -#: cps/templates/admin.html:93 -msgid "External Port" -msgstr "" - -#: cps/templates/admin.html:100 cps/templates/config_view_edit.html:27 -msgid "Books per Page" -msgstr "Aantal boeken per pagina" - -#: cps/templates/admin.html:104 -msgid "Uploads" -msgstr "Uploaden toestaan" - -#: cps/templates/admin.html:108 -msgid "Anonymous Browsing" -msgstr "Anoniem verkennen" - -#: cps/templates/admin.html:112 -msgid "Public Registration" -msgstr "Openbare registratie" - -#: cps/templates/admin.html:116 -msgid "Magic Link Remote Login" -msgstr "Inloggen op afstand" - -#: cps/templates/admin.html:120 -msgid "Reverse Proxy Login" -msgstr "Reverse Proxy Login" - -#: cps/templates/admin.html:125 -msgid "Reverse proxy header name" -msgstr "Reverse proxy header naam" - -#: cps/templates/admin.html:130 +#: cps/templates/admin.html:78 cps/templates/admin.html:137 msgid "Edit Basic Configuration" msgstr "Bewerk basis configuratie" -#: cps/templates/admin.html:131 +#: cps/templates/admin.html:84 +msgid "Configuration" +msgstr "Instellingen" + +#: cps/templates/admin.html:87 +msgid "Calibre Database Directory" +msgstr "Calibre-database locatie" + +#: cps/templates/admin.html:91 cps/templates/config_edit.html:129 +msgid "Log Level" +msgstr "Logniveau" + +#: cps/templates/admin.html:95 +msgid "Port" +msgstr "Poort" + +#: cps/templates/admin.html:100 +msgid "External Port" +msgstr "Externe poort" + +#: cps/templates/admin.html:107 cps/templates/config_view_edit.html:27 +msgid "Books per Page" +msgstr "Aantal boeken per pagina" + +#: cps/templates/admin.html:111 +msgid "Uploads" +msgstr "Uploaden toestaan" + +#: cps/templates/admin.html:115 +msgid "Anonymous Browsing" +msgstr "Anoniem verkennen" + +#: cps/templates/admin.html:119 +msgid "Public Registration" +msgstr "Openbare registratie" + +#: cps/templates/admin.html:123 +msgid "Magic Link Remote Login" +msgstr "Inloggen op afstand" + +#: cps/templates/admin.html:127 +msgid "Reverse Proxy Login" +msgstr "Reverse Proxy Login" + +#: cps/templates/admin.html:132 +msgid "Reverse proxy header name" +msgstr "Reverse proxy header naam" + +#: cps/templates/admin.html:138 msgid "Edit UI Configuration" msgstr "Bewerk gebruikersinterface configuratie" -#: cps/templates/admin.html:136 +#: cps/templates/admin.html:143 msgid "Administration" msgstr "Systeembeheer" -#: cps/templates/admin.html:137 +#: cps/templates/admin.html:144 msgid "Download Debug Package" -msgstr "" +msgstr "Download foutopsporingspakket" -#: cps/templates/admin.html:138 +#: cps/templates/admin.html:145 msgid "View Logs" msgstr "Logboeken bekijken" -#: cps/templates/admin.html:141 +#: cps/templates/admin.html:148 msgid "Reconnect Calibre Database" msgstr "Opnieuw verbinden met Calibre database" -#: cps/templates/admin.html:142 +#: cps/templates/admin.html:149 msgid "Restart" msgstr "Calibre-Web herstarten" -#: cps/templates/admin.html:143 +#: cps/templates/admin.html:150 msgid "Shutdown" msgstr "Calibre-Web stoppen" -#: cps/templates/admin.html:149 +#: cps/templates/admin.html:155 msgid "Update" msgstr "Bijwerken" -#: cps/templates/admin.html:153 +#: cps/templates/admin.html:159 msgid "Version" msgstr "Versie" -#: cps/templates/admin.html:154 +#: cps/templates/admin.html:160 msgid "Details" msgstr "Details" -#: cps/templates/admin.html:160 +#: cps/templates/admin.html:166 msgid "Current version" msgstr "Huidige versie" -#: cps/templates/admin.html:166 +#: cps/templates/admin.html:172 msgid "Check for Update" msgstr "Controleren op updates" -#: cps/templates/admin.html:167 +#: cps/templates/admin.html:173 msgid "Perform Update" msgstr "Update uitvoeren" -#: cps/templates/admin.html:179 +#: cps/templates/admin.html:185 msgid "Are you sure you want to restart?" msgstr "Weet je zeker dat je Calibre-Web wilt herstarten?" -#: cps/templates/admin.html:184 cps/templates/admin.html:198 -#: cps/templates/admin.html:218 cps/templates/shelf.html:80 +#: cps/templates/admin.html:190 cps/templates/admin.html:204 +#: cps/templates/admin.html:224 cps/templates/shelf.html:80 msgid "OK" msgstr "Oké" -#: cps/templates/admin.html:185 cps/templates/admin.html:199 +#: cps/templates/admin.html:191 cps/templates/admin.html:205 #: cps/templates/book_edit.html:192 cps/templates/book_table.html:84 -#: cps/templates/config_edit.html:391 cps/templates/config_view_edit.html:151 +#: cps/templates/config_edit.html:422 cps/templates/config_view_edit.html:151 #: cps/templates/email_edit.html:47 cps/templates/email_edit.html:101 #: cps/templates/modal_dialogs.html:64 cps/templates/shelf.html:81 #: cps/templates/shelf_edit.html:19 cps/templates/user_edit.html:139 msgid "Cancel" msgstr "Annuleren" -#: cps/templates/admin.html:197 +#: cps/templates/admin.html:203 msgid "Are you sure you want to shutdown?" msgstr "Weet je zeker dat je Calibre-Web wilt stoppen?" -#: cps/templates/admin.html:209 +#: cps/templates/admin.html:215 msgid "Updating, please do not reload this page" msgstr "Bezig met bijwerken, vernieuw de pagina niet" @@ -1364,19 +1373,44 @@ msgstr "via" msgid "In Library" msgstr "In bibliotheek" -#: cps/templates/author.html:34 cps/templates/grid.html:14 -#: cps/templates/list.html:14 -msgid "All" -msgstr "Alles" +#: cps/templates/author.html:26 cps/templates/index.html:65 +#: cps/templates/search.html:29 +msgid "Sort according to book date, newest first" +msgstr "Sorteren op datum, nieuwste boeken eerst" -#: cps/templates/author.html:58 cps/templates/author.html:118 +#: cps/templates/author.html:27 cps/templates/index.html:66 +#: cps/templates/search.html:30 +msgid "Sort according to book date, oldest first" +msgstr "Sorteren op datum, oudste boeken eerst" + +#: cps/templates/author.html:28 cps/templates/index.html:67 +#: cps/templates/search.html:31 +msgid "Sort title in alphabetical order" +msgstr "Sorteren op alfabetische volgorde" + +#: cps/templates/author.html:29 cps/templates/index.html:68 +#: cps/templates/search.html:32 +msgid "Sort title in reverse alphabetical order" +msgstr "Sorteren op omgekeerde alfabetische volgorde" + +#: cps/templates/author.html:30 cps/templates/index.html:71 +#: cps/templates/search.html:35 +msgid "Sort according to publishing date, newest first" +msgstr "Sorteren op publicatiedatum, nieuwste boeken eerst" + +#: cps/templates/author.html:31 cps/templates/index.html:72 +#: cps/templates/search.html:36 +msgid "Sort according to publishing date, oldest first" +msgstr "Sorteren op publicatiedatum, oudste boeken eerst" + +#: cps/templates/author.html:54 cps/templates/author.html:114 #: cps/templates/discover.html:27 cps/templates/index.html:26 -#: cps/templates/index.html:97 cps/templates/search.html:60 +#: cps/templates/index.html:100 cps/templates/search.html:62 #: cps/templates/shelf.html:36 msgid "reduce" msgstr "beperken" -#: cps/templates/author.html:102 +#: cps/templates/author.html:98 msgid "More by" msgstr "Meer van" @@ -1497,7 +1531,7 @@ msgstr "Boek inkijken na bewerking" msgid "Fetch Metadata" msgstr "Metagegevens ophalen" -#: cps/templates/book_edit.html:191 cps/templates/config_edit.html:388 +#: cps/templates/book_edit.html:191 cps/templates/config_edit.html:419 #: cps/templates/config_view_edit.html:150 cps/templates/email_edit.html:45 #: cps/templates/shelf_edit.html:17 cps/templates/user_edit.html:137 msgid "Save" @@ -1539,27 +1573,27 @@ msgstr "Geen resultaten gevonden! Gebruik een ander trefwoord." #: cps/templates/book_table.html:10 cps/templates/book_table.html:52 msgid "This Field is Required" -msgstr "" +msgstr "Dit veld is verplicht" #: cps/templates/book_table.html:23 msgid "Merge selected books" -msgstr "" +msgstr "Geselecteerde boeken samenvoegen" #: cps/templates/book_table.html:24 msgid "Remove Selections" -msgstr "" +msgstr "Geselecteerde boeken verwijderen" #: cps/templates/book_table.html:30 msgid "Update Title Sort automatically" -msgstr "" +msgstr "Automatisch sorteren op titel" #: cps/templates/book_table.html:34 msgid "Update Author Sort automatically" -msgstr "" +msgstr "Automatisch sorteren op auteur" #: cps/templates/book_table.html:46 msgid "Enter Title" -msgstr "" +msgstr "Geef titel" #: cps/templates/book_table.html:46 cps/templates/config_view_edit.html:23 #: cps/templates/shelf_edit.html:7 @@ -1628,13 +1662,13 @@ msgstr "" #: cps/templates/book_table.html:83 msgid "Merge" -msgstr "" +msgstr "Samenvoegen" #: cps/templates/config_edit.html:12 msgid "Library Configuration" msgstr "Bibliotheekinstellingen" -#: cps/templates/config_edit.html:19 +#: cps/templates/config_edit.html:18 msgid "Location of Calibre Database" msgstr "Locatie van de Calibre-database" @@ -1724,7 +1758,7 @@ msgstr "Uploaden inschakelen" #: cps/templates/config_edit.html:169 msgid "Allowed Upload Fileformats" -msgstr "" +msgstr "Toegelaten upload formaten" #: cps/templates/config_edit.html:175 msgid "Enable Anonymous Browsing" @@ -1736,7 +1770,7 @@ msgstr "Openbare registratie inschakelen" #: cps/templates/config_edit.html:184 msgid "Use E-Mail as Username" -msgstr "" +msgstr "Gebruik e-mail als inlognaam" #: cps/templates/config_edit.html:189 msgid "Enable Magic Link Remote Login" @@ -1819,98 +1853,122 @@ msgstr "TLS" msgid "SSL" msgstr "SSL" -#: cps/templates/config_edit.html:268 -msgid "LDAP Certificate Path" -msgstr "LDAP certificaatlocatie" +#: cps/templates/config_edit.html:267 +msgid "LDAP CACertificate Path (Only needed for Client Certificate Authentication)" +msgstr "" -#: cps/templates/config_edit.html:273 +#: cps/templates/config_edit.html:274 +msgid "LDAP Certificate Path (Only needed for Client Certificate Authentication)" +msgstr "" + +#: cps/templates/config_edit.html:281 +msgid "LDAP Keyfile Path (Only needed for Client Certificate Authentication)" +msgstr "" + +#: cps/templates/config_edit.html:290 msgid "LDAP Authentication" msgstr "LDAP Authenticatie" -#: cps/templates/config_edit.html:275 +#: cps/templates/config_edit.html:292 msgid "Anonymous" msgstr "Anoniem" -#: cps/templates/config_edit.html:276 +#: cps/templates/config_edit.html:293 msgid "Unauthenticated" msgstr "Niet geverifieerd" -#: cps/templates/config_edit.html:277 +#: cps/templates/config_edit.html:294 msgid "Simple" msgstr "Eenvoudig" -#: cps/templates/config_edit.html:282 +#: cps/templates/config_edit.html:299 msgid "LDAP Administrator Username" msgstr "LDAP Administrator naam" -#: cps/templates/config_edit.html:288 +#: cps/templates/config_edit.html:305 msgid "LDAP Administrator Password" msgstr "LDAP Administrator wachtwoord" -#: cps/templates/config_edit.html:293 +#: cps/templates/config_edit.html:310 msgid "LDAP Distinguished Name (DN)" msgstr "LDAP Distinguished Name (DN)" -#: cps/templates/config_edit.html:297 +#: cps/templates/config_edit.html:314 msgid "LDAP User Object Filter" msgstr "LDAP User Object Filter" -#: cps/templates/config_edit.html:302 +#: cps/templates/config_edit.html:319 msgid "LDAP Server is OpenLDAP?" msgstr "LDAP Server is OpenLDAP?" -#: cps/templates/config_edit.html:304 +#: cps/templates/config_edit.html:321 msgid "Following Settings are Needed For User Import" msgstr "" -#: cps/templates/config_edit.html:306 +#: cps/templates/config_edit.html:323 msgid "LDAP Group Object Filter" msgstr "" -#: cps/templates/config_edit.html:310 +#: cps/templates/config_edit.html:327 msgid "LDAP Group Name" msgstr "LDAP groepnaam" -#: cps/templates/config_edit.html:314 +#: cps/templates/config_edit.html:331 msgid "LDAP Group Members Field" msgstr "LDAP groepleden veld" -#: cps/templates/config_edit.html:323 +#: cps/templates/config_edit.html:335 +msgid "LDAP Member User Filter Detection" +msgstr "" + +#: cps/templates/config_edit.html:337 +msgid "Autodetect" +msgstr "Automatisch detecteren" + +#: cps/templates/config_edit.html:338 +msgid "Custom Filter" +msgstr "" + +#: cps/templates/config_edit.html:343 +msgid "LDAP Member User Filter" +msgstr "" + +#: cps/templates/config_edit.html:354 #, python-format msgid "Obtain %(provider)s OAuth Credential" msgstr "Verkrijg %(provider)s OAuth Verificatiegegevens" -#: cps/templates/config_edit.html:326 +#: cps/templates/config_edit.html:357 #, python-format msgid "%(provider)s OAuth Client Id" msgstr "%(provider)s OAuth Client Id" -#: cps/templates/config_edit.html:330 +#: cps/templates/config_edit.html:361 #, python-format msgid "%(provider)s OAuth Client Secret" msgstr "%(provider)s OAuth Client geheim" -#: cps/templates/config_edit.html:346 +#: cps/templates/config_edit.html:377 msgid "External binaries" msgstr "Externe programma's" -#: cps/templates/config_edit.html:352 +#: cps/templates/config_edit.html:383 msgid "Path to Calibre E-Book Converter" msgstr "" -#: cps/templates/config_edit.html:360 +#: cps/templates/config_edit.html:391 msgid "Calibre E-Book Converter Settings" msgstr "" -#: cps/templates/config_edit.html:363 +#: cps/templates/config_edit.html:394 msgid "Path to Kepubify E-Book Converter" msgstr "" -#: cps/templates/config_edit.html:371 +#: cps/templates/config_edit.html:402 msgid "Location of Unrar binary" msgstr "Locatie van Unrar-programma" -#: cps/templates/config_edit.html:394 cps/templates/layout.html:85 +#: cps/templates/config_edit.html:425 cps/templates/layout.html:85 #: cps/templates/login.html:4 cps/templates/login.html:20 msgid "Login" msgstr "Inloggen" @@ -2121,6 +2179,10 @@ msgstr "Volgende" msgid "Open the .kobo/Kobo eReader.conf file in a text editor and add (or edit):" msgstr "Open het .kobo/Kobo eReader.conf bestand in een teksteditor en voeg toe (of bewerk):" +#: cps/templates/grid.html:14 cps/templates/list.html:14 +msgid "All" +msgstr "Alles" + #: cps/templates/http_error.html:38 msgid "Create Issue" msgstr "Probleem melden" @@ -2129,9 +2191,21 @@ msgstr "Probleem melden" msgid "Return to Home" msgstr "Terug naar startpagina" -#: cps/templates/index.html:72 -msgid "Group by series" -msgstr "Sorteren op reeks" +#: cps/templates/index.html:69 cps/templates/search.html:33 +msgid "Sort authors in alphabetical order" +msgstr "Auteurs sorteren op alfabetische volgorde" + +#: cps/templates/index.html:70 cps/templates/search.html:34 +msgid "Sort authors in reverse alphabetical order" +msgstr "Auteurs sorteren op omgekeerde alfabetische volgorde" + +#: cps/templates/index.html:74 +msgid "Sort ascending according to series index" +msgstr "" + +#: cps/templates/index.html:75 +msgid "Sort descending according to series index" +msgstr "" #: cps/templates/index.xml:6 msgid "Start" @@ -2293,11 +2367,11 @@ msgstr "Toon toegangslog: " #: cps/templates/logviewer.html:18 msgid "Download Calibre-Web Log" -msgstr "" +msgstr "Download Calibre-Web log" #: cps/templates/logviewer.html:21 msgid "Download Access Log" -msgstr "" +msgstr "Download toegangslog" #: cps/templates/modal_dialogs.html:6 msgid "Select Allowed/Denied Tags" @@ -2325,7 +2399,7 @@ msgstr "Voeg inkijk restrictie toe" #: cps/templates/modal_dialogs.html:50 msgid "This book format will be permanently erased from database" -msgstr "" +msgstr "Het boekformaat wordt permanent gewist uit de database" #: cps/templates/modal_dialogs.html:51 msgid "This book will be permanently erased from database" @@ -2580,8 +2654,8 @@ msgid "Series in this Library" msgstr "Boekenreeksen in deze bibliotheek" #: cps/templates/stats.html:29 -msgid "Linked Libraries" -msgstr "Gekoppelde bibliotheken" +msgid "System Statistics" +msgstr "Systeem informatie" #: cps/templates/stats.html:33 msgid "Program Library" @@ -2671,3 +2745,18 @@ msgstr "Genereer Kobo Auth URL" msgid "Do you really want to delete the Kobo Token?" msgstr "Wil je werkelijk je Kobo Token verwijderen?" +#~ msgid "LDAP Certificate Location is not Valid, Please Enter Correct Path" +#~ msgstr "LDAP certificaatlocatie is onjuist, voer een geldige locatie in" + +#~ msgid "User Successfully Imported" +#~ msgstr "Gebruiker is geïmporteerd" + +#~ msgid "LDAP Certificate Path" +#~ msgstr "LDAP certificaatlocatie" + +#~ msgid "Group by series" +#~ msgstr "Sorteren op reeks" + +#~ msgid "Linked Libraries" +#~ msgstr "Gekoppelde bibliotheken" + From 376214e2d201e2a51c691aa1c8001b0892d461db Mon Sep 17 00:00:00 2001 From: Ozzieisaacs Date: Sun, 13 Dec 2020 18:33:20 +0100 Subject: [PATCH 2/9] Pinned greenlet to 0.4.16 max --- optional-requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optional-requirements.txt b/optional-requirements.txt index 0d670875..a2b05408 100644 --- a/optional-requirements.txt +++ b/optional-requirements.txt @@ -1,7 +1,7 @@ # GDrive Integration google-api-python-client==1.7.11,<1.8.0 gevent>=1.2.1,<20.6.0 -greenlet>=0.4.12,<0.5.0 +greenlet>=0.4.12,<0.4.17 httplib2>=0.9.2,<0.18.0 oauth2client>=4.0.0,<4.1.4 uritemplate>=3.0.0,<3.1.0 From 2d3ae71a3d49d3fd6f937a9dc2e0383a5ce8fbe6 Mon Sep 17 00:00:00 2001 From: Ozzieisaacs Date: Mon, 21 Dec 2020 19:13:55 +0100 Subject: [PATCH 3/9] Fixed button for email config (Fix #1766) --- cps/templates/admin.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/templates/admin.html b/cps/templates/admin.html index 3fa86722..1ef64157 100644 --- a/cps/templates/admin.html +++ b/cps/templates/admin.html @@ -75,7 +75,7 @@ {% endif %} - + From bde792101680b706ab79a6f7ffbf95c577b69e9d Mon Sep 17 00:00:00 2001 From: Ozzieisaacs Date: Wed, 30 Dec 2020 10:05:15 +0100 Subject: [PATCH 4/9] Fix modal path id for calibre db filepicker Fix SyncToken last-Book-id missing --- cps/services/SyncToken.py | 2 ++ cps/templates/config_edit.html | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/cps/services/SyncToken.py b/cps/services/SyncToken.py index 4ad5fa2c..26eb396c 100644 --- a/cps/services/SyncToken.py +++ b/cps/services/SyncToken.py @@ -144,6 +144,8 @@ class SyncToken: except TypeError: log.error("SyncToken timestamps don't parse to a datetime.") return SyncToken(raw_kobo_store_token=raw_kobo_store_token) + except KeyError: + books_last_id = -1 return SyncToken( raw_kobo_store_token=raw_kobo_store_token, diff --git a/cps/templates/config_edit.html b/cps/templates/config_edit.html index cf3c7bcd..ba8d4f9e 100644 --- a/cps/templates/config_edit.html +++ b/cps/templates/config_edit.html @@ -20,7 +20,7 @@ {% if filepicker %} - + {% endif %} From b35ecddde37b8731da6eb428576f3a67ca3a2169 Mon Sep 17 00:00:00 2001 From: Ozzieisaacs Date: Thu, 31 Dec 2020 09:54:40 +0100 Subject: [PATCH 5/9] Added Id on Filechooser dialog for testability --- cps/templates/modal_dialogs.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cps/templates/modal_dialogs.html b/cps/templates/modal_dialogs.html index da83649a..da00834c 100644 --- a/cps/templates/modal_dialogs.html +++ b/cps/templates/modal_dialogs.html @@ -96,7 +96,7 @@ From 7849f2fb4b774b1b6a6d8a7fc43d884f877e317d Mon Sep 17 00:00:00 2001 From: Ozzieisaacs Date: Thu, 31 Dec 2020 15:08:56 +0100 Subject: [PATCH 6/9] Remove relate to referrer for tag/custom column allow / deny dialog --- cps/admin.py | 67 +++++++++++++++++------------------- cps/static/js/table.js | 22 ++++++------ cps/templates/user_edit.html | 5 +-- 3 files changed, 46 insertions(+), 48 deletions(-) diff --git a/cps/admin.py b/cps/admin.py index 531d855d..65327e1a 100644 --- a/cps/admin.py +++ b/cps/admin.py @@ -250,10 +250,11 @@ def list_domain(allow): response.headers["Content-Type"] = "application/json; charset=utf-8" return response -@admi.route("/ajax/editrestriction/", methods=['POST']) +@admi.route("/ajax/editrestriction/", defaults={"user":0}, methods=['POST']) +@admi.route("/ajax/editrestriction//", methods=['POST']) @login_required @admin_required -def edit_restriction(res_type): +def edit_restriction(res_type, user): element = request.form.to_dict() if element['id'].startswith('a'): if res_type == 0: # Tags as template @@ -267,8 +268,8 @@ def edit_restriction(res_type): config.config_allowed_column_value = ','.join(elementlist) config.save() if res_type == 2: # Tags per user - usr_id = os.path.split(request.referrer)[-1] - if usr_id.isdigit() == True: + usr_id = user + if isinstance(usr_id, int): usr = ub.session.query(ub.User).filter(ub.User.id == int(usr_id)).first() else: usr = current_user @@ -277,8 +278,8 @@ def edit_restriction(res_type): usr.allowed_tags = ','.join(elementlist) ub.session.commit() if res_type == 3: # CColumn per user - usr_id = os.path.split(request.referrer)[-1] - if usr_id.isdigit() == True: + usr_id = user + if isinstance(usr_id, int): usr = ub.session.query(ub.User).filter(ub.User.id == int(usr_id)).first() else: usr = current_user @@ -298,8 +299,8 @@ def edit_restriction(res_type): config.config_denied_column_value = ','.join(elementlist) config.save() if res_type == 2: # Tags per user - usr_id = os.path.split(request.referrer)[-1] - if usr_id.isdigit() == True: + usr_id = user + if isinstance(usr_id, int): usr = ub.session.query(ub.User).filter(ub.User.id == int(usr_id)).first() else: usr = current_user @@ -308,8 +309,8 @@ def edit_restriction(res_type): usr.denied_tags = ','.join(elementlist) ub.session.commit() if res_type == 3: # CColumn per user - usr_id = os.path.split(request.referrer)[-1] - if usr_id.isdigit() == True: + usr_id = user + if isinstance(usr_id, int): usr = ub.session.query(ub.User).filter(ub.User.id == int(usr_id)).first() else: usr = current_user @@ -335,10 +336,11 @@ def restriction_deletion(element, list_func): return ','.join(elementlist) -@admi.route("/ajax/addrestriction/", methods=['POST']) +@admi.route("/ajax/addrestriction/", defaults={"user_id":0}, methods=['POST']) +@admi.route("/ajax/addrestriction//", methods=['POST']) @login_required @admin_required -def add_restriction(res_type): +def add_restriction(res_type, user_id): element = request.form.to_dict() if res_type == 0: # Tags as template if 'submit_allow' in element: @@ -355,9 +357,8 @@ def add_restriction(res_type): config.config_denied_column_value = restriction_addition(element, config.list_allowed_column_values) config.save() if res_type == 2: # Tags per user - usr_id = os.path.split(request.referrer)[-1] - if usr_id.isdigit() == True: - usr = ub.session.query(ub.User).filter(ub.User.id == int(usr_id)).first() + if isinstance(user_id, int): + usr = ub.session.query(ub.User).filter(ub.User.id == int(user_id)).first() else: usr = current_user if 'submit_allow' in element: @@ -367,9 +368,8 @@ def add_restriction(res_type): usr.denied_tags = restriction_addition(element, usr.list_denied_tags) ub.session.commit() if res_type == 3: # CustomC per user - usr_id = os.path.split(request.referrer)[-1] - if usr_id.isdigit() == True: - usr = ub.session.query(ub.User).filter(ub.User.id == int(usr_id)).first() + if isinstance(user_id, int): + usr = ub.session.query(ub.User).filter(ub.User.id == int(user_id)).first() else: usr = current_user if 'submit_allow' in element: @@ -380,10 +380,11 @@ def add_restriction(res_type): ub.session.commit() return "" -@admi.route("/ajax/deleterestriction/", methods=['POST']) +@admi.route("/ajax/deleterestriction/", defaults={"user_id":0}, methods=['POST']) +@admi.route("/ajax/deleterestriction//", methods=['POST']) @login_required @admin_required -def delete_restriction(res_type): +def delete_restriction(res_type, user_id): element = request.form.to_dict() if res_type == 0: # Tags as template if element['id'].startswith('a'): @@ -400,9 +401,8 @@ def delete_restriction(res_type): config.config_denied_column_value = restriction_deletion(element, config.list_denied_column_values) config.save() elif res_type == 2: # Tags per user - usr_id = os.path.split(request.referrer)[-1] - if usr_id.isdigit() == True: - usr = ub.session.query(ub.User).filter(ub.User.id == int(usr_id)).first() + if isinstance(user_id, int): + usr = ub.session.query(ub.User).filter(ub.User.id == int(user_id)).first() else: usr = current_user if element['id'].startswith('a'): @@ -412,9 +412,8 @@ def delete_restriction(res_type): usr.denied_tags = restriction_deletion(element, usr.list_denied_tags) ub.session.commit() elif res_type == 3: # Columns per user - usr_id = os.path.split(request.referrer)[-1] - if usr_id.isdigit() == True: # select current user if admins are editing their own rights - usr = ub.session.query(ub.User).filter(ub.User.id == int(usr_id)).first() + if isinstance(user_id, int): + usr = ub.session.query(ub.User).filter(ub.User.id == int(user_id)).first() else: usr = current_user if element['id'].startswith('a'): @@ -425,11 +424,11 @@ def delete_restriction(res_type): ub.session.commit() return "" - -@admi.route("/ajax/listrestriction/") +@admi.route("/ajax/listrestriction/", defaults={"user_id":0}) +@admi.route("/ajax/listrestriction//") @login_required @admin_required -def list_restriction(res_type): +def list_restriction(res_type, user_id): if res_type == 0: # Tags as template restrict = [{'Element': x, 'type':_('Deny'), 'id': 'd'+str(i) } for i,x in enumerate(config.list_denied_tags()) if x != '' ] @@ -443,9 +442,8 @@ def list_restriction(res_type): for i,x in enumerate(config.list_allowed_column_values()) if x != ''] json_dumps = restrict + allow elif res_type == 2: # Tags per user - usr_id = os.path.split(request.referrer)[-1] - if usr_id.isdigit() == True: - usr = ub.session.query(ub.User).filter(ub.User.id == usr_id).first() + if isinstance(user_id, int): + usr = ub.session.query(ub.User).filter(ub.User.id == user_id).first() else: usr = current_user restrict = [{'Element': x, 'type':_('Deny'), 'id': 'd'+str(i) } @@ -454,9 +452,8 @@ def list_restriction(res_type): for i,x in enumerate(usr.list_allowed_tags()) if x != ''] json_dumps = restrict + allow elif res_type == 3: # CustomC per user - usr_id = os.path.split(request.referrer)[-1] - if usr_id.isdigit() == True: - usr = ub.session.query(ub.User).filter(ub.User.id==usr_id).first() + if isinstance(user_id, int): + usr = ub.session.query(ub.User).filter(ub.User.id==user_id).first() else: usr = current_user restrict = [{'Element': x, 'type':_('Deny'), 'id': 'd'+str(i) } diff --git a/cps/static/js/table.js b/cps/static/js/table.js index 62f7e220..16814dd2 100644 --- a/cps/static/js/table.js +++ b/cps/static/js/table.js @@ -253,14 +253,14 @@ $(function() { $("#h3").addClass("hidden"); $("#h4").addClass("hidden"); }); - function startTable(type) { + function startTable(type, user_id) { var pathname = document.getElementsByTagName("script"), src = pathname[pathname.length - 1].src; var path = src.substring(0, src.lastIndexOf("/")); $("#restrict-elements-table").bootstrapTable({ formatNoMatches: function () { return ""; }, - url: path + "/../../ajax/listrestriction/" + type, + url: path + "/../../ajax/listrestriction/" + type + "/" + user_id, rowStyle: function(row) { // console.log('Reihe :' + row + " Index :" + index); if (row.id.charAt(0) === "a") { @@ -274,13 +274,13 @@ $(function() { $.ajax ({ type: "Post", data: "id=" + row.id + "&type=" + row.type + "&Element=" + encodeURIComponent(row.Element), - url: path + "/../../ajax/deleterestriction/" + type, + url: path + "/../../ajax/deleterestriction/" + type + "/" + user_id, async: true, timeout: 900, success:function() { $.ajax({ method:"get", - url: path + "/../../ajax/listrestriction/" + type, + url: path + "/../../ajax/listrestriction/" + type + "/" + user_id, async: true, timeout: 900, success:function(data) { @@ -296,7 +296,7 @@ $(function() { $("#restrict-elements-table").removeClass("table-hover"); $("#restrict-elements-table").on("editable-save.bs.table", function (e, field, row) { $.ajax({ - url: path + "/../../ajax/editrestriction/" + type, + url: path + "/../../ajax/editrestriction/" + type + "/" + user_id, type: "Post", data: row }); @@ -304,13 +304,13 @@ $(function() { $("[id^=submit_]").click(function() { $(this)[0].blur(); $.ajax({ - url: path + "/../../ajax/addrestriction/" + type, + url: path + "/../../ajax/addrestriction/" + type + "/" + user_id, type: "Post", data: $(this).closest("form").serialize() + "&" + $(this)[0].name + "=", success: function () { $.ajax ({ method:"get", - url: path + "/../../ajax/listrestriction/" + type, + url: path + "/../../ajax/listrestriction/" + type + "/" + user_id, async: true, timeout: 900, success:function(data) { @@ -323,21 +323,21 @@ $(function() { }); } $("#get_column_values").on("click", function() { - startTable(1); + startTable(1, 0); $("#h2").removeClass("hidden"); }); $("#get_tags").on("click", function() { - startTable(0); + startTable(0, 0); $("#h1").removeClass("hidden"); }); $("#get_user_column_values").on("click", function() { - startTable(3); + startTable(3, $(this).data('id')); $("#h4").removeClass("hidden"); }); $("#get_user_tags").on("click", function() { - startTable(2); + startTable(2, $(this).data('id')); $(this)[0].blur(); $("#h3").removeClass("hidden"); }); diff --git a/cps/templates/user_edit.html b/cps/templates/user_edit.html index 9a186eb0..114dd163 100644 --- a/cps/templates/user_edit.html +++ b/cps/templates/user_edit.html @@ -11,6 +11,7 @@ {% endif %}
+
@@ -82,8 +83,8 @@ {% if ( g.user and g.user.role_admin() and not new_user ) %} - {{_('Add Allowed/Denied Tags')}} - {{_('Add allowed/Denied Custom Column Values')}} + {{_('Add Allowed/Denied Tags')}} + {{_('Add allowed/Denied Custom Column Values')}} {% endif %}
From 9b5011485285575b4d12e2aac7e7e6d0944a4aa7 Mon Sep 17 00:00:00 2001 From: OzzieIsaacs Date: Sat, 2 Jan 2021 07:51:48 +0100 Subject: [PATCH 7/9] Fixes from testrun --- cps/render_template.py | 2 +- cps/web.py | 5 +- test/Calibre-Web TestSummary_Linux.html | 9063 +++-------------------- 3 files changed, 1188 insertions(+), 7882 deletions(-) diff --git a/cps/render_template.py b/cps/render_template.py index fb0b5067..16fdab13 100644 --- a/cps/render_template.py +++ b/cps/render_template.py @@ -104,7 +104,7 @@ def get_readbooks_ids(): readBooks = calibre_db.session.query(db.cc_classes[config.config_read_column])\ .filter(db.cc_classes[config.config_read_column].value == True).all() return frozenset([x.book for x in readBooks]) - except KeyError: + except (KeyError, AttributeError): log.error("Custom Column No.%d is not existing in calibre database", config.config_read_column) return [] diff --git a/cps/web.py b/cps/web.py index 6d993e29..8a52f97a 100644 --- a/cps/web.py +++ b/cps/web.py @@ -616,13 +616,12 @@ def render_read_books(page, are_read, as_xml=False, order=None): db_filter = and_(ub.ReadBook.user_id == int(current_user.id), ub.ReadBook.read_status == ub.ReadBook.STATUS_FINISHED) else: - db_filter = and_(ub.ReadBook.user_id == int(current_user.id), - coalesce(ub.ReadBook.read_status, 0) != ub.ReadBook.STATUS_FINISHED) + db_filter = coalesce(ub.ReadBook.read_status, 0) != ub.ReadBook.STATUS_FINISHED entries, random, pagination = calibre_db.fill_indexpage(page, 0, db.Books, db_filter, order, - ub.ReadBook, db.Books.id==ub.ReadBook.book_id) + ub.ReadBook, db.Books.id == ub.ReadBook.book_id) else: try: if are_read: diff --git a/test/Calibre-Web TestSummary_Linux.html b/test/Calibre-Web TestSummary_Linux.html index dde602ab..a2fbfe1a 100644 --- a/test/Calibre-Web TestSummary_Linux.html +++ b/test/Calibre-Web TestSummary_Linux.html @@ -37,20 +37,20 @@
-

Start Time: 2020-12-12 12:19:43

+

Start Time: 2021-01-01 20:50:20

-

Stop Time: 2020-12-12 14:23:09

+

Stop Time: 2021-01-02 02:07:39

-

Duration: 1h 33 min

+

Duration: 4h 51 min

@@ -234,44 +234,82 @@ - - _ErrorHolder - 29 + + TestCli + 8 + 7 0 0 - 29 - 0 + 1 - Detail + Detail - + -
tearDownClass (test_anonymous)
+
TestCli - test_already_started
+ + PASS + + + + + + +
TestCli - test_bind_to_single_interface
+ + PASS + + + + + + +
TestCli - test_cli_SSL_files
+ + PASS + + + + + + +
TestCli - test_cli_different_folder
+ + PASS + + + + + + +
TestCli - test_cli_different_settings_database
+ + PASS + + + + + + +
TestCli - test_cli_gdrive_location
- ERROR + SKIP
-