1
0
mirror of https://github.com/aquatix/digimarks.git synced 2025-12-07 00:15:10 +01:00

PublicTag: public page with read-only bookmarks with this tag

This commit is contained in:
2016-07-23 15:18:04 +02:00
parent ad4d839a1a
commit cda3beac98
2 changed files with 78 additions and 1 deletions

View File

@@ -167,6 +167,17 @@ class Bookmark(db.Model):
return result return result
class PublicTag(db.Model):
""" Publicly shared tag """
tagkey = CharField()
userkey = CharField()
tag = CharField()
def generate_key(self):
""" Generate hash-based key for publicly shared tag """
self.tagkey = os.urandom(16).encode('hex')
def get_tags_for_user(userkey): def get_tags_for_user(userkey):
""" Extract all tags from the bookmarks """ """ Extract all tags from the bookmarks """
bookmarks = Bookmark.select().filter(Bookmark.userkey == userkey) bookmarks = Bookmark.select().filter(Bookmark.userkey == userkey)
@@ -330,6 +341,15 @@ def tag(userkey, tag):
return render_template('bookmarks.html', bookmarks=bookmarks, userkey=userkey, tags=tags, action=pageheader) return render_template('bookmarks.html', bookmarks=bookmarks, userkey=userkey, tags=tags, action=pageheader)
@app.route('/pub/<tagkey>')
def publictag(tagkey):
""" Read-only overview of the bookmarks in the userkey/tag of this PublicTag """
this_tag = get_object_or_404(PublicTag.get(PublicTag.tagkey == tagkey))
print this_tag
bookmarks = Bookmark.select().where(Bookmark.userkey == this_tag.userkey, tags.contains(this_tag.tag))
return render_template('publicbookmarks.html', bookmarks=bookmarks, tag=tag)
@app.route('/<systemkey>/adduser') @app.route('/<systemkey>/adduser')
def adduser(systemkey): def adduser(systemkey):
""" Add user endpoint, convenience """ """ Add user endpoint, convenience """
@@ -346,9 +366,10 @@ def adduser(systemkey):
if __name__ == '__main__': if __name__ == '__main__':
# create the bookmark table if it does not exist # create the bookmark, user and public tag tables if they do not exist
Bookmark.create_table(True) Bookmark.create_table(True)
User.create_table(True) User.create_table(True)
PublicTag.create_table(True)
users = User.select() users = User.select()
print 'Current user keys:' print 'Current user keys:'

View File

@@ -0,0 +1,56 @@
{% extends "base.html" %}
{% if not action %}
{% set action = 'Bookmarks' %}
{% endif %}
{% block title %}{{ action }}{% endblock %}
{% block pageheader %}{{ action }}{% endblock %}
{% block pagecontent %}
{% if message %}
<div class="row">
<div class="col s12">
<div class="card-panel orange lighten-2">
<span class="white-text">
{{ message }}
</span>
</div>
</div>
</div>
{% endif %}
<div class="row">
{% for bookmark in bookmarks %}
<div class="col s12 m6 l4">
<div class="card green darken-3">
<div class="card-content white-text">
<span class="card-title activator"><i class="material-icons right">more_vert</i></span>
{% if bookmark.http_status != 200 %}
<i class="material-icons" title="HTTP status {{ bookmark.http_status }}">report_problem</i>
{% endif %}
{% if bookmark.favicon %}
<img src="{{ url_for('static', filename='favicons/' + bookmark.favicon) }}" />&nbsp;&nbsp;&nbsp;
{% endif %}
<p><a href="{{ bookmark.url }}" title="{{ bookmark.url }}" rel="noreferrer">
{% if bookmark.starred == True %}
<i class="material-icons">star</i>
{% endif %}
{% if bookmark.title %}
{{ bookmark.title }}
{% else %}
[ no title ]
{% endif %}
</a></p>
</div>
<div class="card-reveal green darken-3">
<span class="card-title white-text">Added @ {{ bookmark.created_date.strftime('%Y-%m-%d %H:%M') }}<i class="material-icons right">close</i></span>
<div class="white-text">
{% if bookmark.favicon %}
<img src="{{ url_for('static', filename='favicons/' + bookmark.favicon) }}" />&nbsp;&nbsp;&nbsp;
{% endif %}
</div>
</div>
</div>
</div>
{% endfor %}
</div>
{% endblock %}