aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/flatpages/policy_and_guidance.md10
-rw-r--r--app/models.py4
-rw-r--r--app/templates/packages/view.html7
-rw-r--r--app/templates/users/user_profile_page.html25
-rw-r--r--app/views/users/users.py6
-rw-r--r--migrations/versions/d6ae9682c45f_.py30
6 files changed, 72 insertions, 10 deletions
diff --git a/app/flatpages/policy_and_guidance.md b/app/flatpages/policy_and_guidance.md
index 16de1db..0fe110d 100644
--- a/app/flatpages/policy_and_guidance.md
+++ b/app/flatpages/policy_and_guidance.md
@@ -125,15 +125,15 @@ Public domain is not a valid license in many countries, please use CC0 or MIT in
## 5. Promotions and Advertisements (inc. asking for donations)
-Any information other than the long description - including screenshots - must
-not contain any promotions or advertisements. This includes asking for donations,
-promoting online shops, or linking to personal websites and social media.
+You may note place any promotions or advertisements in any meta data including
+screensthos. This includes asking for donations, promoting online shops,
+or linking to personal websites and social media. Please instead use the
+fields provided on your user profile page to place links to websites and
+donation pages.
ContentDB is for the community. We may remove any promotions if we feel that
they're inappropriate.
-Paid promotions are not allowed at all, anywhere.
-
## 6. Reporting Violations
diff --git a/app/models.py b/app/models.py
index cecf765..583c92a 100644
--- a/app/models.py
+++ b/app/models.py
@@ -129,6 +129,10 @@ class User(db.Model, UserMixin):
active = db.Column("is_active", db.Boolean, nullable=False, server_default="0")
display_name = db.Column(db.String(100), nullable=False, server_default="")
+ # Links
+ website_url = db.Column(db.String(255), nullable=True, default=None)
+ donate_url = db.Column(db.String(255), nullable=True, default=None)
+
# Content
notifications = db.relationship("Notification", primaryjoin="User.id==Notification.user_id")
diff --git a/app/templates/packages/view.html b/app/templates/packages/view.html
index b725dbe..8216c71 100644
--- a/app/templates/packages/view.html
+++ b/app/templates/packages/view.html
@@ -217,6 +217,13 @@
</table>
</div>
+ {% if package.author.donate_url %}
+ <div class="alert alert-secondary">
+ Like {{ package.author.display_name }}'s work?
+ <a href="{{ package.author.donate_url }}" rel="nofollow">Donate now!</a>
+ </div>
+ {% endif %}
+
{% if package.type == package.type.MOD %}
<div class="card my-4">
<div class="card-header">Dependencies</div>
diff --git a/app/templates/users/user_profile_page.html b/app/templates/users/user_profile_page.html
index 8fdca3f..fc197e8 100644
--- a/app/templates/users/user_profile_page.html
+++ b/app/templates/users/user_profile_page.html
@@ -7,7 +7,7 @@
{% block content %}
{% if not current_user.is_authenticated and user.rank == user.rank.NOT_JOINED and user.forums_username %}
-<div class="alert alert-info alert alert-info">
+<div class="alert alert-info">
<a class="float-right btn btn-default btn-sm"
href="{{ url_for('user_claim_page', username=user.forums_username) }}">Claim</a>
@@ -40,7 +40,7 @@
</td>
</tr>
<tr>
- <td>Accounts:</td>
+ <td>Links:</td>
<td>
{% if user.forums_username %}
<a href="https://forum.minetest.net/memberlist.php?mode=viewprofile&un={{ user.forums_username }}">
@@ -50,7 +50,7 @@
No forum account
{% endif %}
- {% if (user.forums_username and user.github_username) or user == current_user %}
+ {% if user.github_username or user == current_user %}
|
{% endif %}
@@ -60,8 +60,16 @@
<a href="{{ url_for('github_signin_page') }}">Link Github</a>
{% endif %}
+ {% if user.website_url %}
+ | <a href="{{ user.website_url }}" rel="nofollow">Website</a>
+ {% endif %}
+
{% if user == current_user %}
- &#x1f30e;
+ <br>
+ <small class="text-muted">
+ <span style="padding-right: 5px;">&#x1f30e;</span>
+ Visible to everyone
+ </small>
{% endif %}
</td>
</tr>
@@ -136,6 +144,8 @@
{% if user.checkPerm(current_user, "CHANGE_DNAME") %}
{{ render_field(form.display_name, tabindex=230) }}
+ {{ render_field(form.website_url, tabindex=232) }}
+ {{ render_field(form.donate_url, tabindex=233) }}
{% endif %}
{% if user.checkPerm(current_user, "CHANGE_EMAIL") %}
@@ -158,6 +168,13 @@
{% from "macros/packagegridtile.html" import render_pkggrid %}
{{ render_pkggrid(packages, show_author=False) }}
+{% if user.donate_url %}
+ <div class="alert alert-secondary">
+ Like {{ user.display_name }}'s work?
+ <a href="{{ user.donate_url }}" rel="nofollow">Donate now!</a>
+ </div>
+{% endif %}
+
{% if current_user == user or (current_user.is_authenticated and current_user.rank.atLeast(current_user.rank.EDITOR)) %}
<div class="card mt-3">
<a name="unadded-topics"></a>
diff --git a/app/views/users/users.py b/app/views/users/users.py
index 02def25..040950e 100644
--- a/app/views/users/users.py
+++ b/app/views/users/users.py
@@ -32,6 +32,8 @@ from app.tasks.phpbbparser import getProfile
class UserProfileForm(FlaskForm):
display_name = StringField("Display name", [Optional(), Length(2, 20)])
email = StringField("Email", [Optional(), Email()])
+ website_url = StringField("Website URL", [Optional(), URL()])
+ donate_url = StringField("Donation URL", [Optional(), URL()])
rank = SelectField("Rank", [Optional()], choices=UserRank.choices(), coerce=UserRank.coerce, default=UserRank.NEW_MEMBER)
submit = SubmitField("Save")
@@ -60,6 +62,8 @@ def user_profile_page(username):
# Copy form fields to user_profile fields
if user.checkPerm(current_user, Permission.CHANGE_DNAME):
user.display_name = form["display_name"].data
+ user.website_url = form["website_url"].data
+ user.donate_url = form["donate_url"].data
if user.checkPerm(current_user, Permission.CHANGE_RANK):
newRank = form["rank"].data
@@ -74,7 +78,7 @@ def user_profile_page(username):
token = randomString(32)
ver = UserEmailVerification()
- ver.user = user
+ ver.user = user
ver.token = token
ver.email = newEmail
db.session.add(ver)
diff --git a/migrations/versions/d6ae9682c45f_.py b/migrations/versions/d6ae9682c45f_.py
new file mode 100644
index 0000000..7ab8de8
--- /dev/null
+++ b/migrations/versions/d6ae9682c45f_.py
@@ -0,0 +1,30 @@
+"""empty message
+
+Revision ID: d6ae9682c45f
+Revises: 7ff57806ffd5
+Create Date: 2019-07-01 23:27:42.666877
+
+"""
+from alembic import op
+import sqlalchemy as sa
+from sqlalchemy.dialects import postgresql
+
+# revision identifiers, used by Alembic.
+revision = 'd6ae9682c45f'
+down_revision = '7ff57806ffd5'
+branch_labels = None
+depends_on = None
+
+
+def upgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.add_column('user', sa.Column('donate_url', sa.String(length=255), nullable=True))
+ op.add_column('user', sa.Column('website_url', sa.String(length=255), nullable=True))
+ # ### end Alembic commands ###
+
+
+def downgrade():
+ # ### commands auto generated by Alembic - please adjust! ###
+ op.drop_column('user', 'website_url')
+ op.drop_column('user', 'donate_url')
+ # ### end Alembic commands ###