Compare commits

..

5 commits
prod ... master

11 changed files with 33 additions and 7 deletions

View file

@ -61,4 +61,4 @@ $safety-sketchy = #F3D75F
$safety-unsafe = #F3985F
$scrollbar-thumb-color = $main-color
$scrollbar-bg-color = $input-enabled-background-color
$transparency-grid-square-color = #F0F0F0
$transparency-grid-square-color = #F0F0F0

View file

@ -53,6 +53,7 @@
<div class='post-container'></div>
<div class='after-mobile-controls'>
<div class='description'></div>
<% if (ctx.canCreateComments) { %>
<h2>Add comment</h2>
<div class='comment-form-container'></div>

View file

@ -187,6 +187,9 @@ class PostMainController extends BasePostController {
if (e.detail.source !== undefined && e.detail.source !== null) {
post.source = e.detail.source;
}
if (e.detail.desc !== undefined && e.detail.desc !== null) {
post.desc = e.detail.desc;
}
post.save().then(
() => {
this._view.sidebarControl.showSuccess("Post saved.");

View file

@ -114,6 +114,10 @@ class Post extends events.EventTarget {
return this._notes;
}
get desc() {
return this._desc;
}
get comments() {
return this._comments;
}
@ -277,6 +281,9 @@ class Post extends events.EventTarget {
if (this._source !== this._orig._source) {
detail.source = this._source;
}
if (this._desc !== this._orig._desc) {
detail.desc = this._desc;
}
let apiPromise = this._id
? api.put(uri.formatApiLink("post", this.id), detail, files)

View file

@ -9,7 +9,6 @@ BUILD_INFO=latest
# Set to 127.0.0.1:8080 if you wish to reverse-proxy the docker's port,
# otherwise the port specified here will be publicly accessible
PORT=8080
# EXPOSED_POSTGRES_PORT=34517
# How many waitress threads to start
# 4 is the default amount of threads. If you experience performance

View file

@ -2,7 +2,7 @@
##
## Use this as a template to set up docker-compose, or as guide to set up other
## orchestration services
version: '2'
#version: '2'
services:
@ -40,7 +40,7 @@ services:
volumes:
- "${MOUNT_DATA}:/data:ro"
ports:
- "${PORT:-3000}:80"
- "${PORT}:80"
sql:
image: postgres:11-alpine
@ -48,7 +48,7 @@ services:
environment:
POSTGRES_USER:
POSTGRES_PASSWORD:
ports:
- "${EXPOSED_POSTGRES_PORT:-34517}:5432"
# ports:
# - 5432:5432
volumes:
- "${MOUNT_SQL}:/var/lib/postgresql/data"

View file

@ -103,6 +103,7 @@ privileges:
'posts:edit:content': power
'posts:edit:flags': regular
'posts:edit:notes': regular
'posts:edit:desc': regular
'posts:edit:relations': regular
'posts:edit:safety': power
'posts:edit:source': regular

View file

@ -72,6 +72,7 @@ def create_post(
source = ctx.get_param_as_string("contentUrl", default="")
relations = ctx.get_param_as_int_list("relations", default=[])
notes = ctx.get_param_as_list("notes", default=[])
desc = ctx.get_param_as_string("desc", default="")
flags = ctx.get_param_as_string_list(
"flags", default=posts.get_default_flags(content)
)
@ -85,6 +86,7 @@ def create_post(
posts.update_post_source(post, source)
posts.update_post_relations(post, relations)
posts.update_post_notes(post, notes)
posts.update_post_desc(post, desc)
posts.update_post_flags(post, flags)
if ctx.has_file("thumbnail"):
posts.update_post_thumbnail(post, ctx.get_file("thumbnail"))
@ -159,6 +161,9 @@ def update_post(ctx: rest.Context, params: Dict[str, str]) -> rest.Response:
if ctx.has_param("notes"):
auth.verify_privilege(ctx.user, "posts:edit:notes")
posts.update_post_notes(post, ctx.get_param_as_list("notes"))
if ctx.has_param("desc"):
auth.verify_privilege(ctx.user, "posts:edit:desc")
posts.update_post_desc(post, ctx.get_param_as_string("desc"))
if ctx.has_param("flags"):
auth.verify_privilege(ctx.user, "posts:edit:flags")
posts.update_post_flags(post, ctx.get_param_as_string_list("flags"))

View file

@ -197,6 +197,7 @@ class PostSerializer(serialization.BaseSerializer):
"favoritedBy": self.serialize_favorited_by,
"hasCustomThumbnail": self.serialize_has_custom_thumbnail,
"notes": self.serialize_notes,
"desc": self.serialize_desc,
"comments": self.serialize_comments,
"pools": self.serialize_pools,
}
@ -328,6 +329,9 @@ class PostSerializer(serialization.BaseSerializer):
key=lambda x: x["polygon"],
)
def serialize_desc(self) -> Any:
return self.post.desc
def serialize_comments(self) -> Any:
return [
comments.serialize_comment(comment, self.auth_user)
@ -779,6 +783,11 @@ def update_post_notes(post: model.Post, notes: Any) -> None:
)
def update_post_desc(post: model.Post, desc: str) -> None:
assert post
post.desc = desc
def update_post_flags(post: model.Post, flags: List[str]) -> None:
assert post
target_flags = []

View file

@ -29,6 +29,7 @@ def upgrade():
sa.Column("image_width", sa.Integer(), nullable=True),
sa.Column("image_height", sa.Integer(), nullable=True),
sa.Column("flags", sa.Integer(), nullable=False),
sa.Column("description", sa.UnicodeText, nullable=True, default=""),
sa.Column("auto_fav_count", sa.Integer(), nullable=False),
sa.Column("auto_score", sa.Integer(), nullable=False),
sa.Column("auto_feature_count", sa.Integer(), nullable=False),

View file

@ -110,7 +110,6 @@ class PostNote(Base):
post = sa.orm.relationship("Post")
class PostRelation(Base):
__tablename__ = "post_relation"
@ -222,6 +221,7 @@ class Post(Base):
canvas_width = sa.Column("image_width", sa.Integer)
canvas_height = sa.Column("image_height", sa.Integer)
mime_type = sa.Column("mime-type", sa.Unicode(32), nullable=False)
desc = sa.Column("description", sa.UnicodeText, nullable=True, default="")
# foreign tables
user = sa.orm.relationship("User")