![]() |
#136 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,302
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
18 Oct 2024 (in calibre 7.21)
New template function
Last edited by chaley; 11-21-2024 at 10:12 AM. |
![]() |
![]() |
![]() |
#137 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 10,505
Karma: 73517101
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
This will be useful!
|
![]() |
![]() |
Advert | |
|
![]() |
#138 |
want to learn what I want
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,576
Karma: 7463599
Join Date: Sep 2020
Device: none
|
Very useful indeed, thank you! As this provides sorting for multi-valued fields, I can see myself doing less searches like authors:#=2, tags:#=3 and so on.
I've just tested it and have already set two columns using: program: field_list_count('tags') program: field_list_count('authors'); Is the semicolon needed, BTW? I'm never sure. |
![]() |
![]() |
![]() |
#139 | |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,302
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
Truth: according to the syntax it is illegal. Coding the template language parser to optionally accept it was easier than not, and it doesn't hurt anything. |
|
![]() |
![]() |
![]() |
#140 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 10,505
Karma: 73517101
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
I ran into a slightly strange issue when counting a custom column. Template tester it works right:
But when I try to modify my #timesread composite: The expected number displays in the book list but not book details. Spoiler:
Yes, #datesread is a taglike. I also tried restarting and the error persists. Last edited by ownedbycats; 10-19-2024 at 12:27 AM. |
![]() |
![]() |
Advert | |
|
![]() |
#141 |
want to learn what I want
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,576
Karma: 7463599
Join Date: Sep 2020
Device: none
|
I did a test out of curiosity and got the same for a probably identical column, as you have helped me populate it: on template tester it's ok as well as in the book list; on BD, it gives #readdates' is not a field - line number 1
Anyway, in my case the readdates/datesread gets populated only by the Mark as Read chain, which runs on double-click event, and it does increment #timesread already. Last edited by Comfy.n; 10-19-2024 at 01:56 AM. |
![]() |
![]() |
![]() |
#142 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 10,505
Karma: 73517101
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
Yeah, I used to use a manual integer for #timesread too, but then I realized that the list_count composite would work instead.
Since field_list_count() is faster, it'd be ideal if it works for this use-case. Last edited by ownedbycats; 10-19-2024 at 01:30 AM. |
![]() |
![]() |
![]() |
#143 | ||
want to learn what I want
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 1,576
Karma: 7463599
Join Date: Sep 2020
Device: none
|
Quote:
Quote:
edit: I just tested list_count instead of integer on 7.20 stable and it meant a visible speed improvement on the double-click chain. Running from source I can use field_list_count but the timings are different from regular use. Last edited by Comfy.n; 10-19-2024 at 02:14 AM. |
||
![]() |
![]() |
![]() |
#144 | |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,302
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
In the meantime simply ignore the error. The error happens because of how the template tester is used in this case (editing a composite). Calling field_list_count() works in a composite. Until the fix is in source there might be a few log messages. |
|
![]() |
![]() |
![]() |
#145 | |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,302
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
Quote:
Here is a copy of the changed file (calibre/utils/formatter.py) if you want to try it before @kovid accepts the change. Last edited by chaley; 10-19-2024 at 10:29 AM. |
|
![]() |
![]() |
![]() |
#146 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 10,505
Karma: 73517101
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
thank you!
Looking at the pull request, it was just forgetting to account for custom columns? |
![]() |
![]() |
![]() |
#147 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,302
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
There are 2 commits. The first changes how field_list_count() checks if a field exists, using a faster more reliable technique. The second, the one you note, fixes the underlying problem that has been there for some 10 years. The second is not required by the first.
|
![]() |
![]() |
![]() |
#148 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 10,505
Karma: 73517101
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
The changes are now in Calibre source
![]() |
![]() |
![]() |
![]() |
#149 |
Grand Sorcerer
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 12,302
Karma: 7955525
Join Date: Jan 2010
Location: Notts, England
Device: Kobo Libra 2
|
23 Oct 2024 (in calibre preview 7.21)
New template binary operator inlist_field
Last edited by chaley; 11-21-2024 at 10:12 AM. |
![]() |
![]() |
![]() |
#150 |
Custom User Title
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 10,505
Karma: 73517101
Join Date: Oct 2018
Location: Canada
Device: Kobo Libra H2O, formerly Aura HD
|
so for a custom column, it's just #whatever?
EDIT: I pulled the latest changes but I am not seeing inlist_field. Last edited by ownedbycats; 10-23-2024 at 10:41 AM. |
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
A few questions... (template language, mainly) | Clem2605 | Library Management | 2 | 12-30-2020 03:25 AM |
Template Language | phossler | Calibre | 8 | 01-12-2016 04:37 PM |
Help needed with template language | Mamaijee | Devices | 12 | 02-19-2013 01:52 AM |
Help with template language | Pepin33 | Calibre | 8 | 11-11-2012 08:32 AM |
Template language question | BookJunkieLI | Library Management | 7 | 02-02-2012 06:55 PM |