Class: Vulgata::TeamController

Inherits:
ApplicationController show all
Defined in:
app/controllers/vulgata/team_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#suggest_translation, #vulgata_current_user, #vulgata_users

Methods included from ControllerConfigurable

#suggest_translation, #vulgata_current_user, #vulgata_users

Methods included from Controller

#authorize_admin, #authorize_admin_or_proofreader, #authorize_admin_proofreader_or_assigned_translator, #authorize_all_role_holders, #layout_by_role, #root_redirect, #set_tranlsation_classes_if_admin, #set_tranlsation_count_if_translator, #set_vulgata_user, #translation_queue_sort

Instance Method Details

#indexObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'app/controllers/vulgata/team_controller.rb', line 8

def index
  @users = vulgata_users.page(params[:page]).per(20)

  @from_date = params["from_date"].present? ? params["from_date"].to_datetime.beginning_of_day : DateTime.current.beginning_of_month
  @to_date = params["to_date"].present? ? params["to_date"].to_datetime.end_of_day : DateTime.current.end_of_day

  ldvpu = Vulgata::TranslationStateVersion.where(status: Vulgata::TranslationState.statuses[:done])
  ldvpu = ldvpu.where("created_at >= ? AND created_at <= ?", @from_date, @to_date)
  ldvpu = ldvpu.group(:user_id, :vulgata_translation_state_id)
  ldvpu = ldvpu.select("MAX(id) AS id")
  @last_done_versions_per_user_and_t9n_state_sql = ldvpu.to_sql

  set_translated_items_per_user
  set_translated_words_per_user
end

#showObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/controllers/vulgata/team_controller.rb', line 24

def show
  @user = params[:user_type].constantize.find(params[:user_id])

  @total_translated = Vulgata::TranslationStateVersion.where(status: Vulgata::TranslationState.statuses[:done])
  @total_translated = @total_translated.where(user: @user)
  @total_translated = @total_translated.group(:vulgata_translation_state_id)
  @total_translated = @total_translated.select(:vulgata_translation_state_id)
  @total_translated = @total_translated.length || 0

  @translated_this_week = translated_in_time_period(DateTime.current.beginning_of_week)
  @translated_this_month = translated_in_time_period(DateTime.current.beginning_of_month)
  @translated_last_month = translated_in_time_period((DateTime.current - 1.month).beginning_of_month, DateTime.current.beginning_of_month)

  set_total_rejections @user
  set_overall_approval_rate

  versions_involving_user = Vulgata::TranslationStateVersion.where(user_id: params[:user_id])
  versions_involving_user = versions_involving_user.where.not(status: [Vulgata::TranslationState.statuses[:source], Vulgata::TranslationState.statuses[:pending], Vulgata::TranslationState.statuses[:in_progress]])
  versions_involving_user = versions_involving_user.select(:vulgata_translation_state_id)
  @translation_states = Vulgata::TranslationState.where(id: versions_involving_user).order(updated_at: :desc).page(params[:page]).per(10)

  locales = Vulgata::UserLocale.where(user: @user) || []
  @user_locales = locales.map(&:locale)
  @user_role = @user.vulgata_role
end

#updateObject



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'app/controllers/vulgata/team_controller.rb', line 50

def update
  user = params[:user_type].constantize.find(params[:user_id])

  locales = params[:locales] || []
  transaction = ActiveRecord::Base.transaction do
    user.vulgata_locales = locales
    params[:role] == "none" ? user.vulgata_role = nil : user.vulgata_role = params[:role]
    user.save
  end

  respond_to do |format|
    if transaction
      format.html { redirect_to vulgata_user_path(user: user), notice: 'Successfully updated locales.' }
    else
      format.html { redirect_to vulgata_user_path(user: user), notice: 'Error updating locales' }
    end
  end
end