From c17ff281c322da9ddae3ec3f6b00a0081e8bbb52 Mon Sep 17 00:00:00 2001 From: Julius Date: Mon, 12 Nov 2012 14:24:49 +0100 Subject: [PATCH] Save and display creator of Order --- app/controllers/orders_controller.rb | 2 +- app/helpers/application_helper.rb | 6 ++++++ app/models/order.rb | 6 +++++- app/models/user.rb | 1 + app/views/ordering/_order_head.haml | 3 +++ app/views/ordering/my_order_result.haml | 3 +++ app/views/orders/show.haml | 5 ++++- db/schema.rb | 3 ++- 8 files changed, 25 insertions(+), 4 deletions(-) diff --git a/app/controllers/orders_controller.rb b/app/controllers/orders_controller.rb index c9bb0de7..053a0646 100644 --- a/app/controllers/orders_controller.rb +++ b/app/controllers/orders_controller.rb @@ -172,4 +172,4 @@ class OrdersController < ApplicationController end redirect_to order end -end \ No newline at end of file +end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 5ea4120c..fbf40827 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -154,5 +154,11 @@ module ApplicationHelper link_to h(address), "http://maps.google.de/?q=#{h(address)}", :title => "Show it on google maps", :target => "_blank" end + + # offers a link for writing message to user + # checks for nil (useful for relations) + def link_to_user_message_if_valid(user) + user.nil? ? '??' : ( link_to user.nick, user_message_path(user), :title => _('Nachricht schreiben') ) + end end diff --git a/app/models/order.rb b/app/models/order.rb index f154501f..2f49345a 100644 --- a/app/models/order.rb +++ b/app/models/order.rb @@ -11,13 +11,17 @@ class Order < ActiveRecord::Base has_many :comments, :class_name => "OrderComment", :order => "created_at" has_many :stock_changes belongs_to :supplier - belongs_to :updated_by, :class_name => "User", :foreign_key => "updated_by_user_id" + belongs_to :updated_by, :class_name => 'User', :foreign_key => 'updated_by_user_id' + belongs_to :created_by, :class_name => 'User', :foreign_key => 'created_by_user_id' # Validations validates_presence_of :starts validate :starts_before_ends, :include_articles # Callbacks + before_create do |order| + order.created_by = User.current_user + end after_update :update_price_of_group_orders # Finders diff --git a/app/models/user.rb b/app/models/user.rb index 81b80e9f..3011d2a4 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -11,6 +11,7 @@ class User < ActiveRecord::Base has_many :tasks, :through => :assignments has_many :send_messages, :class_name => "Message", :foreign_key => "sender_id" has_many :pages, :foreign_key => 'updated_by' + has_many :created_orders, :class_name => 'Order', :foreign_key => 'created_by_user_id', :dependent => :nullify attr_accessor :password, :setting_attributes diff --git a/app/views/ordering/_order_head.haml b/app/views/ordering/_order_head.haml index 126fe200..ada44597 100644 --- a/app/views/ordering/_order_head.haml +++ b/app/views/ordering/_order_head.haml @@ -10,6 +10,9 @@ %p %b Lieferantin: =h @order.name + %p + %b Erstellt von: + =h link_to_user_message_if_valid(@order.created_by) %p %b Ende: =h format_time(@order.ends) diff --git a/app/views/ordering/my_order_result.haml b/app/views/ordering/my_order_result.haml index 14d5b6c7..2177d73c 100644 --- a/app/views/ordering/my_order_result.haml +++ b/app/views/ordering/my_order_result.haml @@ -32,6 +32,9 @@ %p Notiz: =h @order.note + %p + Erstellt von: + =h link_to_user_message_if_valid(@order.created_by) %p Ende: %b=h format_time(@order.ends) diff --git a/app/views/orders/show.haml b/app/views/orders/show.haml index 7d16b185..77b3629e 100644 --- a/app/views/orders/show.haml +++ b/app/views/orders/show.haml @@ -21,6 +21,9 @@ %p Notiz: =h @order.note + %p + Erstellt von: + =h link_to_user_message_if_valid(@order.created_by) %p Beginn: %b=h format_time(@order.starts) @@ -90,4 +93,4 @@ %br/ = submit_tag "Kommentar hinzufügen" - = link_to_top \ No newline at end of file + = link_to_top diff --git a/db/schema.rb b/db/schema.rb index 0e034bbd..033e1ef6 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -9,7 +9,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20120622094337) do +ActiveRecord::Schema.define(:version => 20121112093327) do create_table "article_categories", :force => true do |t| t.string "name", :default => "", :null => false @@ -234,6 +234,7 @@ ActiveRecord::Schema.define(:version => 20120622094337) do t.integer "lock_version", :default => 0, :null => false t.integer "updated_by_user_id" t.decimal "foodcoop_result", :precision => 8, :scale => 2 + t.integer "created_by_user_id" end add_index "orders", ["state"], :name => "index_orders_on_state"