Fix numbers autoincrement
All checks were successful
/ Run tests (push) Successful in 2m16s
/ Run system tests (push) Successful in 2m29s
/ Build, push and deploy image (push) Successful in 1m37s

This commit is contained in:
david 2024-09-12 01:18:04 +02:00
parent 63590c9e92
commit 1cdf5048c3
6 changed files with 16 additions and 5 deletions

View file

@ -52,7 +52,9 @@ class Check < ApplicationRecord
:standard_text, :standard_text,
:powerpoint_text :powerpoint_text
after_create { update(number: id) unless number } validates :number, uniqueness: true, presence: true
before_validation { self.number = self.class.maximum(:id).to_i + 1 unless self.number.present? }
scope(:search, lambda { |term| scope(:search, lambda { |term|
# TODO: Search only fields for current locale. # TODO: Search only fields for current locale.

View file

@ -1,7 +1,7 @@
= bootstrap_form_with(model: check, remote: true) do |form| = bootstrap_form_with(model: check, remote: true) do |form|
h2 Details h2 Details
= multilang_form_field(form, :name) = multilang_form_field(form, :name)
= form.text_field :number = form.text_field :number, required: false
.row .row
= form.collection_radio_buttons(:principle_id, Principle.all.sort_by(&:t_name), :id, :t_name) { |b| b.label(class: "col-md-2") { b.radio_button + b.text } } = form.collection_radio_buttons(:principle_id, Principle.all.sort_by(&:t_name), :id, :t_name) { |b| b.label(class: "col-md-2") { b.radio_button + b.text } }
= form.collection_check_boxes :standard_ids, Standard.all.sort_by{ _1.t_name.downcase }, :id, :t_name, include_blank: true = form.collection_check_boxes :standard_ids, Standard.all.sort_by{ _1.t_name.downcase }, :id, :t_name, include_blank: true

View file

@ -0,0 +1,6 @@
class ChangeChecksNumberNullToFalse < ActiveRecord::Migration[7.2]
def change
change_column :checks, :number, :bigint, null: false
change_column :checks, :external_url, :string, null: true
end
end

4
db/schema.rb generated
View file

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.2].define(version: 2024_08_30_134641) do ActiveRecord::Schema[7.2].define(version: 2024_09_11_230623) do
create_table "action_text_rich_texts", force: :cascade do |t| create_table "action_text_rich_texts", force: :cascade do |t|
t.string "name", null: false t.string "name", null: false
t.text "body" t.text "body"
@ -73,7 +73,7 @@ ActiveRecord::Schema[7.2].define(version: 2024_08_30_134641) do
t.integer "level" t.integer "level"
t.datetime "created_at", null: false t.datetime "created_at", null: false
t.datetime "updated_at", null: false t.datetime "updated_at", null: false
t.integer "number" t.bigint "number", null: false
t.string "name_de" t.string "name_de"
t.string "name_en" t.string "name_en"
t.boolean "visual", default: false, null: false t.boolean "visual", default: false, null: false

View file

@ -21,7 +21,7 @@ class ChecksControllerTest < ActionDispatch::IntegrationTest
test "should create check" do test "should create check" do
assert_difference("Check.count") do assert_difference("Check.count") do
post checks_url, post checks_url,
params: { check: { principle_id: @principle.id, level: @check.level, name_de: @check.name_de, position: @check.position, params: { check: { principle_id: @principle.id, number: Check.maximum(:number) + 1, level: @check.level, name_de: @check.name_de, position: @check.position,
criterion_de: @check.criterion_de } } criterion_de: @check.criterion_de } }
end end

View file

@ -4,13 +4,16 @@ one:
position: MyString position: MyString
name: MyString name: MyString
level: 1 level: 1
number: 1
two: two:
position: MyString position: MyString
name: MyString name: MyString
level: 1 level: 1
number: 2
deletable: deletable:
position: MyString position: MyString
name: MyString name: MyString
level: 1 level: 1
number: 3