Module: InstanceMethods_for

Defined in:
lib/aslon_scaffold/aslon_scaffold.rb

Instance Method Summary collapse

Instance Method Details

#aslon_render(action) ⇒ Object



213
214
215
216
217
218
219
220
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 213

def aslon_render(action)
    render :action=>"#{action}"
    begin

  rescue
     render "aslon_scaffolds/#{action}"
  end
end

#aslon_render_partial(action) ⇒ Object



221
222
223
224
225
226
227
228
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 221

def aslon_render_partial(action)
  begin
    render :partial=>"#{action}", :layout=>false

  rescue
     render :partial=>"aslon_scaffolds/#{action}", :layout=>false
  end
end

#conditionObject



171
172
173
174
175
176
177
178
179
180
181
182
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 171

def condition
    cond=''
    #todo
    if params[:XXXXXXXXXX_id]
      cond+="XXXXXXXXXX_id="+[params[:XXXXXXXXXX_id]].to_s
    end
    if cond ==''
      return '1=1'
    else
      return cond
    end
end

#createObject



137
138
139
140
141
142
143
144
145
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 137

def create
eval "@as_objet=@#{objet_name} = #{model_name}.new(params[:#{objet_name}])
      if @#{objet_name}.save
        flash[:notice] = t('views.messages.ok_created', :model=>#{model_name}.to_s)
        (block_given?) ? yield : redirect_to(:action => 'index')
      else
        aslon_render('new_edit')
      end"
end

#destroyObject



157
158
159
160
161
162
163
164
165
166
167
168
169
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 157

def destroy
 eval"
   @#{objet_name} = #{model_name}.find(params[:id])
    count=#{model_name}.count
    @#{objet_name}.destroy
    if (count > #{model_name}.count)
      flash[:notice] = t('views.messages.ok_deleted', :model=>#{model_name}.model_name.human)
      (block_given?) ? yield : redirect_to(#{objet_name.pluralize}_url)
    else
      flash[:error] = t('views.messages.ko_deleted', :model=>#{model_name}.model_name.human)
      aslon_render('show')
    end"
end

#editObject



125
126
127
128
129
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 125

def edit
  eval "@as_objet=@#{objet_name} = #{model_name}.find(params[:id])"
  yield if block_given?
  aslon_render('new_edit')
end

#indexObject



107
108
109
110
111
112
113
114
115
116
117
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 107

def index
   eval "
  if params[:order]
   @#{objet_names} = #{model_name}.paginate :page => params[:page], :order=>'#{params[:order]} #{params[:sens]}', :conditions => [condition]
  else
    @#{objet_names} = #{model_name}.paginate(:page => params[:page], :conditions => [condition])
  end"
#   @clients = Client.paginate(:page =>1)
  yield if block_given?
  aslon_render("index")
end

#initializeObject



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 90

def initialize
  @as_options=as_options
begin
 @as_options[:display_columns]  = eval "#{model_name}.column_names-self.config_removed_columns"     if !@as_options[:display_columns]
 @as_options[:search_fields] ||= eval "#{model_name}.columns.map { |o|  (o.type==:string || o.type==:text) ? o.name : 'no'} -%w(no)"
rescue
end

  @as_options[:edit_fields] ||= @as_options[:display_columns]
  @as_options[:show_fields] ||= @as_options[:edit_fields]
  @as_options[:legend] ||= model_name
   @objet_name=objet_name
  @model_name=model_name
 #    : Langue.columns.each { |o| puts a+=[o.name] if (o.type==:string )
  super
end

#model_nameObject

private



200
201
202
203
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 200

def model_name
 # self.controller_name.singularize.camelize
  self.class.to_s.gsub('sController','')
end

#newObject



131
132
133
134
135
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 131

def new
  eval "@as_objet=@#{objet_name} = #{model_name}.new"
  yield if block_given?
  aslon_render('new_edit')
end

#objet_nameObject



205
206
207
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 205

def objet_name
  model_name.underscore.downcase.gsub('/','_')
end

#objet_namesObject



209
210
211
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 209

def objet_names
  objet_name.pluralize
end

#searchObject



184
185
186
187
188
189
190
191
192
193
194
195
196
197
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 184

def search
  #todo : bug trie après search réalisé
search_field=@as_options[:search_fields]

first_part_condition=""
search_field.each {|field| first_part_condition += "LOWER(#{field}) LIKE ? or "}
first_part_condition.chop!.chop!.chop!
last_part_condition=", '%#{params[:search]}%'"
all_part_condition=  "' (#{first_part_condition}) and (#{condition}) '" +last_part_condition*search_field.size

   eval  "@#{objet_name.pluralize}=#{model_name}.paginate(:page => params[:page], :conditions => [#{all_part_condition}], :order=>'id')"

 aslon_render_partial('search')
end

#showObject



119
120
121
122
123
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 119

def show
  eval "  @#{objet_name} = #{model_name}.find(params[:id])"
   yield if block_given?
   aslon_render("show")
end

#updateObject



147
148
149
150
151
152
153
154
155
# File 'lib/aslon_scaffold/aslon_scaffold.rb', line 147

def update
eval "@as_objet= @#{objet_name} = #{model_name}.find(params[:id])
      if @#{objet_name}.update_attributes(params[:#{objet_name}])
        flash[:notice] = t('views.messages.ok_updated',:model=>#{model_name}.model_name.human)
        (block_given?) ? yield : redirect_to(:action => 'index')
      else
         aslon_render('new_edit')
      end"
end