integration of the new MVC for subproject_addresses
This commit is contained in:
49
app/controllers/subproject_addresses_controller.rb
Normal file
49
app/controllers/subproject_addresses_controller.rb
Normal file
@@ -0,0 +1,49 @@
|
||||
class SubprojectAddressesController < ApplicationController
|
||||
before_action :set_subproject_address, only: %i[show edit update destroy]
|
||||
|
||||
def index
|
||||
@subproject_addresses = SubprojectAddress.all
|
||||
end
|
||||
|
||||
def show
|
||||
end
|
||||
|
||||
def new
|
||||
@subproject_address = SubprojectAddress.new
|
||||
end
|
||||
|
||||
def edit
|
||||
end
|
||||
|
||||
def create
|
||||
@subproject_address = SubprojectAddress.new(subproject_address_params)
|
||||
if @subproject_address.save
|
||||
redirect_to @subproject_address, notice: "Adresse was successfully created."
|
||||
else
|
||||
render :new, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def update
|
||||
if @subproject_address.update(subproject_address_params)
|
||||
redirect_to @subproject_address, notice: "Adresse was successfully updated."
|
||||
else
|
||||
render :edit, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
@subproject_address.destroy
|
||||
redirect_to subproject_addresses_url, notice: "Adresse was successfully destroyed."
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_subproject_address
|
||||
@subproject_address = SubprojectAddress.find(params[:id])
|
||||
end
|
||||
|
||||
def subproject_address_params
|
||||
params.require(:subproject_address).permit(:subproject_id, :streetname, :zipcode, :city, :country)
|
||||
end
|
||||
end
|
||||
5
app/models/subproject_address.rb
Normal file
5
app/models/subproject_address.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
class SubprojectAddress < ApplicationRecord
|
||||
belongs_to :subproject
|
||||
|
||||
validates :streetname, :zipcode, :city, :country, presence: true
|
||||
end
|
||||
24
app/views/subproject_addresses/_form.html.erb
Normal file
24
app/views/subproject_addresses/_form.html.erb
Normal file
@@ -0,0 +1,24 @@
|
||||
<%= form_with(model: subproject_address) do |form| %>
|
||||
<% if subproject_address.errors.any? %>
|
||||
<div style="color: red">
|
||||
<h2><%= pluralize(subproject_address.errors.count, "error") %> prohibited this client from being saved:</h2>
|
||||
|
||||
<ul>
|
||||
<% subproject_address.errors.each do |error| %>
|
||||
<li><%= error.full_message %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<% [:streetname, :zipcode, :city, :country].each do |attrib| %>
|
||||
<div>
|
||||
<%= form.label attrib, style: "display: block" %>
|
||||
<%= form.text_field attrib %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div>
|
||||
<%= form.submit %>
|
||||
</div>
|
||||
<% end %>
|
||||
22
app/views/subproject_addresses/_subproject_address.erb
Normal file
22
app/views/subproject_addresses/_subproject_address.erb
Normal file
@@ -0,0 +1,22 @@
|
||||
<div id="<%= dom_id subproject_address %>">
|
||||
<p>
|
||||
<strong>Streetname:</strong>
|
||||
<%= subproject_address.streetname %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Zipcode:</strong>
|
||||
<%= subproject_address.zipcode %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>City:</strong>
|
||||
<%= subproject_address.city %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Country:</strong>
|
||||
<%= subproject_address.country %>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
12
app/views/subproject_addresses/edit.html.erb
Normal file
12
app/views/subproject_addresses/edit.html.erb
Normal file
@@ -0,0 +1,12 @@
|
||||
<% content_for :title, "Editing subproject address" %>
|
||||
|
||||
<h1>Editing subproject address</h1>
|
||||
|
||||
<%= render "form", subproject_address: @subproject_address %>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<%= link_to "Show this subproject address", @subproject_address %> |
|
||||
<%= link_to "Back to subproject addresses", subproject_addresses_path %>
|
||||
</div>
|
||||
18
app/views/subproject_addresses/index.html.erb
Normal file
18
app/views/subproject_addresses/index.html.erb
Normal file
@@ -0,0 +1,18 @@
|
||||
<p style="color: green"><%= notice %></p>
|
||||
|
||||
<% content_for :title, "Subproject addresses" %>
|
||||
|
||||
<h1>Subproject addresses</h1>
|
||||
|
||||
<div id="subproject_addresses">
|
||||
<% @subproject_addresses.each do |subproject_address| %>
|
||||
<%= render subproject_address %>
|
||||
<p>
|
||||
<%= link_to "Show this subproject address", subproject_address %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= link_to "New subproject address", new_subproject_address_path %>
|
||||
|
||||
<%= link_to "Back to main", "/" %>
|
||||
11
app/views/subproject_addresses/new.html.erb
Normal file
11
app/views/subproject_addresses/new.html.erb
Normal file
@@ -0,0 +1,11 @@
|
||||
<% content_for :title, "New subproject address" %>
|
||||
|
||||
<h1>New subproject address</h1>
|
||||
|
||||
<%= render "form", subproject_address: @subproject_address %>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<%= link_to "Back to subproject addresses", subproject_addresses_path %>
|
||||
</div>
|
||||
10
app/views/subproject_addresses/show.html.erb
Normal file
10
app/views/subproject_addresses/show.html.erb
Normal file
@@ -0,0 +1,10 @@
|
||||
<p style="color: green"><%= notice %></p>
|
||||
|
||||
<%= render @subproject_address %>
|
||||
|
||||
<div>
|
||||
<%= link_to "Edit this subproject address", edit_subproject_address_path(@subproject_address) %> |
|
||||
<%= link_to "Back to subproject addresses", subproject_addresses_path %>
|
||||
|
||||
<%= button_to "Destroy this subproject address", @subproject_address, method: :delete %>
|
||||
</div>
|
||||
@@ -1,6 +1,7 @@
|
||||
Rails.application.routes.draw do
|
||||
resources :clients
|
||||
resources :subprojects
|
||||
resources :subproject_addresses
|
||||
resources :projects
|
||||
# Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html
|
||||
|
||||
|
||||
13
db/migrate/20250722152542_create_subproject_addresses.rb
Normal file
13
db/migrate/20250722152542_create_subproject_addresses.rb
Normal file
@@ -0,0 +1,13 @@
|
||||
class CreateSubprojectAddresses < ActiveRecord::Migration[8.0]
|
||||
def change
|
||||
create_table :subproject_addresses do |t|
|
||||
t.string :streetname
|
||||
t.string :zipcode
|
||||
t.string :city
|
||||
t.string :country
|
||||
t.text :notes
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
||||
12
db/schema.rb
generated
12
db/schema.rb
generated
@@ -10,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema[8.0].define(version: 2025_07_21_145904) do
|
||||
ActiveRecord::Schema[8.0].define(version: 2025_07_22_152542) do
|
||||
create_table "clients", force: :cascade do |t|
|
||||
t.string "company_name"
|
||||
t.string "firstname"
|
||||
@@ -36,6 +36,16 @@ ActiveRecord::Schema[8.0].define(version: 2025_07_21_145904) do
|
||||
t.datetime "order_date"
|
||||
end
|
||||
|
||||
create_table "subproject_addresses", force: :cascade do |t|
|
||||
t.string "streetname"
|
||||
t.string "zipcode"
|
||||
t.string "city"
|
||||
t.string "country"
|
||||
t.text "notes"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
end
|
||||
|
||||
create_table "subprojects", force: :cascade do |t|
|
||||
t.string "subproject_name"
|
||||
t.integer "project_id", null: false
|
||||
|
||||
Reference in New Issue
Block a user