Ejemplo n.º 1
0
def signup(request, activity_id):
    code = request.GET["code"]
    openid = get_openid(code)
    # openid = "vziO4SeF"
    if not admin.check_volunteer_exist(openid):
        return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.NOT_FOUND_VOLUNTEER_MSG})
    if not check_activity_exist(activity_id):
        return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.NOT_FOUND_ACTIVITY_MSG})
    if not check_activity_register_exist(activity_id, openid):
        return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.NOT_FOUND_ACTIVITY_REGISTER_MSG})
    activity = Activity.objects.get(id=activity_id)
    if activity.start_time > datetime.datetime.now() + datetime.timedelta(hours=1):
        return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.ACTIVITY_NOT_START_MSG})
    if activity.end_time < datetime.datetime.now() - datetime.timedelta(hours=1):
        return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.ACTIVITY_REG_END_MSG})
    reg = ActivityRegister.objects.get(activity__id=activity_id, volunteer__openid=openid)
    if reg.training_activity_mapping:
        ta = reg.training_activity_mapping
        pre_tas = TrainingActivity.objects.filter(training__id=ta.training.id, order__lt=ta.order)
        for p in pre_tas:
            pre_reg = ActivityRegister.objects.filter(training_activity_mapping__id=p.id, volunteer__openid=openid).first()
            if not pre_reg or pre_reg.status != ActivityRegister.SIGNED_UP:
                return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.PRE_ACTIVITIES_ABSENT_MSG})
    if reg.status == ActivityRegister.SIGNED_UP:
        return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.ACTIVITY_SIGNUP_EXIST_MSG})
    update_activity_register_status(reg.id, ActivityRegister.SIGNED_UP)
    return render(request, 'mobile_callback.html', {"type": "success", "content": u"签到成功。"})
Ejemplo n.º 2
0
def register(request, qrcode_id):
    code = request.GET["code"]
    openid = get_openid(code)
    # openid = get_random_str()
    if admin.check_volunteer_exist(openid):
        return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.VOLUNTEER_EXIST_MSG})
    return render(request, 'register.html', {
        "pageName": u'"故事妈妈"志愿者注册',
        "qrcode_id": qrcode_id,
        "openid": openid
    })
Ejemplo n.º 3
0
def mobile_volunteer_profile(request):
    code = request.GET["code"]
    openid = get_openid(code)
    if not admin.check_volunteer_exist(openid):
        return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.NOT_FOUND_VOLUNTEER_MSG})
    profile = get_volunteer_profile(openid)
    data = {
        "pageName": profile["volunteer"].name
    }
    data.update(profile)
    print data
    return render(request, 'mobile_volunteer_profile.html', data)
Ejemplo n.º 4
0
def remove_volunteer(request, openid):
    result = Result()
    if not admin.check_volunteer_exist(openid):
        result.code = Consts.FAILED_CODE
        result.msg = Consts.NOT_FOUND_VOLUNTEER_MSG
        return HttpResponse(json.dumps(result.to_dict()), content_type="application/json")
    if not admin.check_has_modify_permission(request.user.username, openid):
        result.code = Consts.FAILED_CODE
        result.msg = Consts.NO_PERMISSION_MSG
        return HttpResponse(json.dumps(result.to_dict()), content_type="application/json")
    try:
        admin.remove_volunteer(openid)
        result.code = Consts.SUCCESS_CODE
    except:
        result.code = Consts.FAILED_CODE
        result.msg = Consts.UNKNOWN_ERROR
    return HttpResponse(json.dumps(result.to_dict()), content_type="application/json")
