Browse Source

JSON rendering

pull/1/head
rodley82 1 year ago
parent
commit
0fab480631
  1. 9
      app/admin/users_admin.rb
  2. 11
      app/views/templates/awesome/resume.html.erb
  3. 37
      app/views/users/show.json.jbuilder

9
app/admin/users_admin.rb

@ -18,6 +18,7 @@ Trestle.resource(:users) do
toolbar.delete if admin && admin.actions.include?(:destroy)
toolbar.link 'CV', instance, action: :generate, method: :get, style: :primary, icon: "fa fa-file-pdf", target: "_blank"
toolbar.link 'CLS', instance, action: :generate_cls, method: :get, style: :secondary, icon: "fa", target: "_blank"
toolbar.link 'JSON', instance, action: :generate_json, method: :get, style: :secondary, icon: "fa", target: "_blank"
end
end
@ -42,6 +43,13 @@ Trestle.resource(:users) do
render file: "#{destination_dir}/resume.tex", layout: false
end
def generate_json
user = admin.find_instance(params)
ac = ActionController::Base.new()
json = ac.render_to_string(layout: false, template: "users/show", locals: { "@user": user } )
render json: json, layout: false
end
def generate_tex(template: "resume")
user = admin.find_instance(params)
ac = ActionController::Base.new()
@ -52,5 +60,6 @@ Trestle.resource(:users) do
routes do
get :generate, on: :member
get :generate_cls, on: :member
get :generate_json, on: :member
end
end

11
app/views/templates/awesome/resume.html.erb

@ -106,7 +106,15 @@
%---------------------------------------------------------
<% @user.work_experiences.active.each do |w| %>
\cventry
{<%= w.title.tex_safe %>} % Job title
{
<%= w.title.tex_safe %>
<% if w.technologies.present? %>
\newline
\hspace{0.1cm}
\normalfont
Technologies: <%= w.technologies.tex_safe %>
<% end %>
} % Job title
{<%= w.employer.tex_safe %>} % Organization
{} % Location
{<%= w.period.tex_safe %>} % Date(s)
@ -157,6 +165,7 @@
\end{cvitems}
}
<% end %>
<% end %>
%---------------------------------------------------------
\end{cventries}

37
app/views/users/show.json.jbuilder

@ -0,0 +1,37 @@
json.user do
json.id @user.id
json.name @user.name
json.title @user.title
json.work_experiences @user.work_experiences.active do |work|
# json.id work.id
json.title work.title
json.organization work.employer
if work.technologies.present?
json.technologies work.technologies
end
json.period work.period
json.responsibilities do
json.array! work.items_csv&.split(";")
end
end
json.skills @user.skills.active do |skill|
# json.id skill.id
json.title skill.title
json.detail skill.detail
end
json.education_entries @user.education_entries.active do |edu|
json.institution edu.institution
json.title edu.title
json.location edu.location
json.period edu.period
json.items do
json.array! edu.items_csv&.split(";")
end
end
end
Loading…
Cancel
Save