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
# 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

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

  set_translated_items_per_user
  set_translated_words_per_user
end

#showObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/controllers/vulgata/team_controller.rb', line 21

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

  @total_translated = Vulgata::TranslationStateVersion.select(:vulgata_translation_state_id).where(status: Vulgata::TranslationState.statuses[:done]).where(user: @user).group(:vulgata_translation_state_id).length || 0
  @translated_this_week = Vulgata::TranslationStateVersion.select(:vulgata_translation_state_id).where(status: Vulgata::TranslationState.statuses[:done]).where(user: @user).where('created_at >= ?', DateTime.current.beginning_of_week).group(:vulgata_translation_state_id).length || 0
  @translated_this_month = Vulgata::TranslationStateVersion.select(:vulgata_translation_state_id).where(status: Vulgata::TranslationState.statuses[:done]).where(user: @user).where('created_at >= ?', DateTime.current.beginning_of_month).group(:vulgata_translation_state_id).length || 0
  @translated_last_month = Vulgata::TranslationStateVersion.select(:vulgata_translation_state_id).where(status: Vulgata::TranslationState.statuses[:done]).where(user: @user).where('created_at >= ? AND created_at < ?', (DateTime.current - 1.month).beginning_of_month, DateTime.current.beginning_of_month).group(:vulgata_translation_state_id).length || 0
  set_total_rejections @user
  set_overall_approval_rate

  versions_involving_user = Vulgata::TranslationStateVersion.select(:vulgata_translation_state_id).where(user_id: params[:user_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



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'app/controllers/vulgata/team_controller.rb', line 39

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