From bd68154772e80a98e9e5c96c6df8772ce3b2a84f Mon Sep 17 00:00:00 2001
From: Evan Prodromou <evan@status.net>
Date: Wed, 24 Feb 2010 23:28:41 -0500
Subject: Make user_group able to handle remote groups

We add a local_group table to store data about local groups. It has
the unique key for nickname, so /group/<nickname> looks up here.

Updated DB data object classes and data files.
---
 db/statusnet.sql | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

(limited to 'db/statusnet.sql')

diff --git a/db/statusnet.sql b/db/statusnet.sql
index 97117c80a..75d060e28 100644
--- a/db/statusnet.sql
+++ b/db/statusnet.sql
@@ -406,7 +406,7 @@ create table profile_block (
 create table user_group (
     id integer auto_increment primary key comment 'unique identifier',
 
-    nickname varchar(64) unique key comment 'nickname for addressing',
+    nickname varchar(64) comment 'nickname for addressing',
     fullname varchar(255) comment 'display name',
     homepage varchar(255) comment 'URL, cached so we dont regenerate',
     description text comment 'group description',
@@ -421,6 +421,8 @@ create table user_group (
     created datetime not null comment 'date this record was created',
     modified timestamp comment 'date this record was modified',
 
+    uri varchar(255) unique key comment 'universal identifier',
+
     index user_group_nickname_idx (nickname)
 
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
@@ -641,3 +643,13 @@ create table conversation (
     modified timestamp comment 'date this record was modified'
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
 
+create table local_group (
+
+   group_id integer primary key comment 'group represented' references user_group (id),
+   nickname varchar(64) unique key comment 'group represented',
+
+   created datetime not null comment 'date this record was created',
+   modified timestamp comment 'date this record was modified'
+
+) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
+
-- 
cgit v1.2.3-54-g00ecf


From 8f42d375939116eff482b3d07a8feaa4cc29c984 Mon Sep 17 00:00:00 2001
From: Evan Prodromou <evan@status.net>
Date: Thu, 25 Feb 2010 09:24:29 -0500
Subject: Add 'mainpage' to User_group

Add the mainpage attribute to user_group objects.
---
 classes/User_group.php | 10 ++++++++--
 classes/statusnet.ini  |  1 +
 db/statusnet.sql       |  1 +
 3 files changed, 10 insertions(+), 2 deletions(-)

(limited to 'db/statusnet.sql')

diff --git a/classes/User_group.php b/classes/User_group.php
index 5877ce202..a81eb8ce0 100644
--- a/classes/User_group.php
+++ b/classes/User_group.php
@@ -23,6 +23,7 @@ class User_group extends Memcached_DataObject
     public $created;                         // datetime   not_null default_0000-00-00%2000%3A00%3A00
     public $modified;                        // timestamp   not_null default_CURRENT_TIMESTAMP
     public $uri;                             // varchar(255)  unique_key
+    public $mainpage;                        // varchar(255)
 
     /* Static get */
     function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('User_group',$k,$v); }
@@ -42,8 +43,13 @@ class User_group extends Memcached_DataObject
     {
         $url = null;
         if (Event::handle('StartUserGroupHomeUrl', array($this, &$url))) {
-            $url = common_local_url('showgroup',
-                                    array('nickname' => $this->nickname));
+            // normally stored in mainpage, but older ones may be null
+            if (!empty($this->mainpage)) {
+                $url = $this->mainpage;
+            } else {
+                $url = common_local_url('showgroup',
+                                        array('nickname' => $this->nickname));
+            }
         }
         Event::handle('EndUserGroupHomeUrl', array($this, &$url));
         return $url;
diff --git a/classes/statusnet.ini b/classes/statusnet.ini
index 7444306f0..719dbedf5 100644
--- a/classes/statusnet.ini
+++ b/classes/statusnet.ini
@@ -601,6 +601,7 @@ design_id = 1
 created = 142
 modified = 384
 uri = 2
+mainpage = 2
 
 [user_group__keys]
 id = N
diff --git a/db/statusnet.sql b/db/statusnet.sql
index 75d060e28..4158f0167 100644
--- a/db/statusnet.sql
+++ b/db/statusnet.sql
@@ -422,6 +422,7 @@ create table user_group (
     modified timestamp comment 'date this record was modified',
 
     uri varchar(255) unique key comment 'universal identifier',
+    mainpage varchar(255) comment 'page for group info to link to',
 
     index user_group_nickname_idx (nickname)
 
-- 
cgit v1.2.3-54-g00ecf

