voluntary_scholarship 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +23 -0
- data/app/controllers/concerns/scholarship/base_controller.rb +17 -0
- data/app/controllers/product/scholarship_controller.rb +6 -0
- data/app/controllers/scholarship/iteration_participations_controller.rb +80 -0
- data/app/controllers/scholarship/iterations_controller.rb +72 -0
- data/app/controllers/scholarship/programs_controller.rb +66 -0
- data/app/controllers/scholarship/team_memberships_controller.rb +77 -0
- data/app/controllers/scholarship/teams_controller.rb +63 -0
- data/app/controllers/scholarship/workflow/organization_owner_controller.rb +10 -0
- data/app/controllers/scholarship/workflow/team_leader_controller.rb +10 -0
- data/app/controllers/scholarship/workflow_controller.rb +10 -0
- data/app/helpers/voluntary_scholarship/iteration_participations_helper.rb +19 -0
- data/app/helpers/voluntary_scholarship/team_memberships_helper.rb +19 -0
- data/app/models/concerns/scholarship/role_request.rb +36 -0
- data/app/models/product/scholarship.rb +2 -0
- data/app/models/scholarship/iteration.rb +36 -0
- data/app/models/scholarship/iteration_participation.rb +66 -0
- data/app/models/scholarship/program.rb +18 -0
- data/app/models/scholarship/team.rb +33 -0
- data/app/models/scholarship/team_membership.rb +22 -0
- data/app/views/product/scholarship/index.html.erb +0 -0
- data/app/views/scholarship/iteration_participations/_actions.html.erb +18 -0
- data/app/views/scholarship/iteration_participations/_collection.html.erb +51 -0
- data/app/views/scholarship/iteration_participations/_form.html.erb +23 -0
- data/app/views/scholarship/iteration_participations/edit.html.erb +3 -0
- data/app/views/scholarship/iteration_participations/index.html.erb +3 -0
- data/app/views/scholarship/iteration_participations/new.html.erb +3 -0
- data/app/views/scholarship/iteration_participations/with_state.html.erb +1 -0
- data/app/views/scholarship/iterations/_actions.html.erb +19 -0
- data/app/views/scholarship/iterations/_form.html.erb +14 -0
- data/app/views/scholarship/iterations/edit.html.erb +3 -0
- data/app/views/scholarship/iterations/index.html.erb +33 -0
- data/app/views/scholarship/iterations/new.html.erb +3 -0
- data/app/views/scholarship/iterations/show.html.erb +9 -0
- data/app/views/scholarship/programs/_actions.html.erb +19 -0
- data/app/views/scholarship/programs/_form.html.erb +13 -0
- data/app/views/scholarship/programs/edit.html.erb +3 -0
- data/app/views/scholarship/programs/index.html.erb +33 -0
- data/app/views/scholarship/programs/new.html.erb +3 -0
- data/app/views/scholarship/programs/show.html.erb +11 -0
- data/app/views/scholarship/team_memberships/_actions.html.erb +18 -0
- data/app/views/scholarship/team_memberships/_collection.html.erb +47 -0
- data/app/views/scholarship/team_memberships/_form.html.erb +22 -0
- data/app/views/scholarship/team_memberships/edit.html.erb +3 -0
- data/app/views/scholarship/team_memberships/index.html.erb +3 -0
- data/app/views/scholarship/team_memberships/new.html.erb +3 -0
- data/app/views/scholarship/team_memberships/with_state.html.erb +1 -0
- data/app/views/scholarship/teams/_actions.html.erb +19 -0
- data/app/views/scholarship/teams/_form.html.erb +15 -0
- data/app/views/scholarship/teams/edit.html.erb +3 -0
- data/app/views/scholarship/teams/index.html.erb +29 -0
- data/app/views/scholarship/teams/new.html.erb +3 -0
- data/app/views/scholarship/teams/show.html.erb +19 -0
- data/app/views/scholarship/workflow/index.html.erb +0 -0
- data/app/views/scholarship/workflow/organization_owner/index.html.erb +24 -0
- data/app/views/scholarship/workflow/team_leader/index.html.erb +24 -0
- data/config/locales/products/scholarship/workflow/en.yml +12 -0
- data/config/locales/resources/scholarship_iteration/en.yml +22 -0
- data/config/locales/resources/scholarship_iteration_participation/en.yml +39 -0
- data/config/locales/resources/scholarship_program/en.yml +16 -0
- data/config/locales/resources/scholarship_team/en.yml +23 -0
- data/config/locales/resources/scholarship_team_membership/en.yml +30 -0
- data/config/main_scholarship_navigation.rb +3 -0
- data/config/routes.rb +54 -0
- data/db/migrate/20140306201232_add_scholarship_product.rb +12 -0
- data/db/migrate/20140310181004_create_scholarship_programs.rb +12 -0
- data/db/migrate/20140310192931_create_scholarship_iterations.rb +13 -0
- data/db/migrate/20140311173818_create_scholarship_teams.rb +28 -0
- data/db/migrate/20140314154216_create_scholarship_iteration_participations.rb +15 -0
- data/db/schema.rb +85 -0
- data/lib/tasks/voluntary_scholarship_tasks.rake +4 -0
- data/lib/voluntary_scholarship.rb +13 -0
- data/lib/voluntary_scholarship/ability.rb +34 -0
- data/lib/voluntary_scholarship/concerns/model/has_scholarship_programs.rb +13 -0
- data/lib/voluntary_scholarship/concerns/model/user/has_scholarship_teams.rb +43 -0
- data/lib/voluntary_scholarship/engine.rb +28 -0
- data/lib/voluntary_scholarship/navigation.rb +114 -0
- data/lib/voluntary_scholarship/version.rb +3 -0
- metadata +468 -0
@@ -0,0 +1,33 @@
|
|
1
|
+
<h3><%= t("scholarship_iterations.index.title") %></h3>
|
2
|
+
<% if @iterations.none? || @iterations.select{|e| e.id.present? }.none? %>
|
3
|
+
<p><%= I18n.t("scholarship_iterations.index.empty_collection")%></p>
|
4
|
+
<% else %>
|
5
|
+
<table class="table table-striped">
|
6
|
+
<thead>
|
7
|
+
<tr class="<%= cycle('odd', 'even') %>">
|
8
|
+
<th><%= t("activerecord.attributes.general.name") %></th>
|
9
|
+
<th><%= t("activerecord.models.scholarship_program") %></th>
|
10
|
+
<th></th>
|
11
|
+
</tr>
|
12
|
+
</thead>
|
13
|
+
<tbody>
|
14
|
+
<% @iterations.select{|e| e.id.present? }.each do |iteration| %>
|
15
|
+
<tr class="<%= cycle('odd', 'even') %>">
|
16
|
+
<td>
|
17
|
+
<%= link_to iteration.name, scholarship_iteration_path(iteration) %>
|
18
|
+
</td>
|
19
|
+
<td>
|
20
|
+
<%= link_to iteration.program.name, scholarship_program_path(iteration.program) %>
|
21
|
+
</td>
|
22
|
+
<td>
|
23
|
+
<%= render partial: 'actions', locals: { iteration: iteration } %>
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<% end %>
|
27
|
+
</tbody>
|
28
|
+
</table>
|
29
|
+
<% end %>
|
30
|
+
|
31
|
+
<%= will_paginate @iterations %>
|
32
|
+
|
33
|
+
<%= link_to t("scholarship_iterations.new.title"), new_scholarship_program_iteration_path(@program) %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<% if can?(:destroy, program) || can?(:edit, program) %>
|
2
|
+
<div class="dropdown">
|
3
|
+
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><%= t('general.actions') %></a>
|
4
|
+
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
|
5
|
+
<% if can? :destroy, program %>
|
6
|
+
<li>
|
7
|
+
<%= link_to(
|
8
|
+
t('general.destroy'), scholarship_program_path(program.id), id: "program_#{program.id}", method: :delete,
|
9
|
+
data: { confirm: t('general.questions.are_you_sure') },
|
10
|
+
onclick: "delete_link('program_#{program.id}'); return false;"
|
11
|
+
) %>
|
12
|
+
</li>
|
13
|
+
<% end %>
|
14
|
+
<% if can? :edit, program %>
|
15
|
+
<li><%= link_to t('general.edit'), eval("edit_scholarship_program_path(program)") %></li>
|
16
|
+
<% end %>
|
17
|
+
</ul>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<%= simple_form_for(@program, html: {class: 'form-horizontal'}) do |f| %>
|
2
|
+
<%= render partial: 'shared/form/error_messages', locals: { resource: @program } %>
|
3
|
+
|
4
|
+
<div class="form-inputs">
|
5
|
+
<%= f.input :organization_id, collection: current_user.organizations %>
|
6
|
+
<%= f.input :name %>
|
7
|
+
<%= f.input :text, input_html: {style: 'width: 500px; height:300px;'} %>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="form-actions">
|
11
|
+
<%= f.button :submit %>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<h3><%= t("scholarship_programs.index.title") %></h3>
|
2
|
+
<% if @programs.none? || @programs.select{|e| e.id.present? }.none? %>
|
3
|
+
<p><%= I18n.t("scholarship_programs.index.empty_collection")%></p>
|
4
|
+
<% else %>
|
5
|
+
<table class="table table-striped">
|
6
|
+
<thead>
|
7
|
+
<tr class="<%= cycle('odd', 'even') %>">
|
8
|
+
<th><%= t("activerecord.attributes.general.name") %></th>
|
9
|
+
<th><%= t("activerecord.models.organization") %></th>
|
10
|
+
<th></th>
|
11
|
+
</tr>
|
12
|
+
</thead>
|
13
|
+
<tbody>
|
14
|
+
<% @programs.select{|e| e.id.present? }.each do |program| %>
|
15
|
+
<tr class="<%= cycle('odd', 'even') %>">
|
16
|
+
<td>
|
17
|
+
<%= link_to program.name, scholarship_program_path(program) %>
|
18
|
+
</td>
|
19
|
+
<td>
|
20
|
+
<%= link_to program.organization.name, organization_path(program.organization) %>
|
21
|
+
</td>
|
22
|
+
<td>
|
23
|
+
<%= render partial: 'actions', locals: { program: program } %>
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<% end %>
|
27
|
+
</tbody>
|
28
|
+
</table>
|
29
|
+
<% end %>
|
30
|
+
|
31
|
+
<%= will_paginate @programs %>
|
32
|
+
|
33
|
+
<%= link_to t("scholarship_programs.new.title"), @organization ? new_organization_scholarship_program_path(@organization) : new_scholarship_program_path %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<% if can?(:destroy, team_membership) || can?(:edit, team_membership) %>
|
2
|
+
<div class="dropdown">
|
3
|
+
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><%= t('general.actions') %></a>
|
4
|
+
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
|
5
|
+
<% if can? :destroy, team_membership %>
|
6
|
+
<li><%= destroy_scholarship_team_membership_link(team_membership) %></li>
|
7
|
+
<% end %>
|
8
|
+
<% if can? :edit, team_membership %>
|
9
|
+
<li><%= link_to t('general.edit'), eval("edit_scholarship_team_membership_path(team_membership)") %></li>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<% if team_membership.state_events.select{|event| can? event, team_membership }.any? %>
|
13
|
+
<li class="divider"></li>
|
14
|
+
<% end %>
|
15
|
+
<%= render 'shared/resource/event_elements', resource: team_membership, type: 'scholarship_team_memberships' %>
|
16
|
+
</ul>
|
17
|
+
</div>
|
18
|
+
<% end %>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<% show_team ||= false %>
|
2
|
+
<% if @team_memberships.none? || @team_memberships.select{|e| e.id.present? }.none? %>
|
3
|
+
<p><%= I18n.t("scholarship_team_memberships.index.empty_collection")%></p>
|
4
|
+
<% else %>
|
5
|
+
<table class="table table-striped">
|
6
|
+
<thead>
|
7
|
+
<tr class="<%= cycle('odd', 'even') %>">
|
8
|
+
<th><%= t('activerecord.models.user') %></th>
|
9
|
+
<% if show_team %>
|
10
|
+
<th><%= t('activerecord.models.scholarship/team') %></th>
|
11
|
+
<% end %>
|
12
|
+
<th><%= t('attributes.roles') %></th>
|
13
|
+
<th></th>
|
14
|
+
</tr>
|
15
|
+
</thead>
|
16
|
+
<tbody>
|
17
|
+
<% @team_memberships.select{|e| e.id.present? }.each do |team_membership| %>
|
18
|
+
<tr class="<%= cycle('odd', 'even') %>">
|
19
|
+
<td>
|
20
|
+
<%= link_to team_membership.user.full_name, user_path(team_membership.user) %>
|
21
|
+
</td>
|
22
|
+
<% if show_team %>
|
23
|
+
<td>
|
24
|
+
<%= link_to team_membership.team, scholarship_team_path(team_membership.team) %>
|
25
|
+
</td>
|
26
|
+
<% end %>
|
27
|
+
<td>
|
28
|
+
<%= team_membership.roles.map(&:to_s).map(&:humanize).join(', ') %>
|
29
|
+
</td>
|
30
|
+
<td>
|
31
|
+
<%= render partial: 'scholarship/team_memberships/actions', locals: { team_membership: team_membership } %>
|
32
|
+
</td>
|
33
|
+
</tr>
|
34
|
+
<% end %>
|
35
|
+
</tbody>
|
36
|
+
</table>
|
37
|
+
<% end %>
|
38
|
+
|
39
|
+
<%= will_paginate @team_memberships %>
|
40
|
+
|
41
|
+
<% if @team.present? %>
|
42
|
+
<% if current_user.is_member_of_scholarship_team?(@team) %>
|
43
|
+
<%= destroy_scholarship_team_membership_link(current_user.membership_of_scholarship_team(@team)) %>
|
44
|
+
<% elsif can?(:create, Scholarship::TeamMembership) %>
|
45
|
+
<%= link_to t("scholarship_team_memberships.new.title"), new_scholarship_team_member_path(@team) %>
|
46
|
+
<% end %>
|
47
|
+
<% end %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<%= simple_form_for(@team_membership, html: {class: 'form-horizontal'}) do |f| %>
|
2
|
+
<%= f.input :team_id, as: :hidden %>
|
3
|
+
<%= render partial: 'shared/form/error_messages', locals: { resource: @team_membership } %>
|
4
|
+
|
5
|
+
<div class="form-inputs">
|
6
|
+
<% if can_update_scholarship_team_membership_roles?(@team_membership) %>
|
7
|
+
<%= f.input :roles, as: :check_boxes, collection: Scholarship::TeamMembership::ROLES.map { |r| [r.capitalize, r] }, include_hidden: false, label: t('attributes.roles') %>
|
8
|
+
<% else %>
|
9
|
+
<div class="control-group string required">
|
10
|
+
<label class="string required control-label">
|
11
|
+
<abbr title="required">*</abbr> Roles
|
12
|
+
</label>
|
13
|
+
<div class="controls"><%= @team_membership.roles.map(&:to_s).map(&:humanize).join(', ') %></div>
|
14
|
+
</div>
|
15
|
+
<% end %>
|
16
|
+
<%= f.input :text, label: t('attributes.text'), input_html: {style: 'width: 500px; height:300px;'} %>
|
17
|
+
</div>
|
18
|
+
|
19
|
+
<div class="form-actions">
|
20
|
+
<%= f.button :submit %>
|
21
|
+
</div>
|
22
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render partial: 'collection', locals: { show_team: true } %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<% if can?(:destroy, team) || can?(:edit, team) %>
|
2
|
+
<div class="dropdown">
|
3
|
+
<a class="dropdown-toggle" data-toggle="dropdown" href="#"><%= t('general.actions') %></a>
|
4
|
+
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
|
5
|
+
<% if can? :destroy, team %>
|
6
|
+
<li>
|
7
|
+
<%= link_to(
|
8
|
+
t('general.destroy'), scholarship_team_path(team.id), id: "team_#{team.id}", method: :delete,
|
9
|
+
data: { confirm: t('general.questions.are_you_sure') },
|
10
|
+
onclick: "delete_link('team_#{team.id}'); return false;"
|
11
|
+
) %>
|
12
|
+
</li>
|
13
|
+
<% end %>
|
14
|
+
<% if can? :edit, team %>
|
15
|
+
<li><%= link_to t('general.edit'), eval("edit_scholarship_team_path(team)") %></li>
|
16
|
+
<% end %>
|
17
|
+
</ul>
|
18
|
+
</div>
|
19
|
+
<% end %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%= simple_form_for(@team, html: {class: 'form-horizontal'}) do |f| %>
|
2
|
+
<%= render partial: 'shared/form/error_messages', locals: { resource: @team } %>
|
3
|
+
|
4
|
+
<div class="form-inputs">
|
5
|
+
<%= f.input :kind, as: :radio_buttons, collection: Scholarship::Team::KINDS.map { |k| [k.capitalize, k] }, blank: false, label: t('activerecord.attributes.scholarship/team.kind') %>
|
6
|
+
<%= f.input :name, label: t('attributes.name') %>
|
7
|
+
<%= f.input :github_handle, label: t('activerecord.attributes.scholarship/team.github_handle') %>
|
8
|
+
<%= f.input :twitter_handle, label: t('activerecord.attributes.scholarship/team.twitter_handle') %>
|
9
|
+
<%= f.input :text, label: t('attributes.text'), input_html: {style: 'width: 500px; height:300px;'} %>
|
10
|
+
</div>
|
11
|
+
|
12
|
+
<div class="form-actions">
|
13
|
+
<%= f.button :submit %>
|
14
|
+
</div>
|
15
|
+
<% end %>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<h3><%= t("scholarship_teams.index.title") %></h3>
|
2
|
+
<% if @teams.none? || @teams.select{|e| e.id.present? }.none? %>
|
3
|
+
<p><%= I18n.t("scholarship_teams.index.empty_collection")%></p>
|
4
|
+
<% else %>
|
5
|
+
<table class="table table-striped">
|
6
|
+
<thead>
|
7
|
+
<tr class="<%= cycle('odd', 'even') %>">
|
8
|
+
<th><%= t("activerecord.attributes.general.name") %></th>
|
9
|
+
<th></th>
|
10
|
+
</tr>
|
11
|
+
</thead>
|
12
|
+
<tbody>
|
13
|
+
<% @teams.select{|e| e.id.present? }.each do |team| %>
|
14
|
+
<tr class="<%= cycle('odd', 'even') %>">
|
15
|
+
<td>
|
16
|
+
<%= link_to team.name, scholarship_team_path(team) %>
|
17
|
+
</td>
|
18
|
+
<td>
|
19
|
+
<%= render partial: 'actions', locals: { team: team } %>
|
20
|
+
</td>
|
21
|
+
</tr>
|
22
|
+
<% end %>
|
23
|
+
</tbody>
|
24
|
+
</table>
|
25
|
+
<% end %>
|
26
|
+
|
27
|
+
<%= will_paginate @teams %>
|
28
|
+
|
29
|
+
<%= link_to t("scholarship_teams.new.title"), new_scholarship_team_path %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<h3>
|
2
|
+
<a name="top"> </a>
|
3
|
+
<%= @team.name %>
|
4
|
+
</h3>
|
5
|
+
|
6
|
+
<dl class="dl-horizontal">
|
7
|
+
<%= show_attribute(:kind) %>
|
8
|
+
<%= show_attribute(
|
9
|
+
:github_handle,
|
10
|
+
value: @team.github_handle.blank? ? '' : link_to(@team.github_handle, "http://github.com/#{@team.github_handle}")
|
11
|
+
) %>
|
12
|
+
<%= show_attribute(
|
13
|
+
:twitter_handle,
|
14
|
+
value: @team.twitter_handle.blank? ? '' : link_to(@team.twitter_handle, "http://twitter.com/#{@team.twitter_handle}.gsub('@', '')")
|
15
|
+
) %>
|
16
|
+
<dt> </dt><dd><%= render partial: 'actions', locals: { team: @team } %></dd>
|
17
|
+
</dl>
|
18
|
+
|
19
|
+
<%= markdown @team.text.to_s %>
|
File without changes
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<h3><%= t('scholarship_iteration_participations.workflow.title') %></h3>
|
2
|
+
<div class="tabs">
|
3
|
+
<ul>
|
4
|
+
<li><a href="#requested_team_memberships"><%= t('scholarship_iteration_participations.workflow.requested') %></a></li>
|
5
|
+
<li>
|
6
|
+
<a href="<%= with_state_scholarship_iteration_participations_path(state: 'accepted') %>">
|
7
|
+
<%= t('scholarship_iteration_participations.workflow.accepted') %>
|
8
|
+
</a>
|
9
|
+
</li>
|
10
|
+
<li>
|
11
|
+
<a href="<%= with_state_scholarship_iteration_participations_path(state: 'changed_roles') %>">
|
12
|
+
<%= t('scholarship_iteration_participations.workflow.changed_roles') %>
|
13
|
+
</a>
|
14
|
+
</li>
|
15
|
+
<li>
|
16
|
+
<a href="<%= with_state_scholarship_iteration_participations_path(state: 'denied') %>">
|
17
|
+
<%= t('scholarship_iteration_participations.workflow.denied') %>
|
18
|
+
</a>
|
19
|
+
</li>
|
20
|
+
</ul>
|
21
|
+
<div id="requested_team_memberships">
|
22
|
+
<%= render 'scholarship/iteration_participations/collection', locals: { show_team: true } %>
|
23
|
+
</div>
|
24
|
+
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<h3><%= t('scholarship_team_memberships.workflow.title') %></h3>
|
2
|
+
<div class="tabs">
|
3
|
+
<ul>
|
4
|
+
<li><a href="#requested_team_memberships"><%= t('scholarship_team_memberships.workflow.requested') %></a></li>
|
5
|
+
<li>
|
6
|
+
<a href="<%= with_state_scholarship_team_memberships_path(state: 'accepted') %>">
|
7
|
+
<%= t('scholarship_team_memberships.workflow.accepted') %>
|
8
|
+
</a>
|
9
|
+
</li>
|
10
|
+
<li>
|
11
|
+
<a href="<%= with_state_scholarship_team_memberships_path(state: 'changed_roles') %>">
|
12
|
+
<%= t('scholarship_team_memberships.workflow.changed_roles') %>
|
13
|
+
</a>
|
14
|
+
</li>
|
15
|
+
<li>
|
16
|
+
<a href="<%= with_state_scholarship_team_memberships_path(state: 'denied') %>">
|
17
|
+
<%= t('scholarship_team_memberships.workflow.denied') %>
|
18
|
+
</a>
|
19
|
+
</li>
|
20
|
+
</ul>
|
21
|
+
<div id="requested_team_memberships">
|
22
|
+
<%= render 'scholarship/team_memberships/collection', locals: { show_team: true } %>
|
23
|
+
</div>
|
24
|
+
</div>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
en:
|
2
|
+
scholarship_iterations:
|
3
|
+
index:
|
4
|
+
title: Scholarship Iterations
|
5
|
+
short_title: Iterations
|
6
|
+
name: Name
|
7
|
+
empty_collection: No scholarship iterations available.
|
8
|
+
|
9
|
+
new:
|
10
|
+
title: New Scholarship Iteration
|
11
|
+
edit:
|
12
|
+
title: Edit Scholarship Iteration
|
13
|
+
|
14
|
+
activerecord:
|
15
|
+
models:
|
16
|
+
scholarship/iteration: Scholarship Iteration
|
17
|
+
errors:
|
18
|
+
models:
|
19
|
+
scholarship_iteration:
|
20
|
+
attributes:
|
21
|
+
to:
|
22
|
+
to_must_be_greater_than_from: 'must be greater than from'
|
@@ -0,0 +1,39 @@
|
|
1
|
+
en:
|
2
|
+
scholarship_iteration_participations:
|
3
|
+
index:
|
4
|
+
title: Participants
|
5
|
+
name: Name
|
6
|
+
empty_collection: No scholarship iteration participants available.
|
7
|
+
|
8
|
+
new:
|
9
|
+
title: Join Iteration
|
10
|
+
edit:
|
11
|
+
title: Edit Iteration Participation
|
12
|
+
destroy:
|
13
|
+
title: Leave Iteration
|
14
|
+
|
15
|
+
show:
|
16
|
+
events:
|
17
|
+
accept: Accept
|
18
|
+
deny: Deny
|
19
|
+
change_roles: Change roles
|
20
|
+
|
21
|
+
workflow:
|
22
|
+
title: Iteration Participations
|
23
|
+
requested: Requested
|
24
|
+
accepted: Accepted
|
25
|
+
changed_roles: Changed roles
|
26
|
+
denied:
|
27
|
+
|
28
|
+
activerecord:
|
29
|
+
models:
|
30
|
+
scholarship/iteration_participation: Scholarship Iteration Participation
|
31
|
+
|
32
|
+
errors:
|
33
|
+
models:
|
34
|
+
scholarship/iteration_participation:
|
35
|
+
attributes:
|
36
|
+
team_id:
|
37
|
+
no_team_membership: You have not joined the team yet.
|
38
|
+
no_accepted_team_membership: Your team membership has not been accepted yet.
|
39
|
+
team_role_not_included_in_team_membership_roles: Your team membership roles does not include at least one of your team roles.
|