]> git.lizzy.rs Git - cheatdb.git/commitdiff
Count tag views
authorrubenwardy <rw@rubenwardy.com>
Wed, 15 Jul 2020 18:06:00 +0000 (19:06 +0100)
committerrubenwardy <rw@rubenwardy.com>
Wed, 15 Jul 2020 18:06:00 +0000 (19:06 +0100)
app/blueprints/packages/packages.py
app/models.py
app/querybuilder.py
app/templates/admin/tags/list.html
migrations/versions/c5e4213721dd_.py [new file with mode: 0644]

index 90cb72f2909dfd9e0df3d441d01e74237f5d9f9f..8cb9b62df249cea49605f9d72244363a24eee61d 100644 (file)
@@ -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:
index 2bb6d3dc41a10b5637595620f9c664c0283e8c47..711d9fd24d5d97ba5cfa861d60d6956c82751897 100644 (file)
@@ -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
index 49728f0c7f1a9af74b6d4e7b532482cec3557914..c4823cb31776899b2a397dfd8c54b5fc7f4b2673 100644 (file)
@@ -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
index 574d1a62ff7885e197bb5aff89c504fc804c9d4a..8db66ca8b8d49ddb5c7e59a3afd7c57610536024 100644 (file)
        </p>
 
        <div class="list-group">
+
+               <div class="list-group-item">
+                       <div class="row text-muted">
+                               <div class="col-sm">
+                                       {{ _("Name") }}
+                               </div>
+
+                               <span class="col-sm-1 text-center">
+                                       {{ _("Views") }}
+                               </span>
+
+                               <div class="col-sm-1 text-center">
+                                       {{ _("Packages") }}
+                               </div>
+                       </div>
+               </div>
+
                {% for t in tags %}
                        <a class="list-group-item list-group-item-action"
                                        href="{{ url_for('admin.create_edit_tag', name=t.name) }}">
-                               <span class="float-right badge badge-primary badge-pill">
-                                       {{ t.packages | count }}
-                               </span>
-                               {{ t.title }}
+                               <div class="row">
+                                       <div class="col-sm">
+                                               {{ t.title }}
+                                       </div>
+
+                                       <div class="col-sm-1 text-center">
+                                               {{ t.views }}
+                                       </div>
+
+                                       <div class="col-sm-1 text-center">
+                                               {{ t.packages | count }}
+                                       </div>
+                               </div>
                        </a>
                {% endfor %}
        </div>
diff --git a/migrations/versions/c5e4213721dd_.py b/migrations/versions/c5e4213721dd_.py
new file mode 100644 (file)
index 0000000..4028a6b
--- /dev/null
@@ -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')