Ejemplo n.º 1
0
def user(request, key):
    user = UserProfile.get(key)
    form = UserForm()
    if request.method == 'POST':
        if form.validate(request.form):
            user.user_name = request.form['user_name']
            user.first_name = request.form['first_name']
            user.last_name = request.form['last_name']
            user.email = request.form['email']
            user.newsletter_type = int(request.form['newsletter_type'])
            manager_key = request.form['manager']
            if manager_key:
                manager = Manager.get(manager_key)
                user.manager = manager
            try:
                if request.form['activated'] == 'on':
                    user.activated = True
            except:
                user.activated = False
            try:
                if request.form['is_admin'] == 'on':
                    user.is_admin = True
            except:
                user.is_admin = False
            if request.form['password']:
                user.set_password(request.form['password'])
            else:
                user.put()
            return redirect(url_for('admin/users'))

    manager_ = None
    try:
        if user.manager:
            manager_ = user.manager
    except Exception:
        pass
    managers_ = list(Manager.all())
    if not manager_:
        managers = [('', '-')]
    else:
        managers = [('', manager_)]
    for manager in managers_:
        if manager_ is None or  manager.key() != manager_.key():
            managers.append((manager.key(), manager))
    form = UserForm(
        initial={
            'user_name': user.user_name,
            'activated': user.activated,
            'is_admin': user.is_admin,
            'email': user.email,
            'first_name': user.first_name,
            'last_name': user.last_name,
            'newsletter_type': user.newsletter_type
        })
    form.manager.choices = managers
    return render_to_response(
        'admin/user.html', {
            'user': user,
            'form': form.as_widget()
        })
Ejemplo n.º 2
0
def user_delete(request, key):
    try:
        user = UserProfile.get(key)
    except BadKeyError:
        return redirect('admin/users')
    if user:
        ord_usr = OrderingUser.all().filter('register_user ='******'user ='******'admin/users')
Ejemplo n.º 3
0
def send_newsletter_task(request, user_key, newsletter_key):
    newsletter = Newsletter.get(newsletter_key)
    managers = []
    message = mail.EmailMessage(sender=settings.DEFAULT_MAIL_FROM, subject=newsletter.title)
    user = UserProfile.get(user_key)
    message.to = user.email
    if not message.to:
        return Response("Ok")

    gifts = []
    gifts_images = {}
    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)
                    if obj.main_thumb:
                        try:
                            img = ThumbImage.get(obj.main_thumb)
                            img = Image.get(img.thumb_200x200)
                            if img:
                                gifts_images[obj.uid] = base64.b64encode(str(img.image))
                        except Exception:
                            pass
            except Exception:
                pass

    message_text = render_to_string(
        "postman/send_newsletter.html",
        {"newsletter": newsletter, "gifts": gifts, "managers": managers, "gifts_images": gifts_images},
    )
    message.html = message_text
    attachments = []
    for file_key in newsletter.n_price_list:
        file_ = File.get(file_key)
        if file_ and file_.blob_key:
            bi = blobstore.BlobInfo.get(file_.blob_key)
            if bi:
                attachments.append(("%s" % file_.title_filename, bi.open().read()))
    message.attachments = attachments
    message.send()
    return Response("OK")