mdwa_endereco 0.0.1 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +6 -5
  3. data/Gemfile.lock +135 -0
  4. data/README.md +42 -17
  5. data/lib/generators/mdwa_endereco/install/install_generator.rb +85 -0
  6. data/lib/generators/mdwa_endereco/install/templates/assets/js/endereco.js +35 -0
  7. data/lib/generators/mdwa_endereco/install/templates/db/seeds.rb +5605 -0
  8. data/lib/generators/mdwa_endereco/install/templates/entidades/cidade.rb +32 -0
  9. data/lib/generators/mdwa_endereco/install/templates/entidades/endereco.rb +26 -0
  10. data/lib/generators/mdwa_endereco/install/templates/entidades/estado.rb +20 -0
  11. data/lib/generators/mdwa_endereco/install/templates/locales/mdwa.endereco.en.yml +105 -0
  12. data/lib/generators/mdwa_endereco/install/templates/locales/mdwa.endereco.pt-BR.yml +105 -0
  13. data/lib/generators/mdwa_endereco/install/templates/requisitos/armazenar_enderecos.rb +10 -0
  14. data/lib/generators/mdwa_endereco/install/templates/templates/controllers/cidades_controller.rb +167 -0
  15. data/lib/generators/mdwa_endereco/install/templates/templates/controllers/cidades_controller.rb~ +81 -0
  16. data/lib/generators/mdwa_endereco/install/templates/templates/controllers/enderecos_controller.rb +36 -0
  17. data/lib/generators/mdwa_endereco/install/templates/templates/controllers/estados_controller.rb +167 -0
  18. data/lib/generators/mdwa_endereco/install/templates/templates/controllers/estados_controller.rb~ +81 -0
  19. data/lib/generators/mdwa_endereco/install/templates/templates/helpers/cidade.rb +7 -0
  20. data/lib/generators/mdwa_endereco/install/templates/templates/helpers/endereco.rb +7 -0
  21. data/lib/generators/mdwa_endereco/install/templates/templates/helpers/estado.rb +7 -0
  22. data/lib/generators/mdwa_endereco/install/templates/templates/models/cidade.rb +14 -0
  23. data/lib/generators/mdwa_endereco/install/templates/templates/models/endereco.rb +24 -0
  24. data/lib/generators/mdwa_endereco/install/templates/templates/models/estado.rb +10 -0
  25. data/lib/generators/mdwa_endereco/install/templates/templates/models/geoposicionamento.rb +46 -0
  26. data/lib/generators/mdwa_endereco/install/templates/templates/views/cidades/_form.html.erb +18 -0
  27. data/lib/generators/mdwa_endereco/install/templates/templates/views/cidades/_form_fields.html.erb +31 -0
  28. data/lib/generators/mdwa_endereco/install/templates/templates/views/cidades/_list.html.erb +36 -0
  29. data/lib/generators/mdwa_endereco/install/templates/templates/views/cidades/create.js.erb +7 -0
  30. data/lib/generators/mdwa_endereco/install/templates/templates/views/cidades/destroy.js.erb +2 -0
  31. data/lib/generators/mdwa_endereco/install/templates/templates/views/cidades/edit.html.erb +9 -0
  32. data/lib/generators/mdwa_endereco/install/templates/templates/views/cidades/index.html.erb +53 -0
  33. data/lib/generators/mdwa_endereco/install/templates/templates/views/cidades/index.js.erb +1 -0
  34. data/lib/generators/mdwa_endereco/install/templates/templates/views/cidades/new.html.erb +9 -0
  35. data/lib/generators/mdwa_endereco/install/templates/templates/views/cidades/show.html.erb +54 -0
  36. data/lib/generators/mdwa_endereco/install/templates/templates/views/cidades/update.js.erb +12 -0
  37. data/lib/generators/mdwa_endereco/install/templates/templates/views/enderecos/_form.html.erb +18 -0
  38. data/lib/generators/mdwa_endereco/install/templates/templates/views/enderecos/_form_fields.html.erb +50 -0
  39. data/lib/generators/mdwa_endereco/install/templates/templates/views/enderecos/_form_fields_formatado.html.erb +65 -0
  40. data/lib/generators/mdwa_endereco/install/templates/templates/views/enderecos/atualizar_dados_cep.js.erb +17 -0
  41. data/lib/generators/mdwa_endereco/install/templates/templates/views/enderecos/gerar_combobox_cidade.js.erb +5 -0
  42. data/lib/generators/mdwa_endereco/install/templates/templates/views/estados/_form.html.erb +18 -0
  43. data/lib/generators/mdwa_endereco/install/templates/templates/views/estados/_form_fields.html.erb +13 -0
  44. data/lib/generators/mdwa_endereco/install/templates/templates/views/estados/_list.html.erb +31 -0
  45. data/lib/generators/mdwa_endereco/install/templates/templates/views/estados/create.js.erb +7 -0
  46. data/lib/generators/mdwa_endereco/install/templates/templates/views/estados/destroy.js.erb +2 -0
  47. data/lib/generators/mdwa_endereco/install/templates/templates/views/estados/edit.html.erb +9 -0
  48. data/lib/generators/mdwa_endereco/install/templates/templates/views/estados/index.html.erb +45 -0
  49. data/lib/generators/mdwa_endereco/install/templates/templates/views/estados/index.js.erb +1 -0
  50. data/lib/generators/mdwa_endereco/install/templates/templates/views/estados/new.html.erb +9 -0
  51. data/lib/generators/mdwa_endereco/install/templates/templates/views/estados/show.html.erb +39 -0
  52. data/lib/generators/mdwa_endereco/install/templates/templates/views/estados/update.js.erb +12 -0
  53. data/lib/mdwa_endereco.rb +1 -0
  54. data/lib/mdwa_endereco/version.rb +2 -1
  55. data/mdwa_endereco.gemspec +1 -0
  56. metadata +75 -18
