Skip to content

Commit

Permalink
final commit of leaves and redmine
Browse files Browse the repository at this point in the history
  • Loading branch information
Arbaz Sajid committed Dec 1, 2015
1 parent 5cc0b22 commit a60ec13
Show file tree
Hide file tree
Showing 6 changed files with 132 additions and 89 deletions.
58 changes: 17 additions & 41 deletions app/controllers/user_leave_reports_controller.rb
Expand Up @@ -62,48 +62,24 @@ def report
end

where_clause[0] = where_statements.join(' AND ')
user_leaves = UserLeave.where(where_clause).order('leave_date desc')
@user_leave = UserLeave.where(where_clause).order('leave_date desc')

@divided_leaves={}
case params[:user_leave_report][:selected_group_by]
when 'User'
user_leaves.each do |user_leave|
if @divided_leaves[user_leave.user.name.to_sym]
@divided_leaves[user_leave.user.name.to_sym]<<user_leave
else
@divided_leaves[user_leave.user.name.to_sym]=[]
@divided_leaves[user_leave.user.name.to_sym]<<user_leave
end
end
when 'Leave type'
user_leaves.each do |user_leave|
if @divided_leaves[user_leave.leave_type.to_sym]
@divided_leaves[user_leave.leave_type.to_sym]<<user_leave
else
@divided_leaves[user_leave.leave_type.to_sym]=[]
@divided_leaves[user_leave.leave_type.to_sym]<<user_leave
end
end
when 'Date'
user_leaves.each do |user_leave|
if @divided_leaves[user_leave.leave_date.to_s.to_sym]
@divided_leaves[user_leave.leave_date.to_s.to_sym]<<user_leave
else
@divided_leaves[user_leave.leave_date.to_s.to_sym]=[]
@divided_leaves[user_leave.leave_date.to_s.to_sym]<<user_leave
end
end
end

if @divided_leaves.nil? || @divided_leaves.empty?
if @user_leave .nil? || @user_leave .empty?
flash.now[:error] = l(:error_no_results)
if params[:user_leave_report][:date_from].present? && params[:user_leave_report][:date_to].present?
if params[:user_leave_report][:date_from] > params[:user_leave_report][:date_to]
flash.now[:error]=l(:error_from_greater_than_to)
else
flash.now[:error] = l(:error_no_results)
end
end
end
end

@leaves_report_grid = initialize_grid(@user_leave,
:order => 'id',
:name => 'grid',
:order_direction => 'desc',
:enable_export_to_csv => true,
:csv_field_separator => ';',
:csv_file_name => 'LeavesReport')

export_grid_if_requested('grid' => 'grid')




end
end
79 changes: 79 additions & 0 deletions app/views/user_leave_reports/_grid.html.erb
@@ -0,0 +1,79 @@
<%leave_types_totals = {}%>
<%=grid(@leaves_report_grid,hide_submit_button: true, hide_csv_button: false, hide_reset_button: true ,:show_filters => :always,html: {class: 'my-grid'}, header_tr_html: {class: 'my-header'}) do |g|

g.column name: l(:label_name),in_csv: false do |user_leave|
link_to User.find(user_leave.user_id).name, user_path(User.find(user_leave.user_id))
end
g.column name: l(:label_name),in_html: false do |user_leave|
User.find(user_leave.user_id).name
end


g.column name: l(:label_leave_type),in_csv: false,attribute: 'leave_type',detach_with_id: :leave_type_filter do |user_leave|
link_to user_leave.leave_type, :controller => 'user_leave_reports',:action=> 'report',:user_leave_report=>{:selected_leave_types=>user_leave.leave_type, :selected_group_by =>'User'}
end
g.column name: l(:label_leave_type),in_html: false,attribute: 'leave_type',detach_with_id: :leave_type_filter do |user_leave|
user_leave.leave_type
end

g.column name: l(:label_leave_date),in_csv: false,attribute: 'leave_date',detach_with_id: :leave_date_filter do |user_leave|
link_to user_leave.leave_date, :controller => 'user_leave_reports',:action=> 'report',:user_leave_report=>{:date_from=>user_leave.leave_date,:date_to=>user_leave.leave_date, :selected_group_by =>'User'}
end
g.column name: l(:label_leave_date),in_html: false,attribute: 'leave_date',detach_with_id: :leave_date_filter do |user_leave|
user_leave.leave_date
end



g.column name: l(:label_weight),attribute: 'fractional_leave',detach_with_id: :fractional_leave_filter do |user_leave|

leave_types_totals [user_leave.leave_type] ||= 0
leave_types_totals [user_leave.leave_type] += user_leave.fractional_leave

user_leave.fractional_leave

end


g.column name: l(:label_comments),attribute: 'comments',detach_with_id: :comments_filter do |user_leave|
user_leave.comments
end


if user_allowed_to_edit_leaves?
g.column name: 'Edit',in_csv: false do |user_leave|
link_to l(:link_edit), edit_user_leafe_path(user_leave)
end
g.column name: 'Delete',in_csv: false do |user_leave|
link_to l(:link_delete), user_leafe_path(user_leave), :remote => true, method: :delete, data: { confirm: l(:label_confirm) }
end
end


g.last_row do |number_of_columns|

leave_types_string = []
leave_weights_string=[]

leave_types_totals.each_pair do |key, value|
leave_types_string << key
leave_weights_string << '%.2f' % leave_types_totals[key]
end


