示例#1
0
def preview_newsletter(request, key):
    newsletter = Newsletter.get(key)
    gifts = []
    if newsletter.gifts:
        gifts_split = newsletter.gifts.split(",")
        for gift in gifts_split:
            try:
                gift = gift.strip()
                obj = Gift.all().filter("uid =", gift).get()
                if obj:
                    gifts.append(obj)
            except Exception:
                pass
    managers = []
    users = UserProfile.all().filter("is_send_newsletter =", True).filter("email !=", None)
    if newsletter.type != 999:
        users = users.filter("newsletter_type =", newsletter.type)

    files = []
    for file_key in newsletter.n_price_list:
        file_ = File.get(file_key)
        if file_:
            files.append(file_)
    return render_to_response(
        "postman/admin/newsletters/preview.html",
        {"newsletter": newsletter, "gifts": gifts, "key": key, "files": files, "managers": managers, "users": users},
    )
示例#2
0
def users(request):
    users_ = UserProfile.all()
    users_list = []
    for user in users_:
        try:
            user.manager.last_name
        except Exception:
            user.manager = None
        users_list.append(user)
    return render_to_response('admin/users.html', {'users': users_list})
示例#3
0
def confirm_request(request, key):
    req_user = RegistrationRequest().get(key)
    try:
        user_obj = UserProfile.create_inactive_user(user_name=string.lower(req_user.email), email=string.lower(req_user.email), password="******")
    except DuplicateKeyError:
        user_obj = UserProfile.all().filter('user_name =', string.lower(req_user.email)).get()
    user_obj.first_name = req_user.first_name
    user_obj.password = req_user.password
    user_obj.telephone = req_user.telephone
    user_obj.manager = req_user.manager
    user_obj.company_name = req_user.company
    user_obj.put()
    req_user.delete()
    return redirect(url_for('admin/reg_requests'))
示例#4
0
def send_newsletter(request, key):
    letter = Newsletter.get(key)
    if letter.type == -1:
        return redirect("/admin/postman/newsletters/")
    users = UserProfile.all().filter("is_send_newsletter =", True)
    if letter.type != 999:
        users = users.filter("newsletter_type =", letter.type)
    for user in users:

        def txn():
            taskqueue.add(
                url=url_for("postman/send_newsletter_task", user_key=str(user.key()), newsletter_key=key),
                transactional=True,
            )

        db.run_in_transaction(txn)
    return redirect("/admin/postman/newsletters/")
示例#5
0
def reg_request(request):
    form = RegistrationRequestForm()
    managers = Manager.all().filter("is_hidden =", False)
    if request.method == "POST":
        if form.validate(request.form):
            email = request.form["email"]
            user = UserProfile.all().filter("email =", email).count()
            if user:
                default_manager = request.form.get("manager")
                default_manager = Manager.get(default_manager).key()
                form.append_errors(
                    u"Этот email уже используется. \
                        Возможно Вы уже зарегистрировались.",
                    "email",
                )
                return render_to_response(
                    "auth5/reg_request.html",
                    {"form": form.as_widget(), "managers": managers, "default_manager": default_manager},
                )
            reg_reqs = RegistrationRequest.all().filter("email =", email).count()
            if reg_reqs:
                default_manager = request.form.get("manager")
                default_manager = Manager.get(default_manager).key()
                form.append_errors(
                    u"Этот email уже используется. \
                        Возможно Вы уже отправили заявку на регистрацию.",
                    "email",
                )
                return render_to_response(
                    "auth5/reg_request.html",
                    {"form": form.as_widget(), "managers": managers, "default_manager": default_manager},
                )

            def txn():
                reg_request_obj = RegistrationRequest(
                    first_name=request.form["first_name"],
                    email=request.form["email"],
                    telephone=request.form["telephone"],
                    company=request.form["company"],
                    password=crypto.gen_pwhash(request.form["password"]),
                    manager=db.Key(request.form.get("manager")),
                )
                reg_request_obj.put()
                taskqueue.add(
                    url=url_for("auth5/send_request_to_manager", request_key=str(reg_request_obj.key())),
                    transactional=True,
                )

            db.run_in_transaction(txn)
            return render_to_response("auth5/thanks.html")
    default_manager = None
    if request.form.get("manager"):
        default_manager = request.form.get("manager")
        default_manager = Manager.get(default_manager).key()
    else:
        def_mangers = Manager.all().filter("is_hidden =", False).filter("is_default", True)
        if def_mangers.count():
            default_manager = random.randrange(0, def_mangers.count())
            default_manager = def_mangers[default_manager].key()
        else:
            if managers.count():
                default_manager = random.randrange(0, managers.count())
                default_manager = managers[default_manager].key()
    return render_to_response(
        "auth5/reg_request.html", {"form": form.as_widget(), "managers": managers, "default_manager": default_manager}
    )
示例#6
0
def users(request):
  users_objs = UserProfile.all()
  return render_json_response([to_dict(o) for o in users_objs])