From 75083064d76b746459c56089e4135998a0522bd4 Mon Sep 17 00:00:00 2001 From: Andreas Stephanides Date: Wed, 13 Nov 2013 11:05:04 +0100 Subject: [PATCH] nettere Kalendereinttragsbearbeitung --- app/controllers/calentries_controller.rb | 59 ++++++++++--------- app/models/calentry.rb | 3 +- app/models/neuigkeit.rb | 7 ++- app/views/calentries/_calentry.html.erb | 5 ++ app/views/calentries/_nested_fields.html.erb | 9 +++ app/views/neuigkeiten/_form.html.erb | 29 ++++++--- public/icon_kalender_small.png | Bin 0 -> 2012 bytes 7 files changed, 73 insertions(+), 39 deletions(-) create mode 100644 app/views/calentries/_calentry.html.erb create mode 100644 app/views/calentries/_nested_fields.html.erb create mode 100644 public/icon_kalender_small.png diff --git a/app/controllers/calentries_controller.rb b/app/controllers/calentries_controller.rb index 7e0c537..6b488e1 100644 --- a/app/controllers/calentries_controller.rb +++ b/app/controllers/calentries_controller.rb @@ -2,14 +2,14 @@ class CalentriesController < ApplicationController # GET /calentries # GET /calentries.json load_and_authorize_resource - def index - @calentries = Calentry.all + # def index + # @calentries = Calentry.all - respond_to do |format| - format.html # index.html.erb - format.json { render json: @calentries } - end - end + # respond_to do |format| + # format.html # index.html.erb + # format.json { render json: @calentries } + # end + # end # GET /calentries/1 # GET /calentries/1.json @@ -25,35 +25,36 @@ class CalentriesController < ApplicationController # GET /calentries/new # GET /calentries/new.json - def new - @calentry = Calentry.new + # def new + # @calentry = Calentry.new - respond_to do |format| - format.html # new.html.erb - format.json { render json: @calentry } - end - end + # respond_to do |format| + # format.html # new.html.erb + # format.json { render json: @calentry } + # end + # end # GET /calentries/1/edit - def edit - @calentry = Calentry.find(params[:id]) - end + #def edit + # @calentry = Calentry.find(params[:id]) + + # end # POST /calentries # POST /calentries.json - def create - @calentry = Calentry.new(params[:calentry]) + # def create + # @calentry = Calentry.new(params[:calentry]) - respond_to do |format| - if @calentry.save - format.html { redirect_to @calentry, notice: 'Calentry was successfully created.' } - format.json { render json: @calentry, status: :created, location: @calentry } - else - format.html { render action: "new" } - format.json { render json: @calentry.errors, status: :unprocessable_entity } - end - end - end +# respond_to do |format| +# if @calentry.save +# format.html { redirect_to @calentry, notice: 'Calentry was successfully created.' } +# format.json { render json: @calentry, status: :created, location: @calentry } +# else + # format.html { render action: "new" } +# format.json { render json: @calentry.errors, status: :unprocessable_entity } +# end +# end +# end # PUT /calentries/1 # PUT /calentries/1.json diff --git a/app/models/calentry.rb b/app/models/calentry.rb index e8f8ef4..9057992 100644 --- a/app/models/calentry.rb +++ b/app/models/calentry.rb @@ -15,8 +15,9 @@ class Calentry < ActiveRecord::Base attr_accessible :ende, :start, :summary, :typ,:calendar_ids, :calendar, :dauer belongs_to :calendar - belongs_to :neuigkeit + #belongs_to :neuigkeit validates :start, :presence => true + validates :object, :presence => true validates :typ, :presence => true before_save :get_public belongs_to :object, polymorphic: true # Objekt zu dem der Calentry gehört (derzeit ein Newsartikel) diff --git a/app/models/neuigkeit.rb b/app/models/neuigkeit.rb index e957fe1..d15cf71 100755 --- a/app/models/neuigkeit.rb +++ b/app/models/neuigkeit.rb @@ -20,13 +20,13 @@ class Neuigkeit < ActiveRecord::Base validates :rubrik, :presence=>true validates :author, :presence=>true translates :title,:text, :versioning=>true, :fallbacks_for_empty_translations => true - has_one :calentry + has_one :calentry, inverse_of: :object mount_uploader :picture, PictureUploader scope :published, -> {where("datum <= ? AND datum IS NOT NULL", Time.now.to_date).order(:datum).reverse_order} scope :recent, -> { published.where("updated_at >= ? ",Time.now - 7.days)} scope :unpublished, -> {where("datum >= ? OR datum IS NULL", Date.today)} scope :public, ->{includes(:rubrik).where("rubriken.public"=>:true)} -accepts_nested_attributes_for :calentry +accepts_nested_attributes_for :calentry, :allow_destroy=>true def datum_nilsave self.datum.nil? ? Time.now + 42.years : self.datum end @@ -39,6 +39,9 @@ accepts_nested_attributes_for :calentry def reverse_publish self.datum = nil end + def name +self.title +end def text_first_words md = /