"<tr>
<th>Total</th>
<th>#{leave_types_string.join('<br/>')}</th>
<th></th>
<th>#{leave_weights_string.join('<br/>')}</th>
<th></th>
<th></th>
</tr>"

end


end -%>


64 changes: 23 additions & 41 deletions app/views/user_leave_reports/report.html.erb
@@ -1,45 +1,27 @@
<% content_for :header_tags do %>
<%= stylesheet_link_tag 'wice_grid', :plugin => 'redmine_wice_grid' %>
<%= stylesheet_link_tag 'grid',:plugin => 'redmine_payments' %>
<%= javascript_include_tag 'application', :plugin => 'redmine_wice_grid' %>
<%= javascript_include_tag 'ntogglework', :plugin => 'redmine_payments' %>
<% end %>
<%= render template: "layouts/redmine_leaves" %>
<div class="flash notice" id="flash_delete_option" style="display:none;"></div>
<h2><%= l(:title_leave_summary) %> </h2>
<%= render 'options' %><br/><br/>
<% unless @divided_leaves.nil? || @divided_leaves.empty? %>
<%@divided_leaves.each do |key,value|%>
<%=key.to_s%>
<table border="1" id='user-leave-report'>
<thead>
<tr align="center">
<th><%= l(:label_name) %></th>
<th><%= l(:label_leave_type) %></th>
<th><%= l(:label_leave_date) %></th>
<th><%= l(:label_weight) %></th>
<th><%= l(:label_comments) %></th>
<% if user_allowed_to_edit_leaves? %>
<th><%= l(:label_action) %></th>
<% end %>
</tr>
</thead>
<tbody>
<% value.each do |user_leave|%>

<tr id="table-row-<%=user_leave.id%>" align="center" class="<%= cycle("odd", "even")%>">

<td><%= link_to User.find(user_leave.user_id).name, user_path(User.find(user_leave.user_id)) %></td>
<td><%= link_to user_leave.leave_type, :controller => 'user_leave_reports',
:action=> 'report',:user_leave_report=>{:selected_leave_types=>user_leave.leave_type, :selected_group_by =>'User'} %></td>
<td><%= link_to user_leave.leave_date, :controller => 'user_leave_reports',
:action=> 'report',:user_leave_report=>{:date_from=>user_leave.leave_date,:date_to=>user_leave.leave_date, :selected_group_by =>'User'} %></td>
<td><%= user_leave.fractional_leave %></td>
<td><%= user_leave.comments %></td>
<% if user_allowed_to_edit_leave?(user_leave) %>
<td>
<%= link_to l(:link_edit), edit_user_leafe_path(user_leave) %> |
<%= link_to l(:link_delete), user_leafe_path(user_leave), :remote => true,
method: :delete, data: { confirm: l(:label_confirm) }%>
</td>
<% end %>
</tr>
<% end %>
</tbody>
</table>
<% end %>
<%end%>

<div class="flash notice" id="flash_delete_option" style="display:none;"></div>
<% unless @user_leave.nil? || @user_leave.empty? %>
<%= render partial: 'grid' %>
<button id="export-button" class="wg-external-csv-export-button" data-grid-name="grid"><%=image_tag("/plugin_assets/redmine_leaves/images/icons/grid/page_white_excel.png", :alt => "home image",:title => "Export to CSV")%> Export to CSV</button>

<% end %>





3 changes: 2 additions & 1 deletion assets/stylesheets/redmine_leaves.css
Expand Up @@ -78,4 +78,5 @@
padding: 4px 10px 4px 10px;
}
#user-time-analytics-menu li a:hover {background:#759FCF; color:#fff;}
#user-time-analytics-menu li a.selected, #user-time-analytics-menu li a.selected:hover {background:#fff; color:#179;}
#user-time-analytics-menu li a.selected, #user-time-analytics-menu li a.selected:hover {background:#fff; color:#179;}

5 changes: 5 additions & 0 deletions assets/stylesheets/wice_grid.css
Expand Up @@ -160,3 +160,8 @@ input.wice-grid-save-query-field {
li {
line-height: 18px;
}

#export-button {
float: right;
margin-left: 5px;
}
12 changes: 6 additions & 6 deletions config/routes.rb
Expand Up @@ -5,7 +5,7 @@
collection { post :import }
end

match '/create_time_entries' => 'user_time_checks#create_time_entries'
match '/create_time_entries' => 'user_time_checks#create_time_entries', via: :get

#get "user_time_checks/home"
get "user_time_checks/check_in"
Expand All @@ -25,9 +25,9 @@


#match '/home', to: 'user_time_checks#home', via: 'get'
match '/check_in' => 'user_time_checks#check_in'
match '/check_out' => 'user_time_checks#check_out'
match '/checkout_timelog_success' => 'user_time_checks#checkout_timelog_success'
match '/user_leave_report' => 'user_leave_reports#report'
match '/user_leave_analytics' => 'user_leave_analytics#report'
match '/check_in' => 'user_time_checks#check_in', via: :get
match '/check_out' => 'user_time_checks#check_out', via: :get
match '/checkout_timelog_success' => 'user_time_checks#checkout_timelog_success', via: :get
match '/user_leave_report' => 'user_leave_reports#report', via: [:get, :post]
match '/user_leave_analytics' => 'user_leave_analytics#report', via: :get

0 comments on commit a60ec13

Please sign in to comment.