diff --git a/app/blueprints/packages/packages.py b/app/blueprints/packages/packages.py index 90cb72f..8cb9b62 100644 --- a/app/blueprints/packages/packages.py +++ b/app/blueprints/packages/packages.py @@ -24,6 +24,7 @@ from . import bp from app.models import * from app.querybuilder import QueryBuilder from app.tasks.importtasks import importRepoScreenshot, updateMetaFromRelease +from app.rediscache import has_key, set_key from app.utils import * from flask_wtf import FlaskForm @@ -51,6 +52,19 @@ def list_all(): joinedload(Package.media_license), \ subqueryload(Package.tags)) + edited = False + for tag in qb.tags: + edited = True + key = "tag-" + tag.name + if not has_key(key): + set_key(key, "true") + Tag.query.filter_by(id=tag.id).update({ + "views": Tag.views + 1 + }) + + if edited: + db.session.commit() + if qb.lucky: package = query.first() if package: diff --git a/app/models.py b/app/models.py index 2bb6d3d..711d9fd 100644 --- a/app/models.py +++ b/app/models.py @@ -804,11 +804,12 @@ class MetaPackage(db.Model): return retval class Tag(db.Model): - id = db.Column(db.Integer, primary_key=True) + id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), unique=True, nullable=False) title = db.Column(db.String(100), nullable=False) - backgroundColor = db.Column(db.String(6), nullable=False) - textColor = db.Column(db.String(6), nullable=False) + backgroundColor = db.Column(db.String(6), nullable=False) + textColor = db.Column(db.String(6), nullable=False) + views = db.Column(db.Integer, nullable=False, default=0) def __init__(self, title, backgroundColor="000000", textColor="ffffff"): self.title = title diff --git a/app/querybuilder.py b/app/querybuilder.py index 49728f0..c4823cb 100644 --- a/app/querybuilder.py +++ b/app/querybuilder.py @@ -24,7 +24,7 @@ class QueryBuilder: tags = [Tag.query.filter_by(name=tname).first() for tname in tags] tags = [tag for tag in tags if tag is not None] - # Hid + # Hide hide_flags = args.getlist("hide") self.title = title diff --git a/app/templates/admin/tags/list.html b/app/templates/admin/tags/list.html index 574d1a6..8db66ca 100644 --- a/app/templates/admin/tags/list.html +++ b/app/templates/admin/tags/list.html @@ -14,13 +14,39 @@

+ +
+
+
+ {{ _("Name") }} +
+ + + {{ _("Views") }} + + +
+ {{ _("Packages") }} +
+
+
+ {% for t in tags %} - - {{ t.packages | count }} - - {{ t.title }} +
+
+ {{ t.title }} +
+ +
+ {{ t.views }} +
+ +
+ {{ t.packages | count }} +
+
{% endfor %}
diff --git a/migrations/versions/c5e4213721dd_.py b/migrations/versions/c5e4213721dd_.py new file mode 100644 index 0000000..4028a6b --- /dev/null +++ b/migrations/versions/c5e4213721dd_.py @@ -0,0 +1,24 @@ +"""empty message + +Revision ID: c5e4213721dd +Revises: 9832944cd1e4 +Create Date: 2020-07-15 17:54:33.738132 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'c5e4213721dd' +down_revision = '9832944cd1e4' +branch_labels = None +depends_on = None + + +def upgrade(): + op.add_column('tag', sa.Column('views', sa.Integer(), nullable=False, server_default="0")) + + +def downgrade(): + op.drop_column('tag', 'views')