Différences
Ci-dessous, les différences entre deux révisions de la page.
| codes_sources_en_vrac:ror:trier_tableau_complexe [2024/01/25 10:10] – créée norore | codes_sources_en_vrac:ror:trier_tableau_complexe [2026/02/11 12:44] (Version actuelle) – supprimée norore | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== Trier un tableau complexe ====== | ||
| - | ===== View ===== | ||
| - | |||
| - | <code html> | ||
| - | <table class=" | ||
| - | <thead class=" | ||
| - | <tr> | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | <th class=" | ||
| - | </tr> | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | ===== Helper ===== | ||
| - | |||
| - | <code ruby> | ||
| - | module ApplicationHelper | ||
| - | def sortable(column, | ||
| - | title ||= column.titleize | ||
| - | css_class = if column != ' | ||
| - | column == sort_column ? " | ||
| - | else | ||
| - | column == sort_column ? " | ||
| - | end | ||
| - | direction = column == sort_column && sort_direction == ' | ||
| - | link_to title, { sort: column, direction: direction }, { class: css_class } | ||
| - | end | ||
| - | end | ||
| - | </ | ||
| - | |||
| - | ===== Controller ===== | ||
| - | |||
| - | <code ruby> | ||
| - | class BatchesController < ApplicationController | ||
| - | before_action : | ||
| - | before_action :set_batch, only: %i[show edit update destroy archive versions version revert] | ||
| - | before_action : | ||
| - | before_action : | ||
| - | |||
| - | helper_method : | ||
| - | |||
| - | NB_ITEMS = ENV[' | ||
| - | ALLOWED_SORTS = %w[name tank genotype species birth_date generation nb_male nb_female | ||
| - | genetic_background user updated_at exit_reason].freeze | ||
| - | COLNAME = { ' | ||
| - | |||
| - | def index | ||
| - | @page = params.fetch(: | ||
| - | @max_page = (Batch.count.to_f / NB_ITEMS).ceil | ||
| - | @batches = Batch.where(is_archived: | ||
| - | .includes(: | ||
| - | .order("# | ||
| - | .offset((@page - 1) * NB_ITEMS) | ||
| - | .limit(NB_ITEMS) | ||
| - | end | ||
| - | |||
| - | def request_colname | ||
| - | if %w[asc desc].include? | ||
| - | COLNAME.include? | ||
| - | else | ||
| - | ' | ||
| - | end | ||
| - | end | ||
| - | |||
| - | def sort_column | ||
| - | %w[asc desc].include? | ||
| - | end | ||
| - | |||
| - | def sort_direction | ||
| - | ALLOWED_SORTS.include? | ||
| - | end | ||
| - | end | ||
| - | </ | ||