diff --git a/app/models/user.rb b/app/models/user.rb --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,3 +1,4 @@ +# -*- coding: undecided -*- require 'digest/sha1' class User < ActiveRecord::Base @@ -32,10 +33,13 @@ validates_presence_of :login validates_uniqueness_of :login validates_format_of :login, :with => /^[\_A-Za-z0-9]+$/ - validates_length_of :login, :within => 3..30 + validates_length_of :login, :within => 3..20 validates_presence_of :full_name validates_length_of :full_name, :minimum => 1 + + validates_presence_of :member1_full_name + validates_length_of :member1_full_name, :minimum => 1 validates_presence_of :password, :if => :password_required? validates_length_of :password, :within => 4..20, :if => :password_required? @@ -49,6 +53,8 @@ validate :enough_time_interval_between_same_email_registrations, :if => :email_validation? + validate :school_names_for_high_school_users + # these are for ytopc # disable for now #validates_presence_of :province @@ -295,4 +301,15 @@ return false end end + + + def school_names_for_high_school_users + if self.high_school + if (self.member1_school_name=='' or + (self.member2_full_name!='' and self.member2_school_name=='') or + (self.member3_full_name!='' and self.member3_school_name=='')) + self.errors.add_to_base("โปรดระบุชื่อโรงเรียนสำหรับสมาชิกในทีมทุกคน") + end + end + end end diff --git a/app/views/main/list.html.haml b/app/views/main/list.html.haml --- a/app/views/main/list.html.haml +++ b/app/views/main/list.html.haml @@ -20,11 +20,10 @@ .problem-list = render :partial => 'problem_title', :collection => @problems, :as => :problem .problem-content - - if @current_problem_id==nil - %span{:id => "problem-panel-filler"} - %b Welcome to Code Jom - %br/ - Choose problems from the list on the right. + %span{:id => "problem-panel-filler", :style => (@current_problem_id!=nil) ? "display:none" : ""} + %b Welcome to Code Jom + %br/ + Choose problems from the list on the right. = render :partial => 'problem', :collection => @problems %br{:clear=>'both'}/ diff --git a/app/views/users/new.html.haml b/app/views/users/new.html.haml --- a/app/views/users/new.html.haml +++ b/app/views/users/new.html.haml @@ -32,6 +32,39 @@ %small =t 'registration.email_guide' %tr + %td{:align => "right"} + ประเภทการสมัคร: + %td + =select :user, :high_school, [['ระดับมัธยมศึกษา',true], ['บุคคลทั่วไป',false]] + %tr + %td{:align => "right"} + ชื่อ-นามสกุลสมาชิกคนแรก: + %td + = f.text_field :member1_full_name +   โรงเรียน: + = f.text_field :member1_school_name + %tr + %td{:align => "right"} + ชื่อ-นามสกุลสมาชิกคนที่สอง: + %td + = f.text_field :member2_full_name +   โรงเรียน: + = f.text_field :member2_school_name + %tr + %td{:align => "right"} + ชื่อ-นามสกุลสมาชิกคนที่สาม: + %td + = f.text_field :member3_full_name +   โรงเรียน: + = f.text_field :member3_school_name + %tr + %td + %td + %small + ภายในทีมไม่จำเป็นต้องมีสมาชิกครบ 3 คน + + + %tr %td/ %td = submit_tag((t 'registration.register'), :name => 'commit') diff --git a/config/locales/th.yml b/config/locales/th.yml --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -5,8 +5,8 @@ cancel: 'ยกเลิก' login_label: 'ชื่อเข้าใช้ระบบ (login)' - full_name_label: 'ชื่อเต็ม' - email_label: 'E-mail' + full_name_label: 'ชื่อทีม' + email_label: 'E-mail สำหรับติดต่อ' password_label: 'รหัสผ่าน' go_ahead_to: "ไปยัง" @@ -56,15 +56,15 @@ registration: title: "ลงทะเบียนผู้ใช้ใหม่" - description: "ในการลงทะเบียน ให้ผู้สนใจเข้าร่วมการแข่งขันกรอกข้อมูลด้านล่าง จากนั้นระบบจะส่ง e-mail ไปยัง e-mail ที่ระบุเพื่อให้ยืนยันตัวตนและเปิดใช้บัญชีผู้ใช้
ในกรณีที่ผู้เข้าแข่งขันเป็นนักเรียน รบกวนช่วยให้ข้อมูลเกี่ยวกับโรงเรียนและจังหวัดด้วย" + description: "ในการลงทะเบียน ให้ผู้สนใจเข้าร่วมการแข่งขันกรอกข้อมูลด้านล่าง จากนั้นระบบจะส่ง e-mail ไปยัง e-mail ที่ระบุเพื่อให้ยืนยันตัวตนและเปิดใช้บัญชีผู้ใช้
ในกรณีที่ผู้เข้าแข่งขันเป็นนักเรียน รบกวนช่วยให้ข้อมูลเกี่ยวกับโรงเรียนด้วย" successful_title: "การลงทะเบียนเสร็จเรียบร้อย" - login_guide: "ใช้ได้เฉพาะ a-z, A-Z, 0-9 และ _ ความยาวไม่เกิน 20 ตัวอักษร" + login_guide: "ใช้ได้เฉพาะ a-z, A-Z, 0-9 และ _ ความยาวไม่เกิน 20 ตัวอักษร ชื่อนี้จะใช้แสดงในกระดานแสดงผล" email_guide: "กรุณาตรวจสอบ e-mail ที่ใส่ให้ถูกต้อง
คุณจะต้องยืนยันการลงทะเบียนผ่านทางข้อมูลที่จะส่งให้ทาง e-mail" register: "ลงทะเบียน" - email_body: "สวัสดีครับ {{full_name}}, + email_body: "สวัสดี ทีม {{full_name}}, คุณได้ลงทะเบียนเข้าร่วมการแข่งขัน {{contest_name}} @@ -135,4 +135,7 @@ full_name: "ชื่อเต็ม" email: "e-mail" province: "จังหวัด" - + member1_full_name: "ชื่อ-นามสกุลสมาชิกคนแรก" + member2_full_name: "ชื่อ-นามสกุลสมาชิกคนที่สอง" + member3_full_name: "ชื่อ-นามสกุลสมาชิกคนที่สาม" + \ No newline at end of file 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 => 20100124191250) do +ActiveRecord::Schema.define(:version => 20100126170609) do create_table "announcements", :force => true do |t| t.string "author" @@ -223,17 +223,24 @@ end create_table "users", :force => true do |t| - t.string "login", :limit => 50 + t.string "login", :limit => 50 t.string "full_name" t.string "hashed_password" - t.string "salt", :limit => 5 + t.string "salt", :limit => 5 t.string "alias" t.string "email" t.integer "site_id" t.integer "country_id" - t.boolean "activated", :default => false + t.boolean "activated", :default => false t.datetime "created_at" t.datetime "updated_at" + t.string "member1_full_name" + t.string "member2_full_name" + t.string "member3_full_name" + t.boolean "high_school" + t.string "member1_school_name" + t.string "member2_school_name" + t.string "member3_school_name" end add_index "users", ["login"], :name => "index_users_on_login", :unique => true