liquid_feedback_frontend
annotate app/main/survey/_action/participate.lua @ 1746:c7dbb36ce1e0
Show finished title at end of survey
| author | bsw | 
|---|---|
| date | Mon Oct 11 10:51:56 2021 +0200 (2021-10-11) | 
| parents | 5a8a09119865 | 
| children | 2d4136357989 | 
| rev | line source | 
|---|---|
| bsw@1735 | 1 local skip_survey = param.get("skip_survey") | 
| bsw@1735 | 2 | 
| bsw@1735 | 3 local survey = Survey:get_open() | 
| bsw@1735 | 4 | 
| bsw@1735 | 5 local survey_member = SurveyMember:by_pk(survey.id, app.session.member_id) | 
| bsw@1735 | 6 | 
| bsw@1735 | 7 if survey_member and not skip_survey then | 
| bsw@1735 | 8 return true | 
| bsw@1735 | 9 end | 
| bsw@1735 | 10 | 
| bsw@1735 | 11 local secret_length = 24 | 
| bsw@1735 | 12 local secret_alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' | 
| bsw@1735 | 13 local secret_purposes = { "oauth", "_other" } | 
| bsw@1735 | 14 for idx, purpose in ipairs(secret_purposes) do | 
| bsw@1735 | 15 secret_purposes[purpose] = idx | 
| bsw@1735 | 16 end | 
| bsw@1735 | 17 | 
| bsw@1735 | 18 local function random_string(length_multiplier) | 
| bsw@1735 | 19 return multirand.string( | 
| bsw@1735 | 20 secret_length * (length_multiplier or 1), | 
| bsw@1735 | 21 secret_alphabet | 
| bsw@1735 | 22 ) | 
| bsw@1735 | 23 end | 
| bsw@1735 | 24 | 
| bsw@1735 | 25 if not survey_member then | 
| bsw@1735 | 26 survey_member = SurveyMember:new() | 
| bsw@1735 | 27 survey_member.survey_id = survey.id | 
| bsw@1735 | 28 survey_member.member_id = app.session.member_id | 
| bsw@1735 | 29 end | 
| bsw@1735 | 30 | 
| bsw@1735 | 31 if skip_survey then | 
| bsw@1735 | 32 local answer_set = survey_member.answer_set | 
| bsw@1735 | 33 if answer_set then | 
| bsw@1735 | 34 survey_member.survey_answer_set_ident = nil | 
| bsw@1735 | 35 survey_member:save() | 
| bsw@1735 | 36 answer_set:destroy() | 
| bsw@1735 | 37 end | 
| bsw@1735 | 38 survey_member.rejected = 'now' | 
| bsw@1735 | 39 else | 
| bsw@1735 | 40 local answer_set = SurveyAnswerSet:new() | 
| bsw@1735 | 41 answer_set.ident = random_string() | 
| bsw@1735 | 42 answer_set.survey_id = survey.id | 
| bsw@1735 | 43 answer_set:save() | 
| bsw@1735 | 44 survey_member.survey_answer_set_ident = answer_set.ident | 
| bsw@1735 | 45 end | 
| bsw@1735 | 46 | 
| bsw@1735 | 47 survey_member:save() | 
| bsw@1735 | 48 | 
| bsw@1735 | 49 if skip_survey then | 
| bsw@1735 | 50 return "skip_survey" | 
| bsw@1735 | 51 end | 
| bsw@1735 | 52 | 
| bsw@1735 | 53 return true | 
| bsw@1735 | 54 |