Changeset 1108

Show
Ignore:
Timestamp:
06/02/07 19:15:51 (2 years ago)
Author:
alban
Message:

initial group support

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/app/models/upload.rb

    r788 r1108  
    99                self.key = StringRandom.alphanumeric(16).downcase 
    1010 
    11                 Dir.mkdir path 
     11                FileUtils.mkdir_p path 
    1212                File.chmod(02775, path) 
    1313  end 
  • trunk/app/models/user.rb

    r986 r1108  
    22class User < ActiveRecord::Base 
    33        has_many :reviews, :dependent => :destroy 
     4        has_and_belongs_to_many :groups 
     5        has_many :manageable_groups, :class_name => "Group", :foreign_key => "owner_id" 
    46 
    57        validates_uniqueness_of :username, :message => "Ce nom d'utilisateur existe déjà", :if => Proc.new { |u| u.openid_url.nil? } 
  • trunk/app/views/users/_sidebar.rhtml

    r986 r1108  
    1111 <li><%= link_to("Ajouter un podcast", :controller => "podcasts", :action => "add") %></li> 
    1212</ul> 
     13<ul> 
     14 <li><%= link_to("Gérer vos groupes", :controller => "group", :action => "manage") %></li> 
     15 <li><%= link_to("Ajouter un groupe", :controller => "group", :action => "add") %></li> 
     16</ul> 
    1317<h2>Recherchez</h2> 
    1418<% form_tag({:controller => :users, :action => :find }, :id => "search") do %> 
  • trunk/config/routes.rb

    r1001 r1108  
    1414  map.connect 'documents/:action/:id', :controller => 'documents' 
    1515  map.connect 'podcasts/feed/:name', :controller => 'podcasts', :action => 'feed' 
     16  map.connect 'podcasts/page/:page', :controller => 'podcasts', :action => 'manage' 
    1617  map.connect 'podcasts/:action/:id', :controller => 'podcasts' 
    17   map.connect 'podcasts/page/:page', :controller => 'podcasts', :action => 'manage' 
     18  map.connect 'groups/page/:page', :controller => 'group', :action => 'manage' 
     19  map.connect 'groups/:action/:id', :controller => 'group' 
    1820  map.connect 'subscriptions/tag/:name', :controller => 'subscriptions', :action => 'tag' 
    1921  map.connect 'subscriptions/tag/:name/:page', :controller => 'subscriptions', :action => 'tag' 
  • trunk/db/schema.rb

    r986 r1108  
    33# then regenerate this schema definition. 
    44 
    5 ActiveRecord::Schema.define(:version => 19) do 
     5ActiveRecord::Schema.define(:version => 20) do 
    66 
    77  create_table "casts", :force => true do |t| 
    8     t.column "document_id", :integer, :null => false 
    9     t.column "name",        :string,  :null => false 
     8    t.column "document_id", :integer,                 :null => false 
     9    t.column "name",        :string,  :default => "", :null => false 
    1010  end 
    1111 
     
    1515 
    1616  create_table "documents", :force => true do |t| 
    17     t.column "title",       :string,                                           :null => false 
    18     t.column "description", :string,                                           :null => false 
     17    t.column "title",       :string,   :default => "",                         :null => false 
     18    t.column "description", :string,   :default => "",                         :null => false 
    1919    t.column "author_id",   :integer,                                          :null => false 
    2020    t.column "length",      :integer,  :default => 0,                          :null => false 
    2121    t.column "size",        :integer,  :default => 0,                          :null => false 
    2222    t.column "format",      :string,   :default => "application/octet-stream", :null => false 
    23     t.column "type",        :string,                                           :null => false 
     23    t.column "type",        :string,   :default => "",                         :null => false 
    2424    t.column "uploaded",    :boolean,  :default => false 
    2525    t.column "updated_at",  :datetime 
     
    2929    t.column "document_id", :integer, :null => false 
    3030    t.column "tag_id",      :integer, :null => false 
     31  end 
     32 
     33  create_table "groups", :force => true do |t| 
     34    t.column "name",        :string,  :default => "", :null => false 
     35    t.column "description", :string 
     36    t.column "owner_id",    :integer,                 :null => false 
     37  end 
     38 
     39  create_table "groups_users", :id => false, :force => true do |t| 
     40    t.column "group_id", :integer 
     41    t.column "user_id",  :integer 
    3142  end 
    3243 
     
    6374 
    6475  create_table "reviews", :force => true do |t| 
    65     t.column "document_id", :integer,  :null => false 
    66     t.column "user_id",     :integer,  :null => false 
    67     t.column "rating",      :integer,  :null => false 
    68     t.column "description", :string,   :null => false 
    69     t.column "created_at",  :datetime, :null => false 
     76    t.column "document_id", :integer,                  :null => false 
     77    t.column "user_id",     :integer,                  :null => false 
     78    t.column "rating",      :integer,                  :null => false 
     79    t.column "description", :string,   :default => "", :null => false 
     80    t.column "created_at",  :datetime,                 :null => false 
    7081  end 
    7182 
     
    91102 
    92103  create_table "uploads", :force => true do |t| 
    93     t.column "document_id", :integer, :null => false 
    94     t.column "key",         :string,  :null => false 
     104    t.column "document_id", :integer,                 :null => false 
     105    t.column "key",         :string,  :default => "", :null => false 
    95106  end 
    96107 
    97108  create_table "users", :force => true do |t| 
    98     t.column "username",     :string,                      :null => false 
    99     t.column "password",     :string 
    100     t.column "name",         :string 
    101     t.column "email",        :string,                      :null => false 
     109    t.column "username",     :string,   :default => "",    :null => false 
     110    t.column "password",     :string,   :default => "",    :null => false 
     111    t.column "name",         :string,   :default => "",    :null => false 
     112    t.column "email",        :string,   :default => "",    :null => false 
    102113    t.column "organization", :string 
    103114    t.column "confirmed",    :boolean,  :default => false 
  • trunk/public/stylesheets/screen.css

    r986 r1108  
    195195} 
    196196 
    197 #subscribers, #users
     197#subscribers, #users, #members
    198198clear: both; 
    199199border: 1px solid #5884a6; 
    200200} 
    201 #subscribers li, #users li
     201#subscribers li, #users li, #members li
    202202padding: 12px; 
    203203margin: 2px 12px; 
     
    313313} 
    314314 
    315 #wrap:after, #content .vcard:after, #subscribers:after, #users:after, #content .hreview:after, #search:after { 
     315#wrap:after, #content .vcard:after, #subscribers:after, #users:after, #members:after, #content .hreview:after, #search:after { 
    316316content: ".";  
    317317display: block;  
     
    320320visibility: hidden; 
    321321} 
    322 * html #wrap, * html #content .vcard, * html #subscribers, * html #users, * html #search { height: 1%; } 
     322* html #wrap, * html #content .vcard, * html #subscribers, * html #users, * html #members, * html #search { height: 1%; }