diff --git a/app/admin/users_admin.rb b/app/admin/users_admin.rb index 4dc9d8e..d8960d0 100644 --- a/app/admin/users_admin.rb +++ b/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 diff --git a/app/views/templates/awesome/resume.html.erb b/app/views/templates/awesome/resume.html.erb index 5f91a81..921d6af 100644 --- a/app/views/templates/awesome/resume.html.erb +++ b/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} diff --git a/app/views/users/show.json.jbuilder b/app/views/users/show.json.jbuilder new file mode 100644 index 0000000..14f32eb --- /dev/null +++ b/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