create_forms.rb 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. require "google_drive"
  2. def type(arg)
  3. case
  4. when arg.start_with?("Text")
  5. "text"
  6. when arg == "Datum"
  7. "date"
  8. when arg == "Integer"
  9. "number"
  10. end
  11. end
  12. session = GoogleDrive::Session.from_config("config.json")
  13. key = "1-QkYYrbFtj_MIz9wsfsoKW6UzVJslrjAhXt18VMcF_8"
  14. ary = []
  15. session.spreadsheet_by_key(key).worksheets.each do |w|
  16. title = w.title
  17. w.rows.each do |r|
  18. next if r[6] != "x"
  19. ary[r[7].to_i] = <<-HEREDOC
  20. .form-group.form-group-lg class=("has-error" if keys.include?("#{title+"["+r[2]+"]"}"))
  21. label.control-label for="#{title+"["+r[2]+"]"}"
  22. |#{r[1]}
  23. input.form-control id="#{title+"["+r[2]+"]"}" name="#{title+"["+r[2]+"]"}" type="#{type(r[3])}" value=(params[:'#{title}'] && params[:'#{title+"']['"+r[2]+"']"})
  24. HEREDOC
  25. end
  26. end
  27. panel_daten = <<-HEREDOC
  28. .panel.panel-default
  29. .panel-heading Persönliche Angaben
  30. .panel-body
  31. HEREDOC
  32. panel_erzieher = <<-HEREDOC
  33. .panel.panel-default
  34. .panel-heading Angaben Erziehungsberechtigte
  35. .panel-body
  36. HEREDOC
  37. schule_beruf = <<-HEREDOC
  38. .form-group.form-group-lg class=("has-error" if keys.include?("taetigkeit"))
  39. label.control-label for="taetigkeit"
  40. |Geben Sie bitte den Namen Ihrer derzeitigen Schule oder Einrichtung an
  41. textarea.form-control name="taetigkeit" rows="3"
  42. =params[:taetigkeit]
  43. HEREDOC
  44. ary[0] = panel_daten
  45. ary[5] = " ==partial :geschlecht, :keys => keys"
  46. ary[11] = " ==partial :nationalitaet, :keys => keys"
  47. ary[12] = " ==partial :konfession, :keys => keys"
  48. ary[13] = " ==partial :schulform, :keys => keys"
  49. ary[16] = " ==partial :anrede, {:keys => keys, :i => 1}"
  50. ary[19] = " ==partial :anrede, {:keys => keys, :i => 2}"
  51. ary.insert(15, schule_beruf, panel_erzieher)
  52. # Erstelle Formular nur über persönliche Basis- und Zusatzdaten
  53. File.open("views/form_inputs.slim", 'w') do |f|
  54. f.puts ary[0..15]
  55. end
  56. # Erstelle Formular nur für Erzieherdaten
  57. File.open("views/form_erzieher.slim", 'w') do |f|
  58. f.puts ary[16..-1]
  59. end