diff options
-rw-r--r-- | app/models.py | 2 | ||||
-rw-r--r-- | app/scss/components.scss | 4 | ||||
-rw-r--r-- | app/tasks/forumtasks.py | 7 | ||||
-rw-r--r-- | app/templates/macros/topictable.html | 11 | ||||
-rw-r--r-- | app/templates/packages/view.html | 1 | ||||
-rw-r--r-- | app/templates/todo/list.html | 2 | ||||
-rw-r--r-- | app/templates/users/user_profile_page.html | 5 | ||||
-rw-r--r-- | app/views/packages/todo.py | 2 | ||||
-rw-r--r-- | migrations/versions/9e2ac631efb0_.py | 28 |
9 files changed, 52 insertions, 10 deletions
diff --git a/app/models.py b/app/models.py index 338b4f0..39a8647 100644 --- a/app/models.py +++ b/app/models.py @@ -768,6 +768,8 @@ class ForumTopic(db.Model): author_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False) author = db.relationship("User") + wip = db.Column(db.Boolean, server_default="0") + type = db.Column(db.Enum(PackageType), nullable=False) title = db.Column(db.String(200), nullable=False) name = db.Column(db.String(30), nullable=True) diff --git a/app/scss/components.scss b/app/scss/components.scss index aac5e26..a90a510 100644 --- a/app/scss/components.scss +++ b/app/scss/components.scss @@ -451,3 +451,7 @@ table.fancyTable tfoot td { .table-topalign td { vertical-align: top; } + +.wiptopic a { + color: #7ac; +} diff --git a/app/tasks/forumtasks.py b/app/tasks/forumtasks.py index 5513fb2..338ffa2 100644 --- a/app/tasks/forumtasks.py +++ b/app/tasks/forumtasks.py @@ -87,8 +87,10 @@ def importTopicList(): links_by_id = getLinksFromModSearch() info_by_id = {} - getTopicsFromForum(11, out=info_by_id, extra={ 'type': PackageType.MOD }) - getTopicsFromForum(15, out=info_by_id, extra={ 'type': PackageType.GAME }) + getTopicsFromForum(11, out=info_by_id, extra={ 'type': PackageType.MOD, 'wip': False }) + getTopicsFromForum(9, out=info_by_id, extra={ 'type': PackageType.MOD, 'wip': True }) + getTopicsFromForum(15, out=info_by_id, extra={ 'type': PackageType.GAME, 'wip': False }) + getTopicsFromForum(50, out=info_by_id, extra={ 'type': PackageType.GAME, 'wip': True }) # Caches username_to_user = {} @@ -131,6 +133,7 @@ def importTopicList(): topic.title = title topic.name = name topic.link = link + topic.wip = info["wip"] topic.posts = info["posts"] topic.views = info["views"] topic.created_at = info["date"] diff --git a/app/templates/macros/topictable.html b/app/templates/macros/topictable.html index 7ae8a35..8a6b31c 100644 --- a/app/templates/macros/topictable.html +++ b/app/templates/macros/topictable.html @@ -2,6 +2,7 @@ <table> <tr> <th>Id</th> + <th></th> <th>Title</th> {% if show_author %}<th>Author</th>{% endif %} <th>Name</th> @@ -9,9 +10,15 @@ <th>Actions</th> </tr> {% for topic in topics %} - <tr> + <tr{% if topic.wip %} class="wiptopic"{% endif %}> <td>{{ topic.topic_id }}</td> - <td>[{{ topic.type.value }}] <a href="https://forum.minetest.net/viewtopic.php?t={{ topic.topic_id}}">{{ topic.title }}</a></td> + <td> + [{{ topic.type.value }}] + </td> + <td> + <a href="https://forum.minetest.net/viewtopic.php?t={{ topic.topic_id}}">{{ topic.title }}</a> + {% if topic.wip %}[WIP]{% endif %} + </td> {% if show_author %} <td><a href="{{ url_for('user_profile_page', username=topic.author.username) }}">{{ topic.author.display_name}}</a></td> {% endif %} diff --git a/app/templates/packages/view.html b/app/templates/packages/view.html index f69b5cf..df31ce1 100644 --- a/app/templates/packages/view.html +++ b/app/templates/packages/view.html @@ -296,6 +296,7 @@ <a href="https://forum.minetest.net/viewtopic.php?t={{ t.topic_id }}"> {{ t.title }} by {{ t.author.display_name }} </a> + {% if t.wip %}[WIP]{% endif %} </li> {% endfor %} </ul> diff --git a/app/templates/todo/list.html b/app/templates/todo/list.html index f2172a6..5e50c2e 100644 --- a/app/templates/todo/list.html +++ b/app/templates/todo/list.html @@ -65,6 +65,6 @@ <p> There are <a href="{{ url_for('todo_topics_page') }}">{{ topics_to_add }} packages</a> - to be added to cdb, based on forum topics picked up by Krock's mod search. + to be added to cdb, based on cdb's forum parser. </p> {% endblock %} diff --git a/app/templates/users/user_profile_page.html b/app/templates/users/user_profile_page.html index 636a610..81b5934 100644 --- a/app/templates/users/user_profile_page.html +++ b/app/templates/users/user_profile_page.html @@ -104,12 +104,9 @@ <div class="box-body"> <p> - List of your topics without a matching package. - Powered by Krock's Mod Search. + List of your forum topics which do not have a matching package. </p> - - {% from "macros/topictable.html" import render_topictable %} {{ render_topictable(topics_to_add, show_author=False) }} </div> diff --git a/app/views/packages/todo.py b/app/views/packages/todo.py index 84cfef4..314c374 100644 --- a/app/views/packages/todo.py +++ b/app/views/packages/todo.py @@ -58,7 +58,7 @@ def todo_topics_page(): topics = ForumTopic.query \ .filter(~ db.exists().where(Package.forums==ForumTopic.topic_id)) \ - .order_by(db.asc(ForumTopic.name), db.asc(ForumTopic.title)) \ + .order_by(db.asc(ForumTopic.wip), db.asc(ForumTopic.name), db.asc(ForumTopic.title)) \ .all() return render_template("todo/topics.html", topics=topics, total=total) diff --git a/migrations/versions/9e2ac631efb0_.py b/migrations/versions/9e2ac631efb0_.py new file mode 100644 index 0000000..1b10d0e --- /dev/null +++ b/migrations/versions/9e2ac631efb0_.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: 9e2ac631efb0 +Revises: 11b6ef362f98 +Create Date: 2018-07-06 23:16:50.507010 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '9e2ac631efb0' +down_revision = '11b6ef362f98' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('forum_topic', sa.Column('wip', sa.Boolean(), nullable=False, server_default="0")) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('forum_topic', 'wip') + # ### end Alembic commands ### |