janeczku / calibre-web

:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database
GNU General Public License v3.0
12.56k stars 1.32k forks source link

Custom columns not visible #1160

Closed OzzieIsaacs closed 4 years ago

OzzieIsaacs commented 4 years ago

@OzzieIsaacs not sure I understand....mine is currently blank, as I don't want to ignore ANY columns. If I look at the HTML source code, it shows quite a number of <div class="real_custom_columns"></div> that are just empty, and different books will arbitrarily load different metadata columns to display, even though they all have the same entries in the same custom columns. Any insight here would be great as I'd love to see all my custom metadata. For example, I try to cross-reference my books to also include their DDC (Dewey Decimal Classification), as well as it's LOC (Library of Congress) number, which I then translate to Genre. I also include word-count, as well as the Flesch-Kinkade Grade, Flesch Reading Ease and the Gunning Fog quotient. While the interface allows me to search in the advanced search against these columns, they're not displaying in the book detail at all.

Originally posted by @shayaknyc in https://github.com/janeczku/calibre-web/issues/895#issuecomment-577863084

OzzieIsaacs commented 4 years ago

@shayaknyc let's discuss this on an open issue: No entry should lead to everything is display, as soon as you enter anything it is limited to just this entry. (maybe you are having a space inserted in the "Regular expression for ignoring columns"). The restriction is only applied on the books details page. The restriction is not applied on the advanced search page (this is a bug). If you temporary change cps/helper.py:

def get_cc_columns():
    tmpcc = db.session.query(db.Custom_Columns).filter(db.Custom_Columns.datatype.notin_(db.cc_exceptions)).all()
    if config.config_columns_to_ignore:
        cc = []
        for col in tmpcc:
            r = re.compile(config.config_columns_to_ignore)
            if not r.match(col.name):
                cc.append(col)
    else:
        cc = tmpcc
    return cc

to

def get_cc_columns():
    return db.session.query(db.Custom_Columns).filter(db.Custom_Columns.datatype.notin_(db.cc_exceptions)).all()

You should see all custom columns

shayaknyc commented 4 years ago

That totally worked! Thanks @OzzieIsaacs. I checked and the regex field to ignore columns is null, there's nothing inside there, so not sure why it wouldn't, by default, display all the custom columns. Thank you for this! Will this temp fix get committed into the next release so I don't lose this when it updates? Thanks!

OzzieIsaacs commented 4 years ago

I will try to fix it, this one deactivates the feature totally.

shayaknyc commented 4 years ago

Gotcha, thanks!

OzzieIsaacs commented 4 years ago

config_columns_to_ignore = Column(String) has no default value, therefore intial value is NULL and not empty string.

OzzieIsaacs commented 4 years ago

It's fixed in the latest version

pheraph commented 4 years ago

I try to display custom columns in Calibre Web myself, but although I have added them to a book in Calibre Desktop and see the column in both Calibre and in the book's metadata.opf, it is not displayed in Calibre Web. A regular expression for filtering out custom columns is not created. What am I missing?

I just noticed that I am on v0.6.9 beta as I cloned the master branch for installation. Should I try to downgrade to 0.6.8?