建立了open source project部分的框架,并且建立了相应的帖子

This commit is contained in:
fanqiang 2014-04-01 08:51:43 +08:00
parent d935152ed7
commit cfa5532598
9 changed files with 264 additions and 11 deletions

View File

@ -1,5 +1,9 @@
class OpenSourceProject < ActiveRecord::Base class OpenSourceProject < ActiveRecord::Base
attr_accessible :String attr_accessible :String
has_many :tags, :through => :project_tags, :class_name => 'Tag'
has_many :project_tags, :class_name => 'ProjectTags'
acts_as_taggable
def short_description(length = 255) def short_description(length = 255)
description.gsub(/^(.{#{length}}[^\n\r]*).*$/m, '\1...').strip if description description.gsub(/^(.{#{length}}[^\n\r]*).*$/m, '\1...').strip if description
end end

View File

@ -0,0 +1,3 @@
class RelativeMemo < ActiveRecord::Base
# attr_accessible :title, :body
end

View File

@ -26,7 +26,7 @@
<div class="top-content"> <div class="top-content">
<table> <table>
<tr> <tr>
<td class="info_font" style="width: 240px; color: #15bccf">软件项目托管社区</td> <td class="info_font" style="width: 240px; color: #15bccf">开源项目社区</td>
<td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td> <td style="width: 430px; color: #15bccf"><strong><%= l(:label_user_location) %> : </strong></td>
<td rowspan="2" width="250px"> <td rowspan="2" width="250px">
<div class="top-content-search"> <div class="top-content-search">
@ -69,8 +69,8 @@
</tr> </tr>
<tr class="font_aram"> <tr class="font_aram">
<td align="center" width="70px"> <%= l(:label_member) %></td> <td align="center" width="70px"> 贡献者</td>
<td align="center" width="100px"><%= l(:label_user_watchered) %></td> <td align="center" width="100px">讨论</td>
<td align="center" width="70px"> <%= l(:label_project_issues) %></td> <td align="center" width="70px"> <%= l(:label_project_issues) %></td>
<!-- <td align="center" width="58px"><%= l(:label_attachment) %></td> --> <!-- <td align="center" width="58px"><%= l(:label_attachment) %></td> -->
</tr> </tr>
@ -90,6 +90,10 @@
<div class="created_on_project"> <div class="created_on_project">
<strong style="color: #15bccf"><%= l(:label_create_time) %></strong><%= format_time(@open_source_project.created_at) %> <strong style="color: #15bccf"><%= l(:label_create_time) %></strong><%= format_time(@open_source_project.created_at) %>
</div> </div>
<div class="created_on_project">
<strong style="color: #15bccf"> 项目来源:</strong><%= link_to @open_source_project.url, @open_source_project.url %>
</div>
</div> </div>
<div class="user_underline"></div> <div class="user_underline"></div>
</div> </div>
@ -97,6 +101,11 @@
<div class="user_fans"> <div class="user_fans">
<!-- added by william -for tag --> <!-- added by william -for tag -->
<div class="user_tags">
<div id="tags">
<%= render :partial => 'tags/tag', :locals => {:obj => @open_source_project,:object_flag => "2"}%>
</div>
</div>
<!-- tag --> <!-- tag -->
</div> </div>

View File

@ -1,4 +1,3 @@
<!--Added by nie-->
<div class="project-block"> <div class="project-block">
<div class="img-tag"> <div class="img-tag">
图片 图片
@ -28,7 +27,7 @@
<p class="stats"> <p class="stats">
<strong><span style="font-size: 17px;margin-left: 145px"> <strong><span style="font-size: 17px;margin-left: 145px">
<%= 1 %></span></strong> <%= 1 %></span></strong>
<%= content_tag('span', l(:label_commit_on)) %> <%= content_tag('span', "行代码") %>
</p> </p>
</div> </div>
@ -45,12 +44,17 @@
</div> </div>
</div> </div>
<div class="url">
<div class="main-language">
<%= content_tag('span', "项目来源:")%><%= link_to project.url, project.url %>
</div>
<div class="licences">
<%= content_tag('span', "数据更新时间") %><%= content_tag('span', format_time(project.created_at)) %>
</div>
</div>
<div class="tags"> <div class="tags">
<!-- added by william -for tag -->
<div id="tags"> <div id="tags">
<%= image_tag( "/images/sidebar/tags.png") %> <%= image_tag( "/images/sidebar/tags.png") %>
<%= render :partial => 'tags/tag_name', :locals => {:obj => project,:object_flag => "2",:non_list_all => true }%>
</div> </div>
</div> </div>

View File

@ -26,7 +26,7 @@
<% @open_source_projects.each do |project| %> <% @open_source_projects.each do |project| %>
<li class='project-table'> <li class='project-table'>
<div class = 'root'> <div class = 'root'>
<%= link_to project.name, open_source_projects_path(project), :class=>"project root leaf"%> <%= link_to project.name, open_source_project_path(project), :class=>"project root leaf"%>
<span style="float: right;"></span> <span style="float: right;"></span>
<%= render :partial => 'open_source_projects/os_project', :locals => {:project => project}%> <%= render :partial => 'open_source_projects/os_project', :locals => {:project => project}%>
</div> </div>

View File

@ -0,0 +1,18 @@
class CreateRelativeMemos < ActiveRecord::Migration
def change
create_table :relative_memos do |t|
t.integer :osp_id, :null => false
t.integer :parent_id, null: true
t.string :subject, null: false
t.text :content, null: false
t.integer :author_id
t.integer :replies_count, default: 0
t.integer :last_reply_id
t.boolean :lock, default: false
t.boolean :sticky, default: false
t.boolean :is_quote, default: false
t.timestamps
end
end
end

View File

@ -11,7 +11,7 @@
# #
# It's strongly recommended to check this file into your version control system. # It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20140324015819) do ActiveRecord::Schema.define(:version => 20140401004102) do
create_table "activities", :force => true do |t| create_table "activities", :force => true do |t|
t.integer "act_id", :null => false t.integer "act_id", :null => false
@ -62,6 +62,20 @@ ActiveRecord::Schema.define(:version => 20140324015819) do
add_index "auth_sources", ["id", "type"], :name => "index_auth_sources_on_id_and_type" add_index "auth_sources", ["id", "type"], :name => "index_auth_sources_on_id_and_type"
create_table "bak_mentioned", :primary_key => "Id", :force => true do |t|
t.string "this_real_name", :limit => 1000
t.integer "is_mentioned_in"
t.string "context", :limit => 2000
end
add_index "bak_mentioned", ["this_real_name", "is_mentioned_in"], :name => "name_mention", :length => {"this_real_name"=>900, "is_mentioned_in"=>nil}
add_index "bak_mentioned", ["this_real_name"], :name => "this_real_name"
add_index "bak_mentioned", ["this_real_name"], :name => "this_real_name_2"
add_index "bak_mentioned", ["this_real_name"], :name => "this_real_name_3", :length => {"this_real_name"=>900}
add_index "bak_mentioned", ["this_real_name"], :name => "this_real_name_4"
add_index "bak_mentioned", ["this_real_name"], :name => "this_real_name_5"
add_index "bak_mentioned", ["this_real_name"], :name => "this_real_name_6"
create_table "biding_projects", :force => true do |t| create_table "biding_projects", :force => true do |t|
t.integer "project_id" t.integer "project_id"
t.integer "bid_id" t.integer "bid_id"
@ -101,6 +115,11 @@ ActiveRecord::Schema.define(:version => 20140324015819) do
add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id"
add_index "boards", ["project_id"], :name => "boards_project_id" add_index "boards", ["project_id"], :name => "boards_project_id"
create_table "categories", :primary_key => "Id", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "proj_categories"
end
create_table "changes", :force => true do |t| create_table "changes", :force => true do |t|
t.integer "changeset_id", :null => false t.integer "changeset_id", :null => false
t.string "action", :limit => 1, :default => "", :null => false t.string "action", :limit => 1, :default => "", :null => false
@ -232,6 +251,14 @@ ActiveRecord::Schema.define(:version => 20140324015819) do
add_index "documents", ["created_on"], :name => "index_documents_on_created_on" add_index "documents", ["created_on"], :name => "index_documents_on_created_on"
add_index "documents", ["project_id"], :name => "documents_project_id" add_index "documents", ["project_id"], :name => "documents_project_id"
create_table "eco_projects", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.integer "eco_proj_id"
t.datetime "date_collected"
end
add_index "eco_projects", ["proj_id"], :name => "proj_id"
create_table "enabled_modules", :force => true do |t| create_table "enabled_modules", :force => true do |t|
t.integer "project_id" t.integer "project_id"
t.string "name", :null => false t.string "name", :null => false
@ -253,6 +280,137 @@ ActiveRecord::Schema.define(:version => 20140324015819) do
add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type"
add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id"
create_table "events", :primary_key => "event_id", :force => true do |t|
t.string "job_name"
t.datetime "event_time"
t.string "event_type", :limit => 20
end
create_table "fm_article", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "article_title", :limit => 16777215
t.text "article_link", :limit => 16777215
t.text "article_time", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_article", ["proj_id"], :name => "proj_id"
create_table "fm_bugtracker_link", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "description", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_bugtracker_link", ["proj_id"], :name => "proj_id"
create_table "fm_datametric_link", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "description", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_datametric_link", ["proj_id"], :name => "proj_id"
create_table "fm_dependency_link", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "description", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_dependency_link", ["proj_id"], :name => "proj_id"
create_table "fm_download_link", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "download_link", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_download_link", ["proj_id"], :name => "proj_id"
create_table "fm_heartbeat", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.float "popularity_score", :limit => 12
t.float "vitality_score", :limit => 12
t.integer "subscription"
t.integer "voting_score"
t.integer "voting_count"
t.datetime "date_collected"
end
add_index "fm_heartbeat", ["proj_id"], :name => "proj_id"
create_table "fm_license", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "description", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_license", ["proj_id"], :name => "proj_id"
create_table "fm_mailinglist_link", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "description", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_mailinglist_link", ["proj_id"], :name => "proj_id"
create_table "fm_operating_system", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "description", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_operating_system", ["proj_id"], :name => "proj_id"
create_table "fm_programming_language", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "description", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_programming_language", ["proj_id"], :name => "proj_id"
create_table "fm_project_spotlight", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "description", :limit => 16777215
t.text "project_name", :limit => 16777215
t.text "project_spotlight_link", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_project_spotlight", ["proj_id"], :name => "proj_id"
create_table "fm_release", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "description", :limit => 16777215
t.text "release_version", :limit => 16777215
t.text "release_time", :limit => 16777215
t.text "release_tag", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_release", ["proj_id"], :name => "proj_id"
create_table "fm_submit", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "submitter", :limit => 16777215
t.text "submitter_link", :limit => 16777215
t.text "submit_time", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_submit", ["proj_id"], :name => "proj_id"
create_table "fm_summary", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.text "description", :limit => 16777215
t.datetime "date_collected"
end
add_index "fm_summary", ["proj_id"], :name => "proj_id"
create_table "forums", :force => true do |t| create_table "forums", :force => true do |t|
t.string "name", :null => false t.string "name", :null => false
t.string "description", :default => "" t.string "description", :default => ""
@ -478,6 +636,14 @@ ActiveRecord::Schema.define(:version => 20140324015819) do
add_index "news", ["created_on"], :name => "index_news_on_created_on" add_index "news", ["created_on"], :name => "index_news_on_created_on"
add_index "news", ["project_id"], :name => "news_project_id" add_index "news", ["project_id"], :name => "news_project_id"
create_table "ohloh_tagged", :force => true do |t|
t.integer "proj_id", :default => 0, :null => false
t.string "description", :limit => 100, :null => false
t.datetime "date_collected"
end
add_index "ohloh_tagged", ["proj_id"], :name => "proj_id"
create_table "open_id_authentication_associations", :force => true do |t| create_table "open_id_authentication_associations", :force => true do |t|
t.integer "issued" t.integer "issued"
t.integer "lifetime" t.integer "lifetime"
@ -585,6 +751,21 @@ ActiveRecord::Schema.define(:version => 20140324015819) do
add_index "queries", ["project_id"], :name => "index_queries_on_project_id" add_index "queries", ["project_id"], :name => "index_queries_on_project_id"
add_index "queries", ["user_id"], :name => "index_queries_on_user_id" add_index "queries", ["user_id"], :name => "index_queries_on_user_id"
create_table "relative_memos", :force => true do |t|
t.integer "osp_id", :null => false
t.integer "parent_id"
t.string "subject", :null => false
t.text "content", :null => false
t.integer "author_id"
t.integer "replies_count", :default => 0
t.integer "last_reply_id"
t.boolean "lock", :default => false
t.boolean "sticky", :default => false
t.boolean "is_quote", :default => false
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "repositories", :force => true do |t| create_table "repositories", :force => true do |t|
t.integer "project_id", :default => 0, :null => false t.integer "project_id", :default => 0, :null => false
t.string "url", :default => "", :null => false t.string "url", :default => "", :null => false
@ -720,6 +901,22 @@ ActiveRecord::Schema.define(:version => 20140324015819) do
add_index "tokens", ["user_id"], :name => "index_tokens_on_user_id" add_index "tokens", ["user_id"], :name => "index_tokens_on_user_id"
add_index "tokens", ["value"], :name => "tokens_value", :unique => true add_index "tokens", ["value"], :name => "tokens_value", :unique => true
create_table "tprojects", :force => true do |t|
t.string "name", :limit => 1000, :default => "0"
t.text "description", :limit => 16777215
t.string "commit_count", :limit => 100, :default => "0"
t.string "code_line", :limit => 100
t.string "last_commit_time", :limit => 100
t.string "url", :limit => 1000
t.datetime "date_collected"
t.string "created_at", :limit => 100
t.string "updated_at", :limit => 100
t.integer "proj_id", :null => false
t.string "user_count", :limit => 100
end
add_index "tprojects", ["proj_id"], :name => "proj_id"
create_table "trackers", :force => true do |t| create_table "trackers", :force => true do |t|
t.string "name", :limit => 30, :default => "", :null => false t.string "name", :limit => 30, :default => "", :null => false
t.boolean "is_in_chlog", :default => false, :null => false t.boolean "is_in_chlog", :default => false, :null => false

11
test/fixtures/relative_memos.yml vendored Normal file
View File

@ -0,0 +1,11 @@
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
# This model initially had no columns defined. If you add columns to the
# model remove the '{}' from the fixture names and add the columns immediately
# below each fixture, per the syntax in the comments below
#
one: {}
# column: value
#
two: {}
# column: value

View File

@ -0,0 +1,7 @@
require 'test_helper'
class RelativeMemoTest < ActiveSupport::TestCase
# test "the truth" do
# assert true
# end
end