Guiyom commited on
Commit
e52bf75
·
1 Parent(s): 443350b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -0
app.py CHANGED
@@ -83,8 +83,38 @@ with gr.Blocks() as demo:
83
  generatesummary = gr.Button("Generate the focus group summary")
84
  with gr.Row():
85
  summary = gr.Textbox(label="Report summary", lines=50)
 
 
 
86
  clear = gr.Button("Clear", visible = False)
87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  def checkapiinput(apikey):
89
  if apikey != "" and apikey is not None and len(apikey) >=25 and len(apikey) <= 130:
90
  return gr.update(visible=True), gr.update(visible=False), gr.update(visible=True), gr.update(visible=True)
@@ -407,6 +437,7 @@ Now please provide your results.
407
  generateresults.click(generateanswers, [title, question1, question2, question3, expert1, expert2, expert3, expert4, expert5, expert6, expert7, expert8, expert9, expert10], [response1, response2, response3, response4, response5, response6, response7, response8, response9, response10])
408
  generatesummary.click(summarize, [title, question1, question2, question3, expert1, expert2, expert3, expert4, expert5, expert6, expert7, expert8, expert9, expert10, response1, response2, response3, response4, response5, response6, response7, response8, response9, response10], summary)
409
  useapi.click(checkapiinput, apikey, [fullblock, apicheck, apikey, clear])
 
410
  clear.click(init_history, title, [title, question1, question2, question3, focusgroupdescription, expert1, expert2, expert3, expert4, expert5, expert6, expert7, expert8, expert9, expert10, response1, response2, response3, response4, response5, response6, response7, response8, response9, response10, summary])
411
 
412
  demo.launch()
 
83
  generatesummary = gr.Button("Generate the focus group summary")
84
  with gr.Row():
85
  summary = gr.Textbox(label="Report summary", lines=50)
86
+ with gr.Row():
87
+ with gr.Accordion("Restore", open = False):
88
+ restore = gr.Button("Restore data from report")
89
  clear = gr.Button("Clear", visible = False)
90
 
91
+ def uploaddetailsfromreport(report):
92
+ # Extract title of the focus group
93
+ title = re.search(r'title is:\n(.+)', input_string).group(1)
94
+
95
+ # Extract questions
96
+ questions = re.findall(r'Question (\d+): (.+)', input_string)
97
+
98
+ # Extract focus group profiles and participant answers
99
+ profiles = re.findall(r'// Profile (\d+) //\n(.*?)Participants answers:', input_string, re.DOTALL)
100
+ participants = []
101
+ for profile in profiles:
102
+ profile_id = profile[0]
103
+ participant_answers = re.findall(r'Profile {} answer to question (\d+)\n(.+)'.format(profile_id), profile[1])
104
+ participants.append(participant_answers)
105
+
106
+ # Format the extracted values
107
+ output = []
108
+ output.append(title)
109
+ for question in questions:
110
+ output.append("Question {}: {}".format(question[0], question[1]))
111
+ for i, participant in enumerate(participants, 1):
112
+ output.append("// Profile {} //".format(i))
113
+ for answer in participant:
114
+ output.append("Profile {} answer to question {}: {}".format(i, answer[0], answer[1].strip()))
115
+
116
+ return output[0], output[1], output[2], output[3], output[4], output[5], output[6], output[7], output[8], output[9], output[10], output[11], output[12], output[13], output[14], output[15], output[16], output[17], output[18], output[19], output[20], output[21], output[22], output[23]
117
+
118
  def checkapiinput(apikey):
119
  if apikey != "" and apikey is not None and len(apikey) >=25 and len(apikey) <= 130:
120
  return gr.update(visible=True), gr.update(visible=False), gr.update(visible=True), gr.update(visible=True)
 
437
  generateresults.click(generateanswers, [title, question1, question2, question3, expert1, expert2, expert3, expert4, expert5, expert6, expert7, expert8, expert9, expert10], [response1, response2, response3, response4, response5, response6, response7, response8, response9, response10])
438
  generatesummary.click(summarize, [title, question1, question2, question3, expert1, expert2, expert3, expert4, expert5, expert6, expert7, expert8, expert9, expert10, response1, response2, response3, response4, response5, response6, response7, response8, response9, response10], summary)
439
  useapi.click(checkapiinput, apikey, [fullblock, apicheck, apikey, clear])
440
+ restore.click(uploaddetailsfromreport, summary, [title, question1, question2, question3, expert1, expert2, expert3, expert4, expert5, expert6, expert7, expert8, expert9, expert10, response1, response2, response3, response4, response5, response6, response7, response8, response9, response10])
441
  clear.click(init_history, title, [title, question1, question2, question3, focusgroupdescription, expert1, expert2, expert3, expert4, expert5, expert6, expert7, expert8, expert9, expert10, response1, response2, response3, response4, response5, response6, response7, response8, response9, response10, summary])
442
 
443
  demo.launch()