Showing community count on main sidebar

- Fixes #232
This commit is contained in:
Dessalines 2019-08-28 21:28:06 -07:00
parent 37c0f751d0
commit 1c59f06fc8
6 changed files with 27 additions and 0 deletions

View file

@ -0,0 +1,9 @@
drop view site_view;
create view site_view as
select *,
(select name from user_ u where s.creator_id = u.id) as creator_name,
(select count(*) from user_) as number_of_users,
(select count(*) from post) as number_of_posts,
(select count(*) from comment) as number_of_comments
from site s;

View file

@ -0,0 +1,10 @@
drop view site_view;
create view site_view as
select *,
(select name from user_ u where s.creator_id = u.id) as creator_name,
(select count(*) from user_) as number_of_users,
(select count(*) from post) as number_of_posts,
(select count(*) from comment) as number_of_comments,
(select count(*) from community) as number_of_communities
from site s;

View file

@ -69,6 +69,7 @@ table! {
number_of_users -> BigInt, number_of_users -> BigInt,
number_of_posts -> BigInt, number_of_posts -> BigInt,
number_of_comments -> BigInt, number_of_comments -> BigInt,
number_of_communities -> BigInt,
} }
} }
@ -253,6 +254,7 @@ pub struct SiteView {
pub number_of_users: i64, pub number_of_users: i64,
pub number_of_posts: i64, pub number_of_posts: i64,
pub number_of_comments: i64, pub number_of_comments: i64,
pub number_of_communities: i64,
} }
impl SiteView { impl SiteView {

View file

@ -39,6 +39,7 @@ export class Main extends Component<any, MainState> {
number_of_users: null, number_of_users: null,
number_of_posts: null, number_of_posts: null,
number_of_comments: null, number_of_comments: null,
number_of_communities: null,
}, },
admins: [], admins: [],
banned: [], banned: [],
@ -217,6 +218,9 @@ export class Main extends Component<any, MainState> {
<li className="list-inline-item badge badge-secondary"> <li className="list-inline-item badge badge-secondary">
<T i18nKey="number_of_users" interpolation={{count: this.state.site.site.number_of_users}}>#</T> <T i18nKey="number_of_users" interpolation={{count: this.state.site.site.number_of_users}}>#</T>
</li> </li>
<li className="list-inline-item badge badge-secondary">
<T i18nKey="number_of_communities" interpolation={{count: this.state.site.site.number_of_communities}}>#</T>
</li>
<li className="list-inline-item badge badge-secondary"> <li className="list-inline-item badge badge-secondary">
<T i18nKey="number_of_posts" interpolation={{count: this.state.site.site.number_of_posts}}>#</T> <T i18nKey="number_of_posts" interpolation={{count: this.state.site.site.number_of_posts}}>#</T>
</li> </li>

View file

@ -135,6 +135,7 @@ export interface Site {
number_of_users: number; number_of_users: number;
number_of_posts: number; number_of_posts: number;
number_of_comments: number; number_of_comments: number;
number_of_communities: number;
} }
export interface FollowCommunityForm { export interface FollowCommunityForm {

View file

@ -21,6 +21,7 @@ export const en = {
subscribed_to_communities:'Subscribed to <1>communities</1>', subscribed_to_communities:'Subscribed to <1>communities</1>',
trending_communities:'Trending <1>communities</1>', trending_communities:'Trending <1>communities</1>',
list_of_communities: 'List of communities', list_of_communities: 'List of communities',
number_of_communities:'{{count}} Communities',
community_reqs: 'lowercase, underscores, and no spaces.', community_reqs: 'lowercase, underscores, and no spaces.',
edit: 'edit', edit: 'edit',
reply: 'reply', reply: 'reply',