Rename ArtworkItem to Item and add more fields
This commit is contained in:
parent
d2cbcc4c04
commit
7313df54f7
12
app.py
12
app.py
|
@ -4,7 +4,7 @@ from flask import Flask, render_template, url_for, redirect, request, g, jsonify
|
||||||
from depicts import (utils, wdqs, commons, mediawiki, artwork, database,
|
from depicts import (utils, wdqs, commons, mediawiki, artwork, database,
|
||||||
wd_catalog, human, wikibase, wikidata_oauth, wikidata_edit)
|
wd_catalog, human, wikibase, wikidata_oauth, wikidata_edit)
|
||||||
from depicts.pager import Pagination, init_pager
|
from depicts.pager import Pagination, init_pager
|
||||||
from depicts.model import (DepictsItem, DepictsItemAltLabel, Edit, ArtworkItem,
|
from depicts.model import (DepictsItem, DepictsItemAltLabel, Edit, Item,
|
||||||
Language, WikidataQuery)
|
Language, WikidataQuery)
|
||||||
from depicts.error_mail import setup_error_mail
|
from depicts.error_mail import setup_error_mail
|
||||||
from requests_oauthlib import OAuth1Session
|
from requests_oauthlib import OAuth1Session
|
||||||
|
@ -121,11 +121,11 @@ def save(item_id):
|
||||||
|
|
||||||
token = wikidata_oauth.get_token()
|
token = wikidata_oauth.get_token()
|
||||||
|
|
||||||
artwork_item = ArtworkItem.query.get(item_id)
|
artwork_item = Item.query.get(item_id)
|
||||||
if artwork_item is None:
|
if artwork_item is None:
|
||||||
artwork_entity = mediawiki.get_entity_with_cache(f'Q{item_id}')
|
artwork_entity = mediawiki.get_entity_with_cache(f'Q{item_id}')
|
||||||
label = wikibase.get_entity_label(artwork_entity)
|
label = wikibase.get_entity_label(artwork_entity)
|
||||||
artwork_item = ArtworkItem(item_id=item_id, label=label, entity=artwork_entity)
|
artwork_item = Item(item_id=item_id, label=label, entity=artwork_entity)
|
||||||
database.session.add(artwork_item)
|
database.session.add(artwork_item)
|
||||||
database.session.commit()
|
database.session.commit()
|
||||||
|
|
||||||
|
@ -221,7 +221,7 @@ def random_artwork():
|
||||||
has_depicts = True
|
has_depicts = True
|
||||||
while has_depicts:
|
while has_depicts:
|
||||||
item_id = wdqs.row_id(random.choice(rows))
|
item_id = wdqs.row_id(random.choice(rows))
|
||||||
if ArtworkItem.query.get(item_id):
|
if Item.query.get(item_id):
|
||||||
continue
|
continue
|
||||||
entity = mediawiki.get_entity_with_cache(f'Q{item_id}', refresh=True)
|
entity = mediawiki.get_entity_with_cache(f'Q{item_id}', refresh=True)
|
||||||
en_label = wikibase.get_en_label(entity)
|
en_label = wikibase.get_en_label(entity)
|
||||||
|
@ -380,9 +380,9 @@ def item_page(item_id):
|
||||||
|
|
||||||
people = human.from_name(label) if label else None
|
people = human.from_name(label) if label else None
|
||||||
|
|
||||||
artwork_item = ArtworkItem.query.get(item_id)
|
artwork_item = Item.query.get(item_id)
|
||||||
if artwork_item is None:
|
if artwork_item is None:
|
||||||
artwork_item = ArtworkItem(item_id=item_id, label=label, entity=entity)
|
artwork_item = Item(item_id=item_id, label=label, entity=entity)
|
||||||
database.session.add(artwork_item)
|
database.session.add(artwork_item)
|
||||||
|
|
||||||
catalog = wd_catalog.get_catalog_from_artwork(entity)
|
catalog = wd_catalog.get_catalog_from_artwork(entity)
|
||||||
|
|
|
@ -46,13 +46,22 @@ class DepictsItemAltLabel(Base):
|
||||||
def __init__(self, alt_label):
|
def __init__(self, alt_label):
|
||||||
self.alt_label = alt_label
|
self.alt_label = alt_label
|
||||||
|
|
||||||
class ArtworkItem(Base):
|
class Item(Base):
|
||||||
__tablename__ = 'artwork'
|
__tablename__ = 'item'
|
||||||
item_id = Column(Integer, primary_key=True, autoincrement=False)
|
item_id = Column(Integer, primary_key=True, autoincrement=False)
|
||||||
label = Column(String)
|
label = Column(String)
|
||||||
entity = Column(postgresql.JSON)
|
entity = Column(postgresql.JSON)
|
||||||
|
lastrevid = Column(Integer, nullable=True, unique=True)
|
||||||
|
modified = Column(DateTime, nullable=True)
|
||||||
|
is_artwork = Column(Boolean, nullable=False, default=False)
|
||||||
qid = column_property('Q' + cast(item_id, String))
|
qid = column_property('Q' + cast(item_id, String))
|
||||||
|
|
||||||
|
class Triple(Base):
|
||||||
|
__tablename__ = 'triple'
|
||||||
|
subject_id = Column(Integer, primary_key=True)
|
||||||
|
predicate_id = Column(Integer, primary_key=True, index=True)
|
||||||
|
object_id = Column(Integer, primary_key=True, index=True)
|
||||||
|
|
||||||
class HumanItem(Base):
|
class HumanItem(Base):
|
||||||
__tablename__ = 'human'
|
__tablename__ = 'human'
|
||||||
item_id = Column(Integer, primary_key=True, autoincrement=False)
|
item_id = Column(Integer, primary_key=True, autoincrement=False)
|
||||||
|
@ -81,7 +90,7 @@ class Language(Base):
|
||||||
class Edit(Base):
|
class Edit(Base):
|
||||||
__tablename__ = 'edit'
|
__tablename__ = 'edit'
|
||||||
username = Column(String, primary_key=True)
|
username = Column(String, primary_key=True)
|
||||||
artwork_id = Column(Integer, ForeignKey('artwork.item_id'), primary_key=True)
|
artwork_id = Column(Integer, ForeignKey('item.item_id'), primary_key=True)
|
||||||
depicts_id = Column(Integer, ForeignKey('depicts.item_id'), primary_key=True)
|
depicts_id = Column(Integer, ForeignKey('depicts.item_id'), primary_key=True)
|
||||||
timestamp = Column(DateTime, default=now_utc())
|
timestamp = Column(DateTime, default=now_utc())
|
||||||
lastrevid = Column(Integer, nullable=True)
|
lastrevid = Column(Integer, nullable=True)
|
||||||
|
@ -89,7 +98,7 @@ class Edit(Base):
|
||||||
artwork_qid = column_property('Q' + cast(artwork_id, String))
|
artwork_qid = column_property('Q' + cast(artwork_id, String))
|
||||||
depicts_qid = column_property('Q' + cast(depicts_id, String))
|
depicts_qid = column_property('Q' + cast(depicts_id, String))
|
||||||
|
|
||||||
artwork = relationship('ArtworkItem')
|
artwork = relationship('Item')
|
||||||
depicts = relationship('DepictsItem')
|
depicts = relationship('DepictsItem')
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
Loading…
Reference in a new issue