liquid_feedback_frontend

diff app/main/survey/_action/participate.lua @ 1735:5a8a09119865

Added survey feature
author bsw
date Fri Oct 08 00:09:23 2021 +0200 (2021-10-08)
parents
children 2d4136357989
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/app/main/survey/_action/participate.lua	Fri Oct 08 00:09:23 2021 +0200
     1.3 @@ -0,0 +1,54 @@
     1.4 +local skip_survey = param.get("skip_survey")
     1.5 +
     1.6 +local survey = Survey:get_open()
     1.7 +
     1.8 +local survey_member = SurveyMember:by_pk(survey.id, app.session.member_id)
     1.9 +
    1.10 +if survey_member and not skip_survey then
    1.11 +  return true
    1.12 +end
    1.13 +
    1.14 +local secret_length = 24
    1.15 +local secret_alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
    1.16 +local secret_purposes = { "oauth", "_other" }
    1.17 +for idx, purpose in ipairs(secret_purposes) do
    1.18 +  secret_purposes[purpose] = idx
    1.19 +end
    1.20 +
    1.21 +local function random_string(length_multiplier)
    1.22 +  return multirand.string(
    1.23 +    secret_length * (length_multiplier or 1),
    1.24 +    secret_alphabet
    1.25 +  )
    1.26 +end
    1.27 +
    1.28 +if not survey_member then
    1.29 +  survey_member = SurveyMember:new()
    1.30 +  survey_member.survey_id = survey.id
    1.31 +  survey_member.member_id = app.session.member_id
    1.32 +end
    1.33 +
    1.34 +if skip_survey then
    1.35 +  local answer_set = survey_member.answer_set
    1.36 +  if answer_set then
    1.37 +    survey_member.survey_answer_set_ident = nil
    1.38 +    survey_member:save()
    1.39 +    answer_set:destroy()
    1.40 +  end
    1.41 +  survey_member.rejected = 'now'
    1.42 +else
    1.43 +  local answer_set = SurveyAnswerSet:new()
    1.44 +  answer_set.ident = random_string()
    1.45 +  answer_set.survey_id = survey.id
    1.46 +  answer_set:save()
    1.47 +  survey_member.survey_answer_set_ident = answer_set.ident
    1.48 +end
    1.49 +
    1.50 +survey_member:save()
    1.51 +
    1.52 +if skip_survey then
    1.53 +  return "skip_survey"
    1.54 +end
    1.55 +
    1.56 +return true
    1.57 +

Impressum / About Us