diff --git a/app/controllers/entries_controller.rb b/app/controllers/entries_controller.rb
index e1ee5f6..1e6fb76 100644
--- a/app/controllers/entries_controller.rb
+++ b/app/controllers/entries_controller.rb
@@ -174,7 +174,8 @@ class EntriesController < ApplicationController
:entry_art,
:distance_km,
:beschreibung,
- :kosten
+ :kosten,
+ :zaehlt_als_fortbildung
)
end
diff --git a/app/models/entry.rb b/app/models/entry.rb
index ef6abb6..2210eb4 100644
--- a/app/models/entry.rb
+++ b/app/models/entry.rb
@@ -40,12 +40,16 @@ class Entry < ApplicationRecord
end
def self.total_fortbildungskosten_by_year(user)
- where(user: user, entry_art: 'Fortbildung')
- .where.not(kosten: nil)
- .group(Arel.sql("DATE_PART('year', date)"))
- .order(Arel.sql("DATE_PART('year', date) DESC"))
- .pluck(Arel.sql("DATE_PART('year', date)::int"), Arel.sql("SUM(kosten)"))
- .to_h
+ where(user: user)
+ .where.not(kosten: nil)
+ .where(
+ Entry.arel_table[:entry_art].eq('Fortbildung')
+ .or(Entry.arel_table[:zaehlt_als_fortbildung].eq(true))
+ )
+ .group(Arel.sql("DATE_PART('year', date)"))
+ .order(Arel.sql("DATE_PART('year', date) DESC"))
+ .pluck(Arel.sql("DATE_PART('year', date)::int"), Arel.sql("SUM(kosten)"))
+ .to_h
end
def self.total_selbsterfahrungskosten_by_year(user)
diff --git a/app/views/entries/_form.html.erb b/app/views/entries/_form.html.erb
index b94d96f..8e9ca66 100644
--- a/app/views/entries/_form.html.erb
+++ b/app/views/entries/_form.html.erb
@@ -122,6 +122,15 @@
<%= form.label :kosten, 'Kosten (z. B. Teilnahmegebühr)', class: 'form-label' %>
<%= form.number_field :kosten, class: 'form-control', min: 0, step: 0.01 %>
+
+
+
+ <%= form.check_box :zaehlt_als_fortbildung, class: "form-check-input" %>
+ <%= form.label :zaehlt_als_fortbildung, "Zählt als Fortbildung", class: "form-check-label" %>
+
+
+
+
diff --git a/app/views/entries/index.html.erb b/app/views/entries/index.html.erb
index a940dac..149e801 100644
--- a/app/views/entries/index.html.erb
+++ b/app/views/entries/index.html.erb
@@ -182,6 +182,7 @@
Kilometer |
Pauschale |
Kosten |
+ Zählt als Fortbildung |
Aktionen |
@@ -209,7 +210,9 @@
<%= number_to_currency(entry.kosten, unit: "€", separator: ",", delimiter: ".") %>
|
-
+
+ <%= check_box_tag "fortbildung_#{entry.id}", '1', entry.zaehlt_als_fortbildung, disabled: true %>
+ |
<%= link_to 'Bearbeiten', edit_entry_path(entry), class: 'btn btn-sm btn-outline-primary' %>
diff --git a/db/migrate/20251118081233_add_zaehlt_als_fortbildung_to_entries.rb b/db/migrate/20251118081233_add_zaehlt_als_fortbildung_to_entries.rb
new file mode 100644
index 0000000..0489bbd
--- /dev/null
+++ b/db/migrate/20251118081233_add_zaehlt_als_fortbildung_to_entries.rb
@@ -0,0 +1,5 @@
+class AddZaehltAlsFortbildungToEntries < ActiveRecord::Migration[7.1]
+ def change
+ add_column :entries, :zaehlt_als_fortbildung, :boolean, default: false, null: false
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index a7847db..976d247 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema[7.1].define(version: 2025_11_18_075147) do
+ActiveRecord::Schema[7.1].define(version: 2025_11_18_081233) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -29,6 +29,7 @@ ActiveRecord::Schema[7.1].define(version: 2025_11_18_075147) do
t.datetime "start_time"
t.datetime "end_time"
t.integer "lunch_break_minutes", default: 0
+ t.boolean "zaehlt_als_fortbildung", default: false, null: false
t.index ["user_id"], name: "index_entries_on_user_id"
end
diff --git a/test_mail.rb b/test_mail.rb
new file mode 100644
index 0000000..c9b9d73
--- /dev/null
+++ b/test_mail.rb
@@ -0,0 +1,27 @@
+require 'mail'
+
+Mail.defaults do
+ delivery_method :smtp, {
+ address: "smtp.ionos.de",
+ port: 587,
+ domain: "marzell.net",
+ :user_name => 'praktikum@marzell.net',
+ :password => 'CSSABXGRhSzUFK9',
+ authentication: "plain",
+ enable_starttls_auto: true
+ }
+end
+
+mail = Mail.new do
+ from 'praktikum@marzell.net'
+ to 'christoph@marzell.net'
+ subject 'Testmail von Ruby SMTP'
+ body 'Hallo! Dies ist ein SMTP-Test direkt aus Ruby.'
+end
+
+begin
+ mail.deliver!
+ puts "✅ Mail wurde erfolgreich gesendet!"
+rescue => e
+ puts "❌ Fehler beim Senden: #{e.message}"
+end
|