fix bugs in version 1
This commit is contained in:
parent
d242ef087e
commit
91c018dabf
|
@ -139,10 +139,10 @@ $(document).ready(function(){
|
||||||
if($el.eq(i).attr('value') != "" && $el.eq(i).attr('value') != undefined)
|
if($el.eq(i).attr('value') != "" && $el.eq(i).attr('value') != undefined)
|
||||||
$el.eq(i).find('option[value='+$el.eq(i).attr('value')+']').attr('selected','selected');
|
$el.eq(i).find('option[value='+$el.eq(i).attr('value')+']').attr('selected','selected');
|
||||||
try{CKEDITOR.replaceAll()}catch(e){console.log(e)};
|
try{CKEDITOR.replaceAll()}catch(e){console.log(e)};
|
||||||
if($('#StudentIdentity').val() != '1')
|
if($('#StudentIdentity').val() != '1' && $('#StudentIdentity').val() != '2')
|
||||||
$('#StudentFile').removeClass('required');
|
$('#StudentFile').removeClass('required');
|
||||||
$('#StudentIdentity').click(function(){
|
$('#StudentIdentity').click(function(){
|
||||||
if(this.value != '1'){
|
if(this.value != '1' && this.value != '2'){
|
||||||
$('#StudentFile').removeClass('required');
|
$('#StudentFile').removeClass('required');
|
||||||
}else{
|
}else{
|
||||||
$('#StudentFile').addClass('required');
|
$('#StudentFile').addClass('required');
|
||||||
|
@ -157,6 +157,18 @@ $(document).ready(function(){
|
||||||
$el.siblings('.col_r').find('.errMsg').remove();
|
$el.siblings('.col_r').find('.errMsg').remove();
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
$('.fieldset_block input').on('input',function(){
|
||||||
|
if($(this).val() != ''){
|
||||||
|
$(this).parent().siblings('.col').removeClass('errFld');
|
||||||
|
$(this).siblings('.errMsg').remove();
|
||||||
|
};
|
||||||
|
});
|
||||||
|
$('.fieldset_block select').on('input',function(){
|
||||||
|
if($(this).val() != ''){
|
||||||
|
$(this).parent().siblings('.col').removeClass('errFld');
|
||||||
|
$(this).siblings('.errMsg').remove();
|
||||||
|
};
|
||||||
|
});
|
||||||
$('#StudentFile').on('input',function(){
|
$('#StudentFile').on('input',function(){
|
||||||
if($(this).val() != ''){
|
if($(this).val() != ''){
|
||||||
$('[for="StudentFile"]').removeClass('errFld');
|
$('[for="StudentFile"]').removeClass('errFld');
|
||||||
|
|
|
@ -27,6 +27,7 @@ class Admin::OlympiamanagementsController < OrbitAdminController
|
||||||
else
|
else
|
||||||
@error_msg << ((I18n.locale.to_s == "zh_tw") ? "尚無學生資料" : "There is no student data yet.")
|
@error_msg << ((I18n.locale.to_s == "zh_tw") ? "尚無學生資料" : "There is no student data yet.")
|
||||||
end
|
end
|
||||||
|
@msg_title = ((I18n.locale.to_s == "zh_tw") ? "提示訊息" : "Message")
|
||||||
render 'error_message'
|
render 'error_message'
|
||||||
elsif params[:type] == "active"
|
elsif params[:type] == "active"
|
||||||
@sign_up_setting = SignUpSetting.find(params[:id]) rescue nil
|
@sign_up_setting = SignUpSetting.find(params[:id]) rescue nil
|
||||||
|
@ -55,6 +56,26 @@ class Admin::OlympiamanagementsController < OrbitAdminController
|
||||||
@error_msg << ((I18n.locale.to_s == "zh_tw") ? "查無資料" : "Not found.")
|
@error_msg << ((I18n.locale.to_s == "zh_tw") ? "查無資料" : "Not found.")
|
||||||
render 'error_message'
|
render 'error_message'
|
||||||
end
|
end
|
||||||
|
elsif params[:type] == "active_all_school"
|
||||||
|
@sign_up_setting = SignUpSetting.find(params[:id]) rescue nil
|
||||||
|
if !@sign_up_setting.nil?
|
||||||
|
OlympiaSchoolDataFields.where(:sign_up_setting_id=>@sign_up_setting.id.to_s).each{|school| school.update(:approved=>true) }
|
||||||
|
redirect_to :back
|
||||||
|
else
|
||||||
|
@error_msg = []
|
||||||
|
@error_msg << ((I18n.locale.to_s == "zh_tw") ? "查無資料" : "Not found.")
|
||||||
|
render 'error_message'
|
||||||
|
end
|
||||||
|
elsif params[:type] == "disable_all_school"
|
||||||
|
@sign_up_setting = SignUpSetting.find(params[:id]) rescue nil
|
||||||
|
if !@sign_up_setting.nil?
|
||||||
|
OlympiaSchoolDataFields.where(:sign_up_setting_id=>@sign_up_setting.id.to_s).each{|school| school.update(:approved=>false) }
|
||||||
|
redirect_to :back
|
||||||
|
else
|
||||||
|
@error_msg = []
|
||||||
|
@error_msg << ((I18n.locale.to_s == "zh_tw") ? "查無資料" : "Not found.")
|
||||||
|
render 'error_message'
|
||||||
|
end
|
||||||
else
|
else
|
||||||
render :html => '404' and return
|
render :html => '404' and return
|
||||||
end
|
end
|
||||||
|
@ -140,6 +161,10 @@ class Admin::OlympiamanagementsController < OrbitAdminController
|
||||||
end
|
end
|
||||||
elsif params[:type] == 'sign_up_setting'
|
elsif params[:type] == 'sign_up_setting'
|
||||||
@sign_up_params = params.require(:sign_up_setting).permit!
|
@sign_up_params = params.require(:sign_up_setting).permit!
|
||||||
|
StudentDataField.destroy_all
|
||||||
|
SchoolDataFields.destroy_all
|
||||||
|
StudentDataField.create
|
||||||
|
SchoolDataFields.create
|
||||||
if params[:new_sign_up] == "true"
|
if params[:new_sign_up] == "true"
|
||||||
#render :html => @sign_up_params and return
|
#render :html => @sign_up_params and return
|
||||||
SignUpSetting.create(@sign_up_params)
|
SignUpSetting.create(@sign_up_params)
|
||||||
|
@ -432,8 +457,8 @@ class Admin::OlympiamanagementsController < OrbitAdminController
|
||||||
@error_msg << @id_error_msg
|
@error_msg << @id_error_msg
|
||||||
end
|
end
|
||||||
@olympia_student_data = OlympiaStudentDataField.find(params[:id]) rescue nil
|
@olympia_student_data = OlympiaStudentDataField.find(params[:id]) rescue nil
|
||||||
if @student_params['StudentIdentity'] == '1' && (@student_params['olympia_student_images']['0']['StudentFile'].nil? rescue true)
|
if (@student_params['StudentIdentity'] == '1' || @student_params['StudentIdentity'] == '2') && (@student_params['olympia_student_images']['0']['StudentFile'].nil? rescue true)
|
||||||
if @olympia_student_data.olympia_student_images.empty? || !@olympia_student_data.olympia_student_images.first.student_file.file.present?
|
if(@olympia_student_data.olympia_student_images.empty? || !@olympia_student_data.olympia_student_images.first.student_file.file.present? rescue true)
|
||||||
@error_msg << I18n.t('olympiamanagement.StudentFile')
|
@error_msg << I18n.t('olympiamanagement.StudentFile')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -441,7 +466,7 @@ class Admin::OlympiamanagementsController < OrbitAdminController
|
||||||
@enrollment_limited = ((@olympia_school_data_field.enrollment_limited.nil? || @olympia_school_data_field.enrollment_limited == 0) ? (ClassSettingFields.all.select{|class_setting_field| class_setting_field.class_number_range[0] <= @olympia_school_data_field.class_number.to_i && class_setting_field.class_number_range[1] >= @olympia_school_data_field.class_number.to_i}.first.enrollment_available.to_i rescue ClassSettingFields.all.desc(:enrollment_available).first.enrollment_available.to_i) : @olympia_school_data_field.enrollment_limited.to_i)
|
@enrollment_limited = ((@olympia_school_data_field.enrollment_limited.nil? || @olympia_school_data_field.enrollment_limited == 0) ? (ClassSettingFields.all.select{|class_setting_field| class_setting_field.class_number_range[0] <= @olympia_school_data_field.class_number.to_i && class_setting_field.class_number_range[1] >= @olympia_school_data_field.class_number.to_i}.first.enrollment_available.to_i rescue ClassSettingFields.all.desc(:enrollment_available).first.enrollment_available.to_i) : @olympia_school_data_field.enrollment_limited.to_i)
|
||||||
@student_fields = OlympiaStudentDataField.where(:olympia_school_data_fields_id=>params[:school_id],:sign_up_setting_id=>@sign_up_setting_id)
|
@student_fields = OlympiaStudentDataField.where(:olympia_school_data_fields_id=>params[:school_id],:sign_up_setting_id=>@sign_up_setting_id)
|
||||||
extra_num = 0
|
extra_num = 0
|
||||||
extra_num = 1 if(@olympia_student_data.nil? && @student_params['StudentIdentity'] != '1')
|
extra_num = 1 if(@olympia_student_data.nil? && @student_params['StudentIdentity'] == '0')
|
||||||
if (@student_fields.length + extra_num) > @enrollment_limited
|
if (@student_fields.length + extra_num) > @enrollment_limited
|
||||||
@error_msg << ((I18n.locale.to_s == "zh_tw") ? ("一般身分報名人數上限為 #{@enrollment_limited} 人。") : ("Enrollment limited of General identity is #{@enrollment_limited} people."))
|
@error_msg << ((I18n.locale.to_s == "zh_tw") ? ("一般身分報名人數上限為 #{@enrollment_limited} 人。") : ("Enrollment limited of General identity is #{@enrollment_limited} people."))
|
||||||
@error_msg << I18n.t('olympiamanagement.already_exceed_enrollment_limited')
|
@error_msg << I18n.t('olympiamanagement.already_exceed_enrollment_limited')
|
||||||
|
|
|
@ -677,8 +677,8 @@ class OlympiamanagementsController < ApplicationController
|
||||||
if @id_error_msg.length != 0
|
if @id_error_msg.length != 0
|
||||||
@error_msg << I18n.t('olympiamanagement.id_number_error')
|
@error_msg << I18n.t('olympiamanagement.id_number_error')
|
||||||
end
|
end
|
||||||
if @student_params['StudentIdentity'] == '1' && (@student_params['olympia_student_images']['0']['student_file'].nil? rescue true)
|
if (@student_params['StudentIdentity'] == '1' || @student_params['StudentIdentity'] == '2') && (@student_params['olympia_student_images']['0']['student_file'].nil? rescue true)
|
||||||
if @olympia_student_data.olympia_student_images.empty? || !@olympia_student_data.olympia_student_images.first.student_file.file.present?
|
if (@olympia_student_data.olympia_student_images.empty? || !@olympia_student_data.olympia_student_images.first.student_file.file.present? rescue true)
|
||||||
@error_msg << I18n.t('olympiamanagement.StudentFile')
|
@error_msg << I18n.t('olympiamanagement.StudentFile')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -687,7 +687,7 @@ class OlympiamanagementsController < ApplicationController
|
||||||
@student_fields = OlympiaStudentDataField.where(:olympia_school_data_fields_id=>@olympia_school_data_field.id,:sign_up_setting_id=>@sign_up_setting.id,:StudentIdentity=>'0')
|
@student_fields = OlympiaStudentDataField.where(:olympia_school_data_fields_id=>@olympia_school_data_field.id,:sign_up_setting_id=>@sign_up_setting.id,:StudentIdentity=>'0')
|
||||||
@olympia_student_data = OlympiaStudentDataField.find(params[:id]) rescue nil
|
@olympia_student_data = OlympiaStudentDataField.find(params[:id]) rescue nil
|
||||||
extra_num = 0
|
extra_num = 0
|
||||||
extra_num = 1 if(@olympia_student_data.nil? && @student_params['StudentIdentity'] != '1')
|
extra_num = 1 if(@olympia_student_data.nil? && @student_params['StudentIdentity'] == '0')
|
||||||
if (@student_fields.length + extra_num) > @enrollment_limited
|
if (@student_fields.length + extra_num) > @enrollment_limited
|
||||||
@error_msg << ((I18n.locale.to_s == "zh_tw") ? ("一般身分報名人數上限為 #{@enrollment_limited} 人。") : ("Enrollment limited of General identity is #{@enrollment_limited} people."))
|
@error_msg << ((I18n.locale.to_s == "zh_tw") ? ("一般身分報名人數上限為 #{@enrollment_limited} 人。") : ("Enrollment limited of General identity is #{@enrollment_limited} people."))
|
||||||
@error_msg << I18n.t('olympiamanagement.already_exceed_enrollment_limited')
|
@error_msg << I18n.t('olympiamanagement.already_exceed_enrollment_limited')
|
||||||
|
|
|
@ -6,7 +6,7 @@ class StudentDataField
|
||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
include OrbitTag::Taggable
|
include OrbitTag::Taggable
|
||||||
include OrbitCategory::Categorizable
|
include OrbitCategory::Categorizable
|
||||||
field :student_data_fields , type: Array , default: [{'StudentIdentity'=>{'type'=>'select_string','hint'=>{'zh_tw'=>'','en'=>''},'values'=>{'zh_tw'=>['一般身分','科展得獎或科學班'],'en'=>['General identity','Science Fair Winner']},'required'=>"true"}},
|
field :student_data_fields , type: Array , default: [{'StudentIdentity'=>{'type'=>'select_string','hint'=>{'zh_tw'=>'','en'=>''},'values'=>{'zh_tw'=>['一般身分','科展得獎者','科學班'],'en'=>['General identity','Science Fair Winner','Science Class']},'required'=>"true"}},
|
||||||
{'StudentName'=>{'type'=>'String','size'=>'20','hint'=>{'zh_tw'=>'','en'=>''},'required'=>"true"}},
|
{'StudentName'=>{'type'=>'String','size'=>'20','hint'=>{'zh_tw'=>'','en'=>''},'required'=>"true"}},
|
||||||
{'StudentSex'=>{'type'=>'radio','size'=>'20','choices'=>['M','F'],'values'=>{'zh_tw'=>['男','女'],'en'=>['Male','Female']},'hint'=>{'zh_tw'=>'','en'=>''},'required'=>"true"}},
|
{'StudentSex'=>{'type'=>'radio','size'=>'20','choices'=>['M','F'],'values'=>{'zh_tw'=>['男','女'],'en'=>['Male','Female']},'hint'=>{'zh_tw'=>'','en'=>''},'required'=>"true"}},
|
||||||
{'StudentIDNO'=>{'type'=>'String','size'=>'20','hint'=>{'zh_tw'=>'','en'=>''},'required'=>"true"}},
|
{'StudentIDNO'=>{'type'=>'String','size'=>'20','hint'=>{'zh_tw'=>'','en'=>''},'required'=>"true"}},
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<%=t('olympiamanagement.a_d_')%>
|
<%=t('olympiamanagement.a_d_')%>
|
||||||
<% @please_choice = (I18n.locale.to_s == "zh_tw") ? "請選擇" : "Please select." %>
|
<% @please_choice = (I18n.locale.to_s == "zh_tw") ? "請選擇" : "Please select." %>
|
||||||
<select name="<%="[add_student_data][#{field.keys[0]}]"%>" id="<%=field.keys[0]%>" class="required" value="<%= @olympia_student_data[field.keys[0]] %>" style="width: auto;"><option value=""><%=@please_choice%></option>
|
<select name="<%="[add_student_data][#{field.keys[0]}]"%>" id="<%=field.keys[0]%>" class="required" value="<%= @olympia_student_data[field.keys[0]] %>" style="width: auto;"><option value=""><%=@please_choice%></option>
|
||||||
<% for @num in (Time.now.year.to_i-10) .. (Time.now.year.to_i+10) %>
|
<% for @num in (Time.now.year.to_i-15) .. (Time.now.year.to_i) %>
|
||||||
<%= ('<option value="' + @num.to_s + '">' + @num.to_s + (field.values[0][:unit][I18n.locale.to_s] rescue "") + '</option>').html_safe %>
|
<%= ('<option value="' + @num.to_s + '">' + @num.to_s + (field.values[0][:unit][I18n.locale.to_s] rescue "") + '</option>').html_safe %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</select>
|
</select>
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
<%=t('olympiamanagement.a_d_')%>
|
<%=t('olympiamanagement.a_d_')%>
|
||||||
<% @please_choice = (I18n.locale.to_s == "zh_tw") ? "請選擇" : "Please select." %>
|
<% @please_choice = (I18n.locale.to_s == "zh_tw") ? "請選擇" : "Please select." %>
|
||||||
<select name="<%="[add_student_data][#{field.keys[0]}]"%>" id="<%=field.keys[0]%>" class="required" value="<%= @olympia_student_data[field.keys[0]] %>" style="width: auto;"><option value=""><%=@please_choice%></option>
|
<select name="<%="[add_student_data][#{field.keys[0]}]"%>" id="<%=field.keys[0]%>" class="required" value="<%= @olympia_student_data[field.keys[0]] %>" style="width: auto;"><option value=""><%=@please_choice%></option>
|
||||||
<% for @num in (Time.now.year.to_i-15) .. (Time.now.year.to_i+10) %>
|
<% for @num in (Time.now.year.to_i-15) .. (Time.now.year.to_i) %>
|
||||||
<%= ('<option value="' + @num.to_s + '">' + @num.to_s + (field.values[0][:unit][I18n.locale.to_s] rescue "") + '</option>').html_safe %>
|
<%= ('<option value="' + @num.to_s + '">' + @num.to_s + (field.values[0][:unit][I18n.locale.to_s] rescue "") + '</option>').html_safe %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</select>
|
</select>
|
||||||
|
|
|
@ -1,13 +1,24 @@
|
||||||
<h2><%= (I18n.locale.to_s == "zh_tw") ? '錯誤提示' : 'Error message' %></h2>
|
<h2>
|
||||||
|
<%if(@msg_title.nil? rescue true)%>
|
||||||
|
<%= (I18n.locale.to_s == "zh_tw") ? '錯誤提示' : 'Error message' %>
|
||||||
|
<% else %>
|
||||||
|
<%= @msg_title %>
|
||||||
|
<% end %>
|
||||||
|
</h2>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<% @error_msg.each do |a| %>
|
<% @error_msg.each do |a| %>
|
||||||
|
|
||||||
<li><%= a %></li>
|
<li class="error_msg"><%= a %></li>
|
||||||
|
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
<input name="goback" type="button" onclick="window.history.go(-1);" onkeypress="window.history.go(-1);" value="<%=t('back')%>">
|
<input name="goback" type="button" onclick="window.history.go(-1);" onkeypress="window.history.go(-1);" value="<%=t('back')%>">
|
||||||
|
<style type="text/css">
|
||||||
|
li.error_msg{
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -31,6 +31,8 @@
|
||||||
<% end %>
|
<% end %>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
<a class="btn" href='<%= admin_olympiamanagements_update_sign_up_data_path + "?type=active_all_school&id=#{sign_up_setting.id}"%>'><%=t('olympiamanagement.active_all_school')%></a>
|
||||||
|
<a class="btn" href='<%= admin_olympiamanagements_update_sign_up_data_path + "?type=disable_all_school&id=#{sign_up_setting.id}"%>'><%=t('olympiamanagement.disable_all_school')%></a>
|
||||||
<% if !sign_up_setting.active%>
|
<% if !sign_up_setting.active%>
|
||||||
<a class="btn" href='<%= admin_olympiamanagements_update_sign_up_data_path + "?type=active&id=#{sign_up_setting.id}"%>'><%=t('olympiamanagement.active')%></a>
|
<a class="btn" href='<%= admin_olympiamanagements_update_sign_up_data_path + "?type=active&id=#{sign_up_setting.id}"%>'><%=t('olympiamanagement.active')%></a>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<%=t('olympiamanagement.a_d_')%>
|
<%=t('olympiamanagement.a_d_')%>
|
||||||
<% @please_choice = (I18n.locale.to_s == "zh_tw") ? "請選擇" : "Please select." %>
|
<% @please_choice = (I18n.locale.to_s == "zh_tw") ? "請選擇" : "Please select." %>
|
||||||
<select name="<%="[add_student_data][#{field.keys[0]}]"%>" id="<%=field.keys[0]%>" class="required" value="<%= @olympia_student_data[field.keys[0]] %>" style="width: auto;"><option value=""><%=@please_choice%></option>
|
<select name="<%="[add_student_data][#{field.keys[0]}]"%>" id="<%=field.keys[0]%>" class="required" value="<%= @olympia_student_data[field.keys[0]] %>" style="width: auto;"><option value=""><%=@please_choice%></option>
|
||||||
<% for @num in (Time.now.year.to_i-15) .. (Time.now.year.to_i+10) %>
|
<% for @num in (Time.now.year.to_i-15) .. (Time.now.year.to_i) %>
|
||||||
<%= ('<option value="' + @num.to_s + '">' + @num.to_s + (field.values[0][:unit][I18n.locale.to_s] rescue "") + '</option>').html_safe %>
|
<%= ('<option value="' + @num.to_s + '">' + @num.to_s + (field.values[0][:unit][I18n.locale.to_s] rescue "") + '</option>').html_safe %>
|
||||||
<% end %>
|
<% end %>
|
||||||
</select>
|
</select>
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
<h2 align="center"><img style="height: 1em;" alt="<%= t('olympiamanagement.error_msg')%>" src="/assets/warning.gif"><%= t('olympiamanagement.error_msg')%></h2>
|
<h2 align="center"><img style="height: 1em;" alt="<%= t('olympiamanagement.error_msg')%>" src="/assets/warning.gif"><%= ((@msg_title.nil? rescue true) ? t('olympiamanagement.error_msg') : @msg_title )%></h2>
|
||||||
<ul align="center">
|
<ul align="center">
|
||||||
<% @error_msg.each do |a| %>
|
<% @error_msg.each do |a| %>
|
||||||
<li style="width: fit-content;margin: auto;"><%= a %></li>
|
<li style="width: fit-content;margin: auto;" class="error_msg"><%= a %></li>
|
||||||
<% end %>
|
<% end %>
|
||||||
</ul>
|
</ul>
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<input name="goback" type="button" onclick="window.history.go(-1);" onkeypress="window.history.go(-1);" value="<%=t('back')%>">
|
<input name="goback" type="button" onclick="window.history.go(-1);" onkeypress="window.history.go(-1);" value="<%=t('back')%>">
|
||||||
</p>
|
</p>
|
||||||
|
<style type="text/css">
|
||||||
|
li.error_msg{
|
||||||
|
font-size: 1.5em;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -2,6 +2,8 @@ en:
|
||||||
module_name:
|
module_name:
|
||||||
olympiamanagement: Olympia Competition Management
|
olympiamanagement: Olympia Competition Management
|
||||||
olympiamanagement:
|
olympiamanagement:
|
||||||
|
active_all_school: Active all school
|
||||||
|
disable_all_school: Disable all school
|
||||||
school_number: School number
|
school_number: School number
|
||||||
new_sign_up: Create new Sign up
|
new_sign_up: Create new Sign up
|
||||||
view: View
|
view: View
|
||||||
|
|
|
@ -2,6 +2,8 @@ zh_tw:
|
||||||
module_name:
|
module_name:
|
||||||
olympiamanagement: 奧林匹亞競賽 Management
|
olympiamanagement: 奧林匹亞競賽 Management
|
||||||
olympiamanagement:
|
olympiamanagement:
|
||||||
|
active_all_school: 啟用全部學校
|
||||||
|
disable_all_school: 停用全部學校
|
||||||
school_number: 學校數量
|
school_number: 學校數量
|
||||||
new_sign_up: 建立新的報名
|
new_sign_up: 建立新的報名
|
||||||
view: 查看
|
view: 查看
|
||||||
|
|
Loading…
Reference in New Issue