@@ -0,0 +1,81 @@
1
+ # -*- encoding : utf-8 -*-
2
+ <%-
3
+ @entity = MDWA::DSL.entity('Cidade')
4
+ @model = @entity.generator_model
5
+ -%>
6
+ class A::CidadesController < A::BackendController
7
+
8
+ load_and_authorize_resource :class => "A::Cidade"
9
+
10
+ # Hook for code generations. Do not delete.
11
+ #===controller_init===
12
+
13
+ def index
14
+ @cidades = A::Cidade.paginate :page => params[:page]
15
+
16
+ respond_to do |format|
17
+ format.html
18
+ format.js
19
+ end
20
+ end
21
+
22
+
23
+ def show
24
+ @cidade = A::Cidade.find(params[:id])
25
+
26
+ render :layout => false
27
+ end
28
+
29
+ def new
30
+ @cidade = A::Cidade.new
31
+
32
+ render :layout => false
33
+ end
34
+
35
+ def edit
36
+ @cidade = A::Cidade.find(params[:id])
37
+
38
+ render :layout => false
39
+ end
40
+
41
+ def create
42
+ @cidade = A::Cidade.new(params[:a_cidade])
43
+ saved_ok = @cidade.save
44
+ @system_notice = t('cidades.create_success') if saved_ok
45
+ load_list # loads all cidades to display in the list
46
+
47
+
48
+ respond_to do |format|
49
+ format.js
50
+ end
51
+ end
52
+
53
+ def update
54
+ @cidade = A::Cidade.find(params[:id])
55
+ saved_ok = @cidade.update_attributes(params[:a_cidade])
56
+ @system_notice = t('cidades.update_success') if saved_ok
57
+ load_list # loads all cidades to display in the list
58
+
59
+
60
+ respond_to do |format|
61
+ format.js
62
+ end
63
+ end
64
+
65
+ def destroy
66
+ @cidade = A::Cidade.find(params[:id])
67
+ @system_notice = t('cidades.destroy_success') if @cidade.destroy
68
+ load_list # loads all cidades to display in the list
69
+
70
+ respond_to do |format|
71
+ format.js
72
+ end
73
+ end
74
+
75
+
76
+ private
77
+ def load_list
78
+ @cidades = A::Cidade.paginate :page => 1
79
+ end
80
+
81
+ end
@@ -0,0 +1,36 @@
1
+ # -*- encoding : utf-8 -*-
2
+ <%-
3
+ @entity = MDWA::DSL.entity('Endereco')
4
+ @model = @entity.generator_model
5
+ -%>
6
+ class A::EnderecosController < A::BackendController
7
+
8
+ load_and_authorize_resource :class => "A::Endereco"
9
+
10
+ # Hook for code generations. Do not delete.
11
+ #===controller_init===
12
+
13
+ def gerar_combobox_cidade
14
+ @estado_id = params[:estado] unless params[:estado].blank?
15
+ @cidades = A::Cidade.where( :estado_id => @estado_id )
16
+ respond_to do |format|
17
+ format.js
18
+ end
19
+ end
20
+
21
+ def atualizar_dados_cep
22
+ begin
23
+ @endereco = BuscaEndereco.por_cep(params[:cep])
24
+ @tipo = params[:endereco_tipo]
25
+
26
+ @estado = A::Estado.find_by_acronimo( @endereco[4].downcase )
27
+ @cidade = A::Cidade.where( :nome => @endereco[3], :estado_id => @estado.id ).first
28
+ rescue
29
+ end
30
+
31
+ respond_to do |format|
32
+ format.js
33
+ end
34
+ end
35
+
36
+ end
@@ -0,0 +1,167 @@
1
+ # -*- encoding : utf-8 -*-
2
+ <%-
3
+ @entity = MDWA::DSL.entity('Estado')
4
+ @model = @entity.generator_model
5
+ -%>
6
+ class <%= @model.controller_name %>Controller < <%= (@model.space == 'a') ? 'A::BackendController' : 'ApplicationController' %>
7
+
8
+ <%- if @entity.resource? -%>
9
+ load_and_authorize_resource :class => "<%= @model.klass %>"
10
+ <%- end -%>
11
+
12
+ # Hook for code generations. Do not delete.
13
+ #===controller_init===
14
+
15
+ def index
16
+ conditions = []
17
+ <%-
18
+ atributos_com_filtro = @entity.attributes.values.select {|attr| attr.options[:filtered]}
19
+ associacoes_com_filtro = @entity.associations.values.select {|assoc| assoc.options[:filtered]}
20
+ -%>
21
+ <%- if !atributos_com_filtro.count.zero? -%>
22
+ <%- atributos_com_filtro.each do |atributo| -%>
23
+ <%- if [:integer, :float, :decimal, :boolean].include? atributo.type.to_sym -%>
24
+ conditions << "(<%= @model.plural_name %>.<%= atributo.name %> = '#{params[:<%= atributo.name %>]}')" unless params[:<%= atributo.name %>].blank?
25
+ <%- elsif [:string, :text].include? atributo.type.to_sym -%>
26
+ conditions << "(<%= @model.plural_name %>.<%= atributo.name %> LIKE '%#{params[:<%= atributo.name %>]}%')" unless params[:<%= atributo.name %>].blank?
27
+ <%- elsif [:date].include? atributo.type.to_sym -%>
28
+ conditions << "(<%= @model.plural_name %>.<%= atributo.name %> BETWEEN '#{params[:<%= atributo.name %>_0].to_date}' AND '#{params[:<%= atributo.name %>_1].to_date}')" if !params[:<%= atributo.name %>_0].blank? and !params[:<%= atributo.name %>_1].blank?
29
+ conditions << "(<%= @model.plural_name %>.<%= atributo.name %> >= '#{params[:<%= atributo.name %>_0].to_date}')" if !params[:<%= atributo.name %>_0].blank? and params[:<%= atributo.name %>_0].blank?
30
+ conditions << "(<%= @model.plural_name %>.<%= atributo.name %> <= '#{params[:<%= atributo.name %>_1].to_date}')" if params[:<%= atributo.name %>_0].blank? and !params[:<%= atributo.name %>_1].blank?
31
+ <%- elsif [:datetime, :timestamp].include? atributo.type.to_sym -%>
32
+ conditions << "(<%= @model.plural_name %>.<%= atributo.name %> BETWEEN '#{params[:<%= atributo.name %>_0].to_date.beginning_of_day}' AND '#{params[:<%= atributo.name %>_1].to_date.end_of_day}')" if !params[:<%= atributo.name %>_0].blank? and !params[:<%= atributo.name %>_1].blank?
33
+ conditions << "(<%= @model.plural_name %>.<%= atributo.name %> >= '#{params[:<%= atributo.name %>_0].to_date.beginning_of_day}')" if !params[:<%= atributo.name %>_0].blank? and params[:<%= atributo.name %>_0].blank?
34
+ conditions << "(<%= @model.plural_name %>.<%= atributo.name %> <= '#{params[:<%= atributo.name %>_1].to_date.end_of_day}')" if params[:<%= atributo.name %>_0].blank? and !params[:<%= atributo.name %>_1].blank?
35
+ <%- end -%>
36
+ <%- end -%>
37
+ <%- end -%>
38
+
39
+ <%- associacoes_com_filtro.each do |associacao| -%>
40
+ conditions << "(<%= @model.plural_name %>.<%= associacao.name %>_id = #{params[:<%= associacao.name %>_id]})" unless params[:<%= associacao.name %>_id].blank?
41
+ <%- end -%>
42
+
43
+ @<%= @model.plural_name %> = <%= @model.klass %>.paginate :page => params[:page], :conditions => conditions.join(' AND ')
44
+
45
+ respond_to do |format|
46
+ format.html
47
+ format.js
48
+ end
49
+ end
50
+
51
+
52
+ def show
53
+ @<%= @model.singular_name %> = <%= @model.klass %>.find(params[:id])
54
+
55
+ <%- if @entity.ajax? -%>
56
+ render :layout => false
57
+ <%- else -%>
58
+ respond_to do |format|
59
+ format.html
60
+ end
61
+ <%- end -%>
62
+ end
63
+
64
+ def new
65
+ @<%= @model.singular_name %> = <%= @model.klass %>.new
66
+ <%- @model.associations.select {|a| a.nested_one?}.each do |assoc| -%>
67
+ @<%= @model.singular_name %>.<%= assoc.model2.singular_name %> = <%= assoc.model2.klass %>.new
68
+ <%- end -%>
69
+
70
+ <%- if @entity.ajax? -%>
71
+ render :layout => false
72
+ <%- else -%>
73
+ respond_to do |format|
74
+ format.html
75
+ end
76
+ <%- end -%>
77
+ end
78
+
79
+ def edit
80
+ @<%= @model.singular_name %> = <%= @model.klass %>.find(params[:id])
81
+
82
+ <%- if @entity.ajax? -%>
83
+ render :layout => false
84
+ <%- else -%>
85
+ respond_to do |format|
86
+ format.html
87
+ end
88
+ <%- end -%>
89
+ end
90
+
91
+ def create
92
+ @<%= @model.singular_name %> = <%= @model.klass %>.new(params[:<%= @model.to_params %>])
93
+ saved_ok = @<%= @model.singular_name %>.save
94
+ @system_notice = t('<%= @model.plural_name %>.notice.create') if saved_ok
95
+
96
+ <%- @model.associations.select{|a| a.has_and_belongs_to_many? and a.composition?}.each do |association| -%>
97
+ unless params[:<%= association.model2.plural_name %>].nil?
98
+ @<%= @model.singular_name %>.<%= association.model2.plural_name %>.clear
99
+ params[:<%= association.model2.plural_name %>].each do |<%= association.model2.singular_name.foreign_key %>|
100
+ @<%= @model.singular_name %>.<%= association.model2.plural_name %>.push <%= association.model2.klass %>.find <%= association.model2.singular_name.foreign_key %>
101
+ end
102
+ end
103
+ <%- end -%>
104
+
105
+ respond_to do |format|
106
+ <%- if @entity.ajax? -%>
107
+ format.js
108
+ <%- else -%>
109
+ if saved_ok
110
+ format.html { redirect_to <%= @model.object_name.pluralize %>_path, notice: @system_notice }
111
+ else
112
+ format.html { render action: "new" }
113
+ end
114
+ <%- end -%>
115
+ end
116
+ end
117
+
118
+ def update
119
+ @<%= @model.singular_name %> = <%= @model.klass %>.find(params[:id])
120
+ <%- if @entity.user? -%>
121
+ # if password is blank, delete from params
122
+ if params[:<%= @model.object_name %>][:password].blank?
123
+ params[:<%= @model.object_name %>].delete :password
124
+ params[:<%= @model.object_name %>].delete :password_confirmation
125
+ end
126
+ <%- end -%>
127
+ @<%= @model.singular_name %>.attributes = params[:<%= @model.to_params %>]
128
+ saved_ok = @<%= @model.singular_name %>.save
129
+ @system_notice = t('<%= @model.plural_name %>.notice.update') if saved_ok
130
+
131
+ <%- @model.associations.select{|a| a.has_and_belongs_to_many? and a.composition?}.each do |association| -%>
132
+ unless params[:<%= association.model2.plural_name %>].nil?
133
+ @<%= @model.singular_name %>.<%= association.model2.plural_name %>.clear
134
+ params[:<%= association.model2.plural_name %>].each do |<%= association.model2.singular_name.foreign_key %>|
135
+ @<%= @model.singular_name %>.<%= association.model2.plural_name %>.push <%= association.model2.klass %>.find <%= association.model2.singular_name.foreign_key %>
136
+ end
137
+ end
138
+ <%- end -%>
139
+
140
+ respond_to do |format|
141
+ <%- if @entity.ajax? -%>
142
+ format.js
143
+ <%- else -%>
144
+ if saved_ok
145
+ format.html { redirect_to <%= @model.object_name.pluralize %>_path, notice: @system_notice }
146
+ else
147
+ format.html { render action: "edit" }
148
+ end
149
+ <%- end -%>
150
+ end
151
+ end
152
+
153
+ def destroy
154
+ @<%= @model.singular_name %> = <%= @model.klass %>.find(params[:id])
155
+ @system_notice = t('<%= @model.plural_name %>.notice.destroy') if @<%= @model.singular_name %>.destroy
156
+
157
+ respond_to do |format|
158
+ <%- if @entity.ajax? -%>
159
+ format.js
160
+ <%- else -%>
161
+ format.html { redirect_to <%= @model.object_name.pluralize %>_path, notice: @system_notice }
162
+ <%- end -%>
163
+ end
164
+ end
165
+
166
+
167
+ end
@@ -0,0 +1,81 @@
1
+ # -*- encoding : utf-8 -*-
2
+ <%-
3
+ @entity = MDWA::DSL.entity('Estado')
4
+ @model = @entity.generator_model
5
+ -%>
6
+ class A::EstadosController < A::BackendController
7
+
8
+ load_and_authorize_resource :class => "A::Estado"
9
+
10
+ # Hook for code generations. Do not delete.
11
+ #===controller_init===
12
+
13
+ def index
14
+ @estados = A::Estado.paginate :page => params[:page]
15
+
16
+ respond_to do |format|
17
+ format.html
18
+ format.js
19
+ end
20
+ end
21
+
22
+
23
+ def show
24
+ @estado = A::Estado.find(params[:id])
25
+
26
+ render :layout => false
27
+ end
28
+
29
+ def new
30
+ @estado = A::Estado.new
31
+
32
+ render :layout => false
33
+ end
34
+
35
+ def edit
36
+ @estado = A::Estado.find(params[:id])
37
+
38
+ render :layout => false
39
+ end
40
+
41
+ def create
42
+ @estado = A::Estado.new(params[:a_estado])
43
+ saved_ok = @estado.save
44
+ @system_notice = t('estados.create_success') if saved_ok
45
+ load_list # loads all estados to display in the list
46
+
47
+
48
+ respond_to do |format|
49
+ format.js
50
+ end
51
+ end
52
+
53
+ def update
54
+ @estado = A::Estado.find(params[:id])
55
+ saved_ok = @estado.update_attributes(params[:a_estado])
56
+ @system_notice = t('estados.update_success') if saved_ok
57
+ load_list # loads all estados to display in the list
58
+
59
+
60
+ respond_to do |format|
61
+ format.js
62
+ end
63
+ end
64
+
65
+ def destroy
66
+ @estado = A::Estado.find(params[:id])
67
+ @system_notice = t('estados.destroy_success') if @estado.destroy
68
+ load_list # loads all estados to display in the list
69
+
70
+ respond_to do |format|
71
+ format.js
72
+ end
73
+ end
74
+
75
+
76
+ private
77
+ def load_list
78
+ @estados = A::Estado.paginate :page => 1
79
+ end
80
+
81
+ end
@@ -0,0 +1,7 @@
1
+ # -*- encoding : utf-8 -*-
2
+ <%-
3
+ @entity = MDWA::DSL.entity('Cidade')
4
+ @model = @entity.generator_model
5
+ -%>
6
+ module A::CidadesHelper
7
+ end
@@ -0,0 +1,7 @@
1
+ # -*- encoding : utf-8 -*-
2
+ <%-
3
+ @entity = MDWA::DSL.entity('Endereco')
4
+ @model = @entity.generator_model
5
+ -%>
6
+ module A::EnderecosHelper
7
+ end
@@ -0,0 +1,7 @@
1
+ # -*- encoding : utf-8 -*-
2
+ <%-
3
+ @entity = MDWA::DSL.entity('Estado')
4
+ @model = @entity.generator_model
5
+ -%>
6
+ module A::EstadosHelper
7
+ end
@@ -0,0 +1,14 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class A::Cidade < ActiveRecord::Base
3
+
4
+ attr_accessible :nome, :latitude, :longitude, :populacao, :estado
5
+
6
+ has_many :enderecos, :class_name => 'A::Endereco'
7
+ belongs_to :estado, :class_name => 'A::Estado'
8
+ attr_accessible :estado_id
9
+
10
+ def nome_completo
11
+ "#{nome} - #{estado.acronimo.upcase}"
12
+ end
13
+
14
+ end
@@ -0,0 +1,24 @@
1
+ # -*- encoding : utf-8 -*-
2
+ module A
3
+ class Endereco < ActiveRecord::Base
4
+
5
+ attr_accessible :rua, :numero, :cep, :complemento, :bairro, :cidade_id
6
+
7
+ belongs_to :cidade, :class_name => 'A::Cidade'
8
+
9
+ validates :rua, :cep, :bairro, :cidade_id, :presence => true
10
+
11
+ def nome_completo
12
+ nome = []
13
+ nome << self.rua
14
+ nome << ", #{self.numero}" unless self.numero.blank?
15
+ nome << " - #{self.complemento}" unless self.complemento.blank?
16
+ nome << " - #{self.bairro}"
17
+ nome << " - #{self.cep}"
18
+ nome << " - #{self.cidade.nome_completo}"
19
+ nome.join
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,10 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ class A::Estado < ActiveRecord::Base
4
+
5
+ attr_accessible :nome, :acronimo
6
+
7
+
8
+ has_many :cidades, :class_name => 'A::Cidade'
9
+
10
+ end