liquid_feedback_frontend

view app/main/survey/_action/participate.lua @ 1818:2d4136357989

Final version of survey
author bsw
date Tue Jan 04 14:31:01 2022 +0100 (2022-01-04)
parents 5a8a09119865
children
line source
1 local skip_survey = param.get("skip_survey")
3 local survey = Survey:get_open()
5 local survey_member = SurveyMember:by_pk(survey.id, app.session.member_id)
7 if survey_member and not skip_survey then
8 return true
9 end
11 local secret_length = 24
12 local secret_alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
13 local secret_purposes = { "oauth", "_other" }
14 for idx, purpose in ipairs(secret_purposes) do
15 secret_purposes[purpose] = idx
16 end
18 local function random_string(length_multiplier)
19 return multirand.string(
20 secret_length * (length_multiplier or 1),
21 secret_alphabet
22 )
23 end
25 if not survey_member then
26 survey_member = SurveyMember:new()
27 survey_member.survey_id = survey.id
28 survey_member.member_id = app.session.member_id
29 end
31 if skip_survey then
32 local answer_set = survey_member.answer_set
33 if answer_set then
34 survey_member.survey_answer_set_ident = nil
35 survey_member:save()
36 answer_set:destroy()
37 end
38 survey_member.rejected = 'now'
39 else
40 local answer_set = SurveyAnswerSet:new()
41 answer_set.ident = random_string()
42 answer_set.survey_id = survey.id
43 local verification = Verification:new_selector()
44 :add_where{ "verified_member_id = ?", app.session.member_id }
45 :optional_object_mode()
46 :exec()
47 if verification then
48 answer_set.data = verification.request_data
49 answer_set.data.name = nil
50 answer_set.data.email = nil
51 end
52 answer_set:save()
53 survey_member.survey_answer_set_ident = answer_set.ident
54 end
56 survey_member:save()
58 if skip_survey then
59 return "skip_survey"
60 end
62 return true

Impressum / About Us