diff --git a/lib/CF/Schema/Result/Post.pm b/lib/CF/Schema/Result/Post.pm index 03d004d4ccc6b333fac72bd978aedeefeda6d380..31d326e32d22f899c8b0186436c86dd5b7ef80d4 100644 --- a/lib/CF/Schema/Result/Post.pm +++ b/lib/CF/Schema/Result/Post.pm @@ -17,9 +17,12 @@ __PACKAGE__->add_columns( sequence => 'uid_seq' }, qw( - datetime + created + changed + deleted is_archived user_id + program_entry_id type state content diff --git a/lib/CF/Schema/Result/Post_view.pm b/lib/CF/Schema/Result/Post_view.pm index 4ddf5c77f494bd43c23b799c4ec4ded0783c5e30..a7c3978cd38e7afda395d7ede03766a7c671c705 100644 --- a/lib/CF/Schema/Result/Post_view.pm +++ b/lib/CF/Schema/Result/Post_view.pm @@ -24,12 +24,14 @@ sub format { my $post = { id => $self->id, - datetime => $self->datetime, + datetime => $self->created, type => $self->type, state => $self->state, content => $self->content, is_archived => $self->is_archived, + is_changed => $self->changed ? 1 : 0, author => { + id => $self->user_id, name => $self->user_name, group => $self->group_name, }, diff --git a/sql/2/up.sql b/sql/2/up.sql index 462490230544280bf52d362905cd49f14f6e168e..f085c6c12013ee4d52e3614efa3d1855651e97b6 100644 --- a/sql/2/up.sql +++ b/sql/2/up.sql @@ -1,8 +1,11 @@ create table "posts" ( "id" integer not null default nextval('uid_seq'), - "datetime" timestamp(0) not null default now(), + "created" timestamp(0) not null default now(), + "changed" timestamp(0), + "deleted" timestamp(0), "is_archived" bool not null default 'false', "user_id" integer not null, + "program_entry_id" integer, "type" integer not null, -- 0 - "post" | "procedure-proposal" "state" integer not null default 0, "content" text, @@ -11,18 +14,24 @@ create table "posts" ( primary key("id") ); -create table "announcements" ( +create table "posts_history" ( "id" integer not null default nextval('uid_seq'), "datetime" timestamp(0) not null default now(), - "is_archived" bool not null default 'false', - "user_id" integer, - "type" integer not null, + "post_id" integer not null, + "user_id" integer not null, "content" text, - "link" text, - "related_post_id" integer, primary key("id") ); +create table "posts_ranking" ( + "id" integer not null default nextval('uid_seq'), + "post_id" integer not null, + "user_id" integer not null, + "ranking" integer, + primary key("id"), + unique("post_id", "user_id") +); + create view "posts_view" as select "posts".*, diff --git a/sql/3/up.sql b/sql/3/up.sql index 58d40fa56f1596bae2d34b4e5add6f72178e2d88..7c84966c1bfc627639cab09895bde5e1d5861d1c 100644 --- a/sql/3/up.sql +++ b/sql/3/up.sql @@ -1,17 +1,13 @@ -create table "posts_history" ( +create table "announcements" ( "id" integer not null default nextval('uid_seq'), "datetime" timestamp(0) not null default now(), - "post_id" integer not null, - "user_id" integer not null, + "is_archived" bool not null default 'false', + "user_id" integer, + "type" integer not null, "content" text, + "link" text, + "related_post_id" integer, primary key("id") ); -create table "posts_ranking" ( - "id" integer not null default nextval('uid_seq'), - "post_id" integer not null, - "user_id" integer not null, - "ranking" integer, - primary key("id"), - unique("post_id", "user_id") -); +