Ejemplo n.º 5
0
def register_volunteer(request):
    openid = request.POST['openid']
    qrcode_id = request.POST['qrcode_id']
    email = request.POST['email']
    name = request.POST['name']
    phone = request.POST['phone']
    cert_number = request.POST['cert-number']
    year = request.POST['year']
    result = Result()
    try:
        year = float(year)
    except:
        result.code = Consts.FAILED_CODE
        result.msg = Consts.INVALID_VOLUNTEER_YEAR_MSG
        return HttpResponse(json.dumps(result.to_dict()), content_type="application/json")


    if admin.check_volunteer_exist(openid):
        result.code = Consts.FAILED_CODE
        result.msg = Consts.VOLUNTEER_EXIST_MSG
        return HttpResponse(json.dumps(result.to_dict()), content_type="application/json")

    qr = Qrcode.objects.filter(id=qrcode_id).first()
    if not qr:
        return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.QR_NOT_FOUND_MSG})
    if qr.expire_time < datetime.datetime.now():
        return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.EXPIRED_QRCODE_MSG})

    user = qr.creator
    group_id = None
    if user and not user.is_superuser and len(get_all_groups(user.username)) > 0:
        group_id = get_all_groups(user.username).first().id

    try:
        admin.create_volunteer(user.username, openid, name, phone, email, cert_number, year, group_id)
        return render(request, 'mobile_callback.html', {"type": "success", "content": u"注册成功"})
    except:
        result.code = Consts.FAILED_CODE
    return render(request, 'mobile_callback.html', {"type": "danger", "content": Consts.UNKNOWN_ERROR})
Ejemplo n.º 6
0
def update_volunteer_info(request):
    result = Result()
    openid = request.POST['openid']
    name = request.POST['name']
    group_id = request.POST['group_id']
    phone = request.POST['phone']
    email = request.POST['email']
    cert_number = request.POST['cert_number']
    year = request.POST['year']
    try:
        year = float(year)
    except:
        result.code = Consts.FAILED_CODE
        result.msg = Consts.INVALID_VOLUNTEER_YEAR_MSG
        return HttpResponse(json.dumps(result.to_dict()), content_type="application/json")
    if not admin.check_volunteer_exist(openid):
        result.code = Consts.FAILED_CODE
        result.msg = Consts.NOT_FOUND_VOLUNTEER_MSG
        return HttpResponse(json.dumps(result.to_dict()), content_type="application/json")
    if not admin.check_has_modify_permission(request.user.username, openid):
        result.code = Consts.FAILED_CODE
        result.msg = Consts.NO_PERMISSION_MSG
        return HttpResponse(json.dumps(result.to_dict()), content_type="application/json")
    if group_id != '-' and not check_group_exist(group_id):
        result.code = Consts.FAILED_CODE
        result.msg = Consts.NOT_FOUND_GROUP_MSG
        return HttpResponse(json.dumps(result.to_dict()), content_type="application/json")
    try:
        if group_id == '-':
            admin.update_volunteer_info(openid, name, phone, email, cert_number, year, None)
        else:
            admin.update_volunteer_info(openid, name, phone, email, cert_number, year, group_id)
        result.code = Consts.SUCCESS_CODE
    except:
        result.code = Consts.FAILED_CODE
        result.msg = Consts.UNKNOWN_ERROR
    return HttpResponse(json.dumps(result.to_dict()), content_type="application/json")
Ejemplo n.º 7
0
def volunteer_profile(request, openid):
    if not admin.check_volunteer_exist(openid):
        return render(request, 'error.html', {"error_msg": Consts.NOT_FOUND_VOLUNTEER_MSG})
    if not admin.check_has_modify_permission(request.user.username, openid):
        return render(request, 'error.html', {"error_msg": Consts.NO_PERMISSION_MSG})
    return render(request, 'volunteer_profile.html', get_volunteer_profile(openid))
Ejemplo n.º 8
0
 def test_remove_volunteer(self):
     group = Group.objects.get(name="group1")
     create_volunteer("admin", "123456", "xiaoming", "1380000", cert_number="abc123", year=10, group_id=group.id)
     self.assertTrue(check_volunteer_exist("123456"))
     remove_volunteer("123456")
     self.assertFalse(check_volunteer_exist("123456"))