(?[\w\s,\.!\?]*)/.match self.text md[:text].split(" ")[0..100].join(" ")+ " ..." diff --git a/app/views/calentries/_calentry.html.erb b/app/views/calentries/_calentry.html.erb new file mode 100644 index 0000000..37e4989 --- /dev/null +++ b/app/views/calentries/_calentry.html.erb @@ -0,0 +1,5 @@ +

+<%= image_tag("/icon_kalender_small.png") %> + +<%= link_to I18n.l(calentry.start) +" bis "+ I18n.l(calentry.ende), calendar_path(calentry.calendar) %> +
diff --git a/app/views/calentries/_nested_fields.html.erb b/app/views/calentries/_nested_fields.html.erb new file mode 100644 index 0000000..b678357 --- /dev/null +++ b/app/views/calentries/_nested_fields.html.erb @@ -0,0 +1,9 @@ +
+
+<%= image_tag("/icon_kalender_small.png") %> +
+
+ <%= f.input :start, :as => :datepicker %>
+ <%= f.input :dauer , :as => :string, :append=>"h" %>
+ <%= f.input :typ %>
<%= f.check_box :_destroy %>
+
diff --git a/app/views/neuigkeiten/_form.html.erb b/app/views/neuigkeiten/_form.html.erb index 3956dfd..879cd8d 100755 --- a/app/views/neuigkeiten/_form.html.erb +++ b/app/views/neuigkeiten/_form.html.erb @@ -1,17 +1,31 @@ <%= tinymce_assets %> +
<%= semantic_form_for [@neuigkeit.rubrik,@neuigkeit] do |f| %> <%= f.inputs do %> +
+
<%= f.input :title, :placeholder=> "Titel" %> <%= f.input :text, :as=> :tinymce_text %> - <% f.input :datum, :as=> :datepicker %> +
+
+
+
+ <% f.input :datum, :as=> :datepicker %> <%= f.input :rubrik, :as=> :radio, :collection=>Rubrik.all %> - <%= f.input :author, :as=> :radio %> - <%= f.input :picture, :as=> :file %> - <% unless @neuigkeit.calentry.nil? %> +
+
+ <%= f.input :author, :as=> :select %> +
+
+
+ <%= f.input :picture, :as=> :file %> +
+ + <% unless @neuigkeit.calentry.nil? %> + + <%= f.inputs :for => :calentry do |calentry| %> - <%= calentry.input :start, :as => :datepicker %> - <%= calentry.input :dauer , :as => :string %> - <%= calentry.input :typ %> + <%= render 'calentries/nested_fields', :f => calentry %> <% end %> <% end %> <% end %> @@ -19,5 +33,6 @@ <%= f.action :submit, :as => :input %> <% end %> <% end %> +
<%= tinymce %> diff --git a/public/icon_kalender_small.png b/public/icon_kalender_small.png new file mode 100644 index 0000000000000000000000000000000000000000..831448974034147be7716194a80583f6fe08d17f GIT binary patch literal 2012 zcmV<22P622P)<~SV*REe+b>K5BnqONaP$(2wzI-{07A+!!Vn}5PD-*v|4F9tq-Dj}0sfpg+UNl`N z5C{+m1h{tX8q1a~BN~medGlr(8X9JV?*X+G+_}|9$IyrT{a!amns*gLpzAuW>r%+& zI2+27|MoiY6es~Bcd?J2$FY65%N7uJJiKfcVOoSLZ6t7Sc$n8-eU-_nDNda__3(o$ z$iLIZyz~crN&6)$QVj$vD~bdFg25o!Yz_=(8eAb<4~zf_pO5Z_2ySu#7&=Hm0j%P~ zzg*^pntHm&K4!i%?-8mia%Z-qPyCI7&t`OFoUcE>4bwF56Np42Or%l>U4keAC`}*& z7JY4BDZVhKk-bs^xmfWkj>s|ctxFlS{0{;5$eno+J$(f%i$C7|0UI`M!RPbcuL6Lo zsw(W5$egeV;mr3uiW$O=G$l+#2dna?$X6bLCu%b8`Wl)^c)19R%H2+QQ~;7&Gf z-hyRWGs_Sl9*!;o?xhqfjUS0?&1ErA`4!UTPGSM_%*5b3u7v z=;UPKKKR)mVobdUrpE94cd~iggWwM+pnzmfaHL`xxm>oqNz*iRT}MiZQVJ<0Qp)ms zuV|(q1i6C3y|@P>{Vqxq9R6qro3?%9q2QFY1sWS0@%#N`vsqlvMQR#S)6flrlW)Gs zm!Ex>r=NL-mv`;LFim`x#jo4jd8)Ay%d#*G1I_T0xv&Q#^)?DP-2Xi`ZEM5t_dn7b z$^>lNMk$3-iqX;0=>rL*l`<#`+(_%6?H`S0K}Lg4rN@w{Svjg5^Fi^UK^AcWxT*|Q`P34A^u3l=OOoldi9 z(tYWHOm@jD-+H zqfz$k*~8__m$591*49=G!ypg{pqW98Yp)PlmBP)tyxzNk7j}MUR^T&2P*OlC#qjVj znx>VLP1kjXhlg3RWC@Prux8B~48tJn3XcDxnGK)M;N}XvetkVFTi4DS`~d|@&NVhR zRwf{XK+`mi9Xo~)f{hzDa`ECtZubvSpM8txR*sOH$nn!ZKgHG^8?Y>kbUIBa6nZ=Y ze!m~rEgH$-;9yyPAq1VBoz&FS;JPkdU0ndwO}#}`_D|%e9KQOB$G;|S@bb^&OioTR zHa7P71WI)dkj-Y%b-i5kw{G2H-@bhSG%f!uZ~VB0WbPzhHb>{p=h*+-tyEN0FgZDi z5CX?>W*q|gpAVr>2&GiflBeS@rR2bY1Ef+Z##3p|{q9?=jJ}V`Ivna6(UamqiDQX(}S_r`IO`J>=Wv8BV}%#}A#>JYJ5jGCGnVzC%K zJv~%cR}+au2#3S7Qep;yXf%pxnnk(C#~B$J;lzm(}C%1VO4Af{m#{er=H4}+Mid}CyKXhG3(=<%eBp3`*U0qEm6v8ykSzlsi5SW;l;P&m? zI8K&IV}OzVD|8RcqrRa5pU+orR;5z2ZJSsuhCV&2myGL)70BoF+`W63k&%16|K0^w ztXN4^G>YrGD5VfW5Dte4hr<|#fe?aJD#hsND2YU(Z0Ao*z;#{5$HyrY3Mi%UJP#=) z6%`d&mi0hpkB*MwI1Y(K;)$cOUs+P66sc6ItVUH;6}D}co7Mkx uH~gecN~!WCw4_YQDN8fsr%K?{T>l0vfBx{?>3K5%0000+tJ literal 0 HcmV?d00001