# HG changeset patch # User jittat # Date 2008-11-07 15:24:13 # Node ID 2e9ddcc1b23395e3c132e2332ab3da142f5dff1c # Parent 290d274b16a31702b5aaa52c8b0b0edaaf0b2d37 added announcement to frontpage git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@290 6386c4cd-e34a-4fa8-8920-d93eb39b512e diff --git a/app/controllers/main_controller.rb b/app/controllers/main_controller.rb --- a/app/controllers/main_controller.rb +++ b/app/controllers/main_controller.rb @@ -43,6 +43,7 @@ end end + @announcements = Announcement.find_for_frontpage render :action => 'login', :layout => 'empty' end @@ -183,10 +184,7 @@ @prob_submissions << { :count => 0, :submission => nil } end end - - @announcements = Announcement.find(:all, - :conditions => "published = 1", - :order => "created_at DESC") + @announcements = Announcement.find_published end def check_viewability diff --git a/app/models/announcement.rb b/app/models/announcement.rb --- a/app/models/announcement.rb +++ b/app/models/announcement.rb @@ -1,2 +1,15 @@ class Announcement < ActiveRecord::Base + + def self.find_published + Announcement.find(:all, + :conditions => "(published = 1) AND (frontpage = 0)", + :order => "created_at DESC") + end + + def self.find_for_frontpage + Announcement.find(:all, + :conditions => "(published = 1) AND (frontpage = 1)", + :order => "created_at DESC") + end + end diff --git a/app/views/announcements/edit.html.erb b/app/views/announcements/edit.html.erb --- a/app/views/announcements/edit.html.erb +++ b/app/views/announcements/edit.html.erb @@ -19,6 +19,11 @@

+ Show on front page?
+ <%= f.check_box :frontpage %> +

+ +

<%= f.submit "Update" %>

<% end %> diff --git a/app/views/announcements/new.html.erb b/app/views/announcements/new.html.erb --- a/app/views/announcements/new.html.erb +++ b/app/views/announcements/new.html.erb @@ -19,6 +19,11 @@

+ Show on front page?
+ <%= f.check_box :frontpage %> +

+ +

<%= f.submit "Create" %>

<% end %> diff --git a/app/views/announcements/show.html.erb b/app/views/announcements/show.html.erb --- a/app/views/announcements/show.html.erb +++ b/app/views/announcements/show.html.erb @@ -13,6 +13,11 @@ <%=h @announcement.published %>

+

+ Show on front page: + <%=h @announcement.frontpage %> +

+ <%= link_to 'Edit', edit_announcement_path(@announcement) %> | <%= link_to 'Back', announcements_path %> diff --git a/app/views/main/login.html.haml b/app/views/main/login.html.haml --- a/app/views/main/login.html.haml +++ b/app/views/main/login.html.haml @@ -1,5 +1,11 @@ %h1= Configuration['ui.front.title'] +- if @announcements.length!=0 + .announcementbox + %span{:class => 'title'} + Announcements + = render :partial => 'announcement', :collection => @announcements + %b= Configuration['ui.front.welcome_message'] %br/ Please login to see the problem list. diff --git a/db/schema.rb b/db/schema.rb --- a/db/schema.rb +++ b/db/schema.rb @@ -9,7 +9,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20081012050458) do +ActiveRecord::Schema.define(:version => 20081107145815) do create_table "announcements", :force => true do |t| t.string "author" @@ -17,6 +17,7 @@ t.boolean "published" t.datetime "created_at" t.datetime "updated_at" + t.boolean "frontpage", :default => false end create_table "configurations", :force => true do |t|