Description:
manage
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r877:93c4562b9761 - - The requested commit is too big and content was truncated. 14 files changed. Show full diff
new file 100644 |
@@ -35,6 +35,7 | |||
|
35 | 35 | def create |
|
36 | 36 | @user = User.new(user_params) |
|
37 | 37 | @user.activated = true |
|
38 | + byebug | |
|
38 | 39 | if @user.save |
|
39 | 40 | flash[:notice] = 'User was successfully created.' |
|
40 | 41 | redirect_to :action => 'index' |
@@ -44,6 +44,7 | |||
|
44 | 44 | /* */ |
|
45 | 45 | |
|
46 | 46 | import "select2" |
|
47 | + import "chart" | |
|
47 | 48 | |
|
48 | 49 | //my own customization |
|
49 | 50 | import 'custom' |
@@ -43,6 +43,3 | |||
|
43 | 43 | |
|
44 | 44 | //jQuery(".best_in_place").best_in_place(); |
|
45 | 45 | }); |
|
46 | - | |
|
47 | - // --- | |
|
48 | - // generated by coffee-script 1.9.2 |
@@ -26,8 +26,8 | |||
|
26 | 26 | |
|
27 | 27 | has_one :contest_stat, :class_name => "UserContestStat", :dependent => :destroy |
|
28 | 28 | |
|
29 | - belongs_to :site | |
|
30 | - belongs_to :country | |
|
29 | + belongs_to :site, optional: true | |
|
30 | + belongs_to :country, optional: true | |
|
31 | 31 | |
|
32 | 32 | has_and_belongs_to_many :contests, -> { order(:name)} |
|
33 | 33 | |
@@ -45,12 +45,12 | |||
|
45 | 45 | validates_length_of :password, :within => 4..50, :if => :password_required? |
|
46 | 46 | validates_confirmation_of :password, :if => :password_required? |
|
47 | 47 | |
|
48 |
- validates_format_of :email, |
|
|
49 |
- :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, |
|
|
48 | + validates_format_of :email, | |
|
49 | + :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, | |
|
50 | 50 | :if => :email_validation? |
|
51 |
- validate :uniqueness_of_email_from_activated_users, |
|
|
51 | + validate :uniqueness_of_email_from_activated_users, | |
|
52 | 52 | :if => :email_validation? |
|
53 |
- validate :enough_time_interval_between_same_email_registrations, |
|
|
53 | + validate :enough_time_interval_between_same_email_registrations, | |
|
54 | 54 | :if => :email_validation? |
|
55 | 55 | |
|
56 | 56 | # these are for ytopc |
@@ -10,10 +10,10 | |||
|
10 | 10 | .panel-heading |
|
11 | 11 | Grader control: |
|
12 | 12 | .panel-body |
|
13 |
- =link_to 'Start Graders in grading env', { action: 'start_grading'}, class: 'btn btn- |
|
|
14 |
- =link_to 'Start Graders in exam env', { action: 'start_exam'}, class: 'btn btn- |
|
|
15 |
- =link_to 'Stop all running Graders', { action: 'stop_all'}, class: 'btn btn- |
|
|
16 |
- =link_to 'Clear all data', { action: 'clear_all'}, class: 'btn btn- |
|
|
13 | + =link_to 'Start Graders in grading env', { action: 'start_grading'}, class: 'btn btn-secondary' | |
|
14 | + =link_to 'Start Graders in exam env', { action: 'start_exam'}, class: 'btn btn-secondary' | |
|
15 | + =link_to 'Stop all running Graders', { action: 'stop_all'}, class: 'btn btn-secondary' | |
|
16 | + =link_to 'Clear all data', { action: 'clear_all'}, class: 'btn btn-secondary' | |
|
17 | 17 | |
|
18 | 18 | .row |
|
19 | 19 | .col-md-6 |
@@ -1,27 +1,7 | |||
|
1 | - = form_for @group do |f| | |
|
2 | - - if @group.errors.any? | |
|
3 | - #error_explanation | |
|
4 | - %h2= "#{pluralize(@group.errors.count, "error")} prohibited this group from being saved:" | |
|
5 | - %ul | |
|
6 | - - @group.errors.full_messages.each do |msg| | |
|
7 | - %li= msg | |
|
8 | - .row | |
|
9 | - .col-md-6 | |
|
10 | - .form-group.field | |
|
11 | - = f.label :name | |
|
12 | - = f.text_field :name, class: 'form-control' | |
|
13 | - .row | |
|
14 | - .col-md-6 | |
|
15 | - .form-group.field | |
|
16 | - = f.label :description | |
|
17 | - = f.text_field :description, class: 'form-control' | |
|
18 | - .row | |
|
19 | - .col-md-6 | |
|
20 | - .checkbox | |
|
21 | - = f.label :enabled do | |
|
22 | - = f.check_box :enabled | |
|
23 | - Enabled | |
|
24 | - .row | |
|
25 | - .col-md-6 | |
|
26 | - .form-group.actions | |
|
27 | - = f.submit 'Save', class: 'btn btn-primary' | |
|
1 | + .row | |
|
2 | + .col-md-6 | |
|
3 | + = simple_form_for @group do |f| | |
|
4 | + = f.input :name | |
|
5 | + = f.input :description | |
|
6 | + = f.input :enabled | |
|
7 | + = f.button :submit, class: 'btn btn-primary' |
@@ -2,6 +2,8 | |||
|
2 | 2 | |
|
3 | 3 | = render 'form' |
|
4 | 4 | |
|
5 | - = link_to 'Show', @group | |
|
6 | - \| | |
|
7 | - = link_to 'Back', groups_path | |
|
5 | + .row.my-3 | |
|
6 | + .col-auto | |
|
7 | + = link_to 'Edit members and problems', @group, class: 'btn btn-info' | |
|
8 | + .col-auto | |
|
9 | + = link_to 'Back', groups_path, class: 'btn btn-secondary' |
@@ -1,7 +1,7 | |||
|
1 | 1 | %h1 Groups |
|
2 | 2 | |
|
3 | 3 | %p |
|
4 |
- = link_to 'New Group', new_group_path, class: 'btn btn- |
|
|
4 | + = link_to 'New Group', new_group_path, class: 'btn btn-success' | |
|
5 | 5 | %table.table.table-hover |
|
6 | 6 | %thead |
|
7 | 7 | %tr |
@@ -9,16 +9,15 | |||
|
9 | 9 | %th Description |
|
10 | 10 | %th Enabled? |
|
11 | 11 | %th |
|
12 | - %th | |
|
13 | - | |
|
14 | 12 | %tbody |
|
15 | 13 | - @groups.each do |group| |
|
16 | 14 | %tr{:class => "#{(group.enabled?) ? "success" : "danger"}", id: "group-#{group.id}"} |
|
17 | 15 | %td= group.name |
|
18 | 16 | %td= group.description |
|
19 |
- %td= toggle_button(group.enabled?, toggle_group_path(group), "group-enabled-#{group.id}", |
|
|
20 | - %td= link_to 'View', group, class: 'btn btn-default' | |
|
21 | - %td= link_to 'Destroy', group, :method => :delete, :data => { :confirm => 'Are you sure?' }, class: 'btn btn-danger' | |
|
17 | + %td= toggle_button(group.enabled?, toggle_group_path(group), "group-enabled-#{group.id}", block: ' ') | |
|
18 | + %td | |
|
19 | + = link_to 'Edit members and problems', group, class: 'btn btn-secondary btn-sm' | |
|
20 | + = link_to 'Destroy', group, :method => :delete, :data => { :confirm => 'Are you sure?' }, class: 'btn btn-danger btn-sm' | |
|
22 | 21 | |
|
23 | 22 | %br |
|
24 | 23 |
@@ -1,82 +1,92 | |||
|
1 | - .container-fluid | |
|
2 | - .row | |
|
3 | - .col-md-6 | |
|
4 | - %h1 Group #{@group.name} | |
|
5 | - .row | |
|
6 | - .col-md-6 | |
|
7 | - %b Description: | |
|
8 | - = @group.description | |
|
9 | - %br | |
|
10 | - = link_to 'Edit', edit_group_path(@group), class: 'btn btn-primary' | |
|
11 | - .row | |
|
12 | - .col-md-12 | |
|
13 | - %h1 Group details | |
|
14 | - .row | |
|
15 | - .col-md-6 | |
|
16 | - .panel.panel-default | |
|
17 | - .panel-heading | |
|
18 | - .panel-title Users in this group | |
|
19 | - .panel-body | |
|
20 | - %ul | |
|
21 | - %li | |
|
22 | - If you want to add several users to a group, it may be easier to just re-import those users in | |
|
23 | - = link_to 'New list of users', new_list_user_admin_index_path | |
|
24 | - page. You can also use | |
|
25 | - = link_to 'Bulk Manage User', bulk_manage_user_admin_index_path | |
|
26 | - page. | |
|
27 | - =form_tag add_user_group_path(@group), class: 'form-inline' do | |
|
28 | - .form-group | |
|
29 | - =label_tag :user_id, "User" | |
|
1 | + .row.mb-3 | |
|
2 | + .col-md-6 | |
|
3 | + %h1 Editing Group members and problems | |
|
4 | + .row.mb-3 | |
|
5 | + .col-md-6 | |
|
6 | + %b Name: | |
|
7 | + = @group.name | |
|
8 | + .row.mb-3 | |
|
9 | + .col-md-6 | |
|
10 | + %b Description: | |
|
11 | + = @group.description | |
|
12 | + .row.mb-3 | |
|
13 | + .col-md-6 | |
|
14 | + = link_to 'Edit', edit_group_path(@group), class: 'btn btn-primary' | |
|
15 | + .row.mb-3 | |
|
16 | + .col-md-12 | |
|
17 | + %h1 Group details | |
|
18 | + .row | |
|
19 | + .col-md-6 | |
|
20 | + .card | |
|
21 | + .card-header | |
|
22 | + Users in this group | |
|
23 | + .card-body | |
|
24 | + %ul | |
|
25 | + %li | |
|
26 | + If you want to add several users to a group, it may be easier to just re-import those users in | |
|
27 | + = link_to 'New list of users', new_list_user_admin_index_path | |
|
28 | + page. You can also use | |
|
29 | + = link_to 'Bulk Manage User', bulk_manage_user_admin_index_path | |
|
30 | + page. | |
|
31 | + =form_tag add_user_group_path(@group), class: 'form-inline' do | |
|
32 | + .row | |
|
33 | + .col-auto | |
|
34 | + =label_tag :user_id, "User", class: 'col-form-label' | |
|
35 | + .col-auto | |
|
30 | 36 | =select_tag :user_id, options_from_collection_for_select(User.all,'id','login_with_name'), class: 'select2', style: 'width: 25em'; |
|
31 | - =submit_tag "Add",class: 'btn btn-primary' | |
|
37 | + .col-auto | |
|
38 | + =submit_tag "Add",class: 'btn btn-primary' | |
|
32 | 39 | |
|
33 | 40 | |
|
34 |
- |
|
|
35 |
- |
|
|
36 |
- |
|
|
37 |
- |
|
|
38 |
- |
|
|
39 |
- |
|
|
40 |
- |
|
|
41 | + %table.table.table-hover | |
|
42 | + %thead | |
|
43 | + %tr | |
|
44 | + %th Login | |
|
45 | + %th Full name | |
|
46 | + %th Remark | |
|
47 | + %th= link_to 'Remove All', remove_all_user_group_path(@group), method: :delete, :data => { :confirm => "Remove ALL USERS from group?" }, class: 'btn btn-danger btn-sm' | |
|
41 | 48 | |
|
42 |
- |
|
|
43 |
- |
|
|
44 |
- |
|
|
45 |
- |
|
|
46 |
- |
|
|
47 |
- |
|
|
48 |
- |
|
|
49 |
- |
|
|
50 | - .panel.panel-default | |
|
51 |
- |
|
|
52 |
- |
|
|
53 |
- |
|
|
54 |
- |
|
|
55 |
- |
|
|
56 |
- |
|
|
57 |
- |
|
|
58 |
- |
|
|
59 |
- |
|
|
60 |
- |
|
|
61 | - =label_tag :problem_id, "Problem" | |
|
49 | + %tbody | |
|
50 | + - @group.users.each do |user| | |
|
51 | + %tr | |
|
52 | + %td= user.login | |
|
53 | + %td= user.full_name | |
|
54 | + %td= user.remark | |
|
55 | + %td= link_to 'Remove', remove_user_group_path(@group,user), :method => :delete, :data => { :confirm => "Remove #{user.full_name}?" }, class: 'btn btn-danger btn-sm' | |
|
56 | + .col-md-6 | |
|
57 | + .card | |
|
58 | + .card-header | |
|
59 | + Problems | |
|
60 | + .card-body | |
|
61 | + %ul | |
|
62 | + %li | |
|
63 | + If you want to add several problem to a group, it may be easier to bulk manage them in the | |
|
64 | + = link_to 'Bulk Manage Problems', manage_problems_path | |
|
65 | + page | |
|
66 | + =form_tag add_problem_group_path(@group) do | |
|
67 | + .row | |
|
68 | + .col-auto | |
|
69 | + =label_tag :problem_id, "Problem",class: 'col-form-label' | |
|
70 | + .col-auto | |
|
62 | 71 | =select_tag :problem_id, options_from_collection_for_select(Problem.all,'id','long_name'), class: 'select2', style: 'width: 25em'; |
|
63 | - =submit_tag "Add",class: 'btn btn-primary' | |
|
72 | + .col-auto | |
|
73 | + =submit_tag "Add",class: 'btn btn-primary' | |
|
64 | 74 | |
|
65 | 75 | |
|
66 |
- |
|
|
67 |
- |
|
|
68 |
- |
|
|
69 |
- |
|
|
70 |
- |
|
|
71 |
- |
|
|
72 |
- |
|
|
76 | + %table.table.table-hover | |
|
77 | + %thead | |
|
78 | + %tr | |
|
79 | + %th name | |
|
80 | + %th Full name | |
|
81 | + %th Full score | |
|
82 | + %th= link_to 'Remove All', remove_all_problem_group_path(@group), method: :delete, :data => { :confirm => "Remove ALL PROBLEMS from group?" }, class: 'btn btn-danger btn-sm' | |
|
73 | 83 | |
|
74 |
- |
|
|
75 |
- |
|
|
76 |
- |
|
|
77 |
- |
|
|
78 |
- |
|
|
79 |
- |
|
|
80 |
- |
|
|
84 | + %tbody | |
|
85 | + - @group.problems.each do |problem| | |
|
86 | + %tr | |
|
87 | + %td= problem.name | |
|
88 | + %td= problem.full_name | |
|
89 | + %td= problem.full_score | |
|
90 | + %td= link_to 'Remove', remove_problem_group_path(@group,problem), :method => :delete, :data => { :confirm => "Remove #{problem.full_name}?" }, class: 'btn btn-danger btn-sm' | |
|
81 | 91 | |
|
82 | 92 |
@@ -135,21 +135,22 | |||
|
135 | 135 | = "#{value[:first][:value]} @" |
|
136 | 136 | = link_to "#" + value[:first][:sub_id].to_s, submission_path( value[:first][:sub_id]) |
|
137 | 137 | |
|
138 | - %script{src:"https://cdn.jsdelivr.net/npm/chart.js"} | |
|
139 | 138 | :javascript |
|
140 | - data = #{@chart_dataset} | |
|
141 | - config = { | |
|
142 | - type: 'bar', | |
|
143 | - data: data, | |
|
144 | - options: { | |
|
145 |
- |
|
|
146 |
- |
|
|
147 |
- |
|
|
139 | + $(document).on('import-map-loaded',(e) => { | |
|
140 | + data = #{@chart_dataset} | |
|
141 | + config = { | |
|
142 | + type: 'bar', | |
|
143 | + data: data, | |
|
144 | + options: { | |
|
145 | + plugins: { | |
|
146 | + legend: { | |
|
147 | + display: false | |
|
148 | + }, | |
|
148 | 149 | }, |
|
149 |
- } |
|
|
150 | + } | |
|
150 | 151 | } |
|
151 | - } | |
|
152 |
- Chart.defaults.font. |
|
|
153 | - //Chart.defaults.font.family = 'Sarabun Light' | |
|
154 | - chart = new Chart($('#chart'),config) | |
|
152 | + Chart.defaults.font.size = 15 | |
|
153 | + //Chart.defaults.font.family = 'Sarabun Light' | |
|
154 | + chart = new Chart($('#chart'),config) | |
|
155 | + }); | |
|
155 | 156 |
@@ -49,16 +49,6 | |||
|
49 | 49 | = link_to "[#{contest.name}]", :action => 'contests', :id => contest.id |
|
50 | 50 | = link_to "[no contest]", :action => 'contests', :id => 'none' |
|
51 | 51 | |
|
52 | - -# Total #{@user_count} users | | |
|
53 | - -# - if !@paginated | |
|
54 | - -# Display all users. | |
|
55 | - -# \#{link_to '[show in pages]', :action => 'index', :page => '1'} | |
|
56 | - -# - else | |
|
57 | - -# Display in pages. | |
|
58 | - -# \#{link_to '[display all]', :action => 'index', :page => 'all'} | | |
|
59 | - -# \#{will_paginate @users, :container => false} | |
|
60 | - | |
|
61 | - | |
|
62 | 52 | %table.table.table-hover.table-condense.datatable |
|
63 | 53 | %thead |
|
64 | 54 | %th Login |
@@ -85,10 +75,10 | |||
|
85 | 75 | %td= toggle_button(user.activated?, toggle_activate_user_path(user),"toggle_activate_user_#{user.id}") |
|
86 | 76 | %td= toggle_button(user.enabled?, toggle_enable_user_path(user),"toggle_enable_user_#{user.id}") |
|
87 | 77 | %td= user.last_ip |
|
88 |
- %td= link_to 'Clear IP', {:action => 'clear_last_ip', :id => user, :page=>params[:page]}, :confirm => 'This will reset last logging in ip of the user, are you sure?', class: 'btn btn- |
|
|
89 |
- %td= link_to 'Show', {:action => 'show', :id => user}, class: 'btn btn- |
|
|
90 |
- %td= link_to 'Edit', {:action => 'edit', :id => user}, class: 'btn btn- |
|
|
91 |
- %td= link_to 'Destroy', {action: :destroy, id: user}, data: {confirm: 'Are you sure?'}, method: :delete, class: 'btn btn-danger btn- |
|
|
78 | + %td= link_to 'Clear IP', {:action => 'clear_last_ip', :id => user, :page=>params[:page]}, :confirm => 'This will reset last logging in ip of the user, are you sure?', class: 'btn btn-secondary btn-sm btn-block' | |
|
79 | + %td= link_to 'Show', {:action => 'show', :id => user}, class: 'btn btn-secondary btn-sm btn-block' | |
|
80 | + %td= link_to 'Edit', {:action => 'edit', :id => user}, class: 'btn btn-secondary btn-sm btn-block' | |
|
81 | + %td= link_to 'Destroy', {action: :destroy, id: user}, data: {confirm: 'Are you sure?'}, method: :delete, class: 'btn btn-danger btn-sm btn-block' | |
|
92 | 82 | %br/ |
|
93 | 83 | = link_to '+ New user', { :action => 'new' }, { class: 'btn btn-success '} |
|
94 | 84 | = link_to '+ New list of users', { :action => 'new_list' }, { class: 'btn btn-success '} |
You need to be logged in to leave comments.
Login now