Ejemplo n.º 1
0
def quick_import(file_name='leftovers.csv'):
    csv_file = open_csv(file_name)
    for i, line in enumerate(csv_file):
        if line[0] and line[1]:
            name = unicode.strip(line[0].decode('utf8'))
            gift = Gift.all().filter('name =', name)
            if gift.count():
                gift = gift[0]
                leftovers = line[1].strip().replace(',', '').replace('.', '')
                if not leftovers:
                    leftovers = 0
                else:
                    leftovers = int(leftovers)
                if gift.leftovers == leftovers:
                    if gift.leftovers !=0 and gift.receipt_date:
                        gift.receipt_date = None
                        gift.put()
                    continue
                gift.leftovers = leftovers
                if gift.receipt_date:
                    gift.receipt_date = None
                gift.put()
                print "%s %s : %s" % (i, gift.uid, gift.leftovers)
    print "========================================================"
    for g in Gift.all():
        print g.leftovers
Ejemplo n.º 2
0
def index(request):
    if request.method == 'POST':
        text = request.form.get('q', '')
        if not text:
            return redirect('/')
        text = text.strip()
        gifts = Gift.all().filter('in_trash =', False)\
            .filter('leftovers >', 0).search(
                text, properties=['name']
            )
        if not gifts.count():
            gifts = Gift.all().filter('in_trash =', False)\
                .filter('leftovers >', 0).search(
                    text, properties=['barcode']
                )
            if not gifts.count():
                gifts = Gift.all().filter('in_trash =', False)\
                    .filter('leftovers >', 0).search(
                        text, properties=['catalogue_id']
                    )
        if not gifts:
            return redirect('/')

        return render_to_response(
            'srch/index.html',
            {'gifts': gifts, 'search_text': text}
        )
    else:
        return redirect('/')
Ejemplo n.º 3
0
Archivo: views.py Proyecto: gmist/f-toy
def search(request):
    if request.method == 'POST':
        text = request.form.get('q', '')
        if not text:
            return redirect('/')
        gifts_list = Gift.all().filter('leftovers >', 0).search(text,
            properties=['name'])
        gifts_list = filter_leftovers(gifts_list)
        if not gifts_list:
            return redirect('/')

        paginator = Paginator(gifts_list, 24)
        try:
            page = int(request.args.get('page', 1))
        except ValueError:
            page = 1
        try:
            gifts = paginator.page(page)
        except (EmptyPage, InvalidPage):
            gifts = paginator.page(paginator.num_pages())
        categories = get_cat_subcat()
        return render_to_response('index_page/main_page.html',
                {'gifts': gifts,
                 'categories': categories[0],
                 'subcategories': categories[1],
                 'subcategories_keys': categories[2],
                 'price_modif': GlobalPriceModif.get_price_modif()})
    else:
        return redirect('/')
Ejemplo n.º 4
0
def export():
    writer = csv.writer(open('quick_export.csv', 'wb'))
    writer.writerow(['Идентификатор',
        'Название',
        'Краткое описание',
        'Полное описание'])
    for gift in Gift.all():
        name = gift.name
        if name:
            name = name.encode('utf-8')
        else:
            name = u''
        short_description = gift.short_description
        if short_description:
            short_description = clear_data(short_description)
        else:
            short_description = u''
        description = gift.description
        if description:
            description = clear_data(description)
        else:
            description = u''

        writer.writerow([gift.uid,
            name,
            short_description.encode('utf-8'),
            description.encode('utf-8')])
Ejemplo n.º 5
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},
    )
Ejemplo n.º 6
0
 def get_gift_mem(uid_):
     if not uid_:
         return None
     try:
         gift = Gift.all().filter('uid =', uid_).get()
         return prefetch_refprops([gift], Gift.category, Gift.group)[0]
     except Exception:
         return None
Ejemplo n.º 7
0
def get_list_all(request):
    list_gifts = memcache.get('api_get_list_all')
    if not list_gifts:
        gifts = Gift.all()
        if gifts:
            list_gifts = [gift.uid for gift in gifts]
            memcache.add('api_get_list_all', list_gifts, 7200)
    return render_json_response(list_gifts)
Ejemplo n.º 8
0
Archivo: views.py Proyecto: gmist/f-toy
def sync_new_task(request, uid):
    logging.info("Create new gift from 5studio.ru with uid: %s" % uid)
    url = 'http://www.5studio.ru/api/v1/get/gift.json?&uid=%s' % uid
    result = urlfetch.fetch(url)
    if result.status_code == 200:
        j = simplejson.loads(result.content)
        if len(j):
            name = j.get('name', '').replace('\\"', '"')
            name_origin = j.get('name_origin', '').replace('\\"', '"')
            barcode = j.get('barcode', '')
            description = j.get('description', '').replace('\\"', '"')
            price = j.get('price', 0.0)
            leftovers = j.get('leftovers', 0)

            gift = Gift.all().filter('uid_5studio =', uid).fetch(1)
            if gift:
                gift = gift[0]
                is_new = False
            else:
                is_new = True
                gift = Gift(
                    uid_5studio=uid,
                    name=name,
                    name_origin=name_origin,
                    barcode=barcode,
                    description=description,
                    price=price,
                    leftovers=leftovers)

            brand = j.get('brand', '').replace('\\"', '"')
            if brand:
                brand_obs = Brand.all().filter('brand =', brand)
                if not brand_obs.count():
                    brand = Brand(brand=brand)
                    brand.put()
                else:
                    brand = brand_obs.get()
                gift.brand = brand

            gift.category = get_category(j)
            gift.subcategory = get_subcategory(j, gift.category)
            gift.put()

            if is_new or not gift.thumbs:
                thumbs_url = j.get('thumbs_url', [])
                for url in thumbs_url:
                    gift_uid = gift.key().id()
                    memcache.add('sync/add_image/%s' % gift_uid,
                        'http://%s' % url, 7200)

                    def txn():
                        taskqueue.add(url=url_for(
                            'sync/sync_add_image',
                            uid=gift.key().id()),
                            transactional=True)
                    db.run_in_transaction(txn)

    return render_json_response({'api_msg': 'Ok', 'api_success': True})
Ejemplo n.º 9
0
Archivo: views.py Proyecto: gmist/f-toy
def sync_gift(request):
    for gift in Gift.all():
        if gift.uid_5studio:
            def txn():
                taskqueue.add(url=url_for('sync/sync_gift_task',
                    key=gift.key()),
                    transactional=True)
            db.run_in_transaction(txn)
    return render_to_response('sync/sync_gift.html')
Ejemplo n.º 10
0
Archivo: views.py Proyecto: gmist/f-toy
def get_gift(request, idx):
    gift = Gift.get_by_id(idx)
    if not gift:
        return redirect('/')
    additional_gifts = Gift.all().filter('subcategory =', gift.subcategory).filter(
                'name !=', gift.name).fetch(4)
    return render_to_response('gift/get.html',
            {'gift': gift,
            'additional_gifts': additional_gifts,
            'price_modif': GlobalPriceModif.get_price_modif()})
Ejemplo n.º 11
0
def trash_ajax(request):
    if request.method == 'POST':
        last_gift = request.values.get('last_gift')
        if last_gift:
            last_gift = int(last_gift)
            gifts = gifts = Gift.all().filter('in_trash =', True)
            if gifts:
                gifts = gifts.fetch(50, last_gift)
            return render_to_response('gift/list.html', {'gifts': gifts})
    return render_to_response("empty.html")
Ejemplo n.º 12
0
def update_images(imgs_path):
#cat_path = os.path.(imgs_path)
    if not os.path.exists(imgs_path):
        print "Error! Path of images directory not exists!"
        return False
    gifts = Gift.all()
    for i, gift in enumerate(gifts):
        print i + 1
        if gift.thumbs:
            continue
        fill_obj(gift, imgs_path)
Ejemplo n.º 13
0
def export():
    export_path = 'experiments/images/'
    if not os.path.exists(export_path):
        os.mkdir(export_path)
    for gift in Gift.all():
        if gift.thumbs:
            path = os.path.join(export_path, gift.uid)
            os.mkdir(path)
        for i,thumb in enumerate(gift.thumbs):
            img = internal_thumb_image(thumb, size="700x700")
            if img:                
                fimage = open(os.path.join(path,'%s.jpg' % i), 'wb')
                fimage.write(img)
Ejemplo n.º 14
0
Archivo: views.py Proyecto: gmist/f-toy
def all_brands(request):
    objs_tmp = Brand.all()
    brands = {}
    brands_ids = {}
    objs = []
    for o in objs_tmp:
        if o.gifts.filter('leftovers >', 0).count():
            objs.append(o)

    for brand in objs:
        brands[brand.brand] = [Gift.all().filter('brand =', brand).fetch(3)]
        brands_ids[brand.brand] = brand.key().id()
    return render_to_response('index_page/brands.html',
        {'brands': brands, 'brands_ids': brands_ids})
Ejemplo n.º 15
0
Archivo: admin.py Proyecto: gmist/f-toy
def all(request):
    gifts_list = Gift.all()
    paginator = Paginator(gifts_list, 26)
    try:
        page = int(request.args.get('page',1))
    except ValueError:
        page = 1

    try:
        gifts = paginator.page(page)
    except (EmptyPage, InvalidPage):
        gifts = paginator.page(paginator.num_pages())

    return render_to_response('gift/admin/all.html', {'gifts':gifts})
Ejemplo n.º 16
0
def clear_description_formatting():
    for i, gift in enumerate(Gift.all()):
        print i
        change_flag = False
        if gift.description:
            tmp = gift.description
            gift.description = clear_data(gift.description)
            if tmp != gift.description:
                change_flag = True
        if gift.short_description:
            tmp = gift.short_description
            gift.short_description = clear_data(gift.short_description)
            if tmp != gift.short_description:
                change_flag = True
        if change_flag:
            gift.put()
Ejemplo n.º 17
0
def del_gifts(request):
#    for gift in Gift.all().filter('to_sync =', True):
#        gift.delete()
    for gift in Gift.all().filter('to_sync =', True):
        if not gift.id_1c:
            continue
        def txn():
            task_id = str(uuid.uuid4())
            memcache.add(task_id, gift.id_1c, TASK_LIVE_TIMEOUT)
            taskqueue.add(
                url=url_for(
                    'api/internal_delete_gifts_json_1c',
                    task_id=task_id
                ),
                transactional=True)
        db.run_in_transaction(txn)
    return redirect(url_for('admin/index'))
Ejemplo n.º 18
0
def select_filters(request):
    if request.method == 'POST':
        selected_brands = request.form.getlist('brands')
        brands_gifts = []
        if selected_brands:
            brands_gifts = [gift.key() for gift in Gift.all().filter('brand in', selected_brands)]

        subcategories_gifts = []
        selected_subcategories = request.form.getlist('subcategories')
        if selected_subcategories:
            subcategories_gifts = [gift.key() for gift in Gift.all().filter('subcategory in', selected_subcategories)]

        selected_groups = request.form.getlist('groups')
        groups_gifts = []
        if selected_groups:
            groups_gifts = [gift.key() for gift in Gift.all().filter('group in', selected_groups)]

        selected_dates = request.form.getlist('receipt_dates')
        dates_gift = []
        if selected_dates and len(selected_dates) == 2:
            date_from = string.strip(min(selected_dates))
            date_to = string.strip(max(selected_dates))

            if date_from:
                try:
                    date_from = datetime.date(datetime.strptime(date_from, '%Y-%m-%d'))
                except ValueError:
                    date_from = ''

            if date_to:
                try:
                    date_to = datetime.date(datetime.strptime(date_to, '%Y-%m-%d'))
                except ValueError:
                    date_to = ''

            if date_from and date_to:
                dates_gift = [gift.key() for gift in Gift.all().filter('receipt_date >=', date_from).filter('receipt_date <=', date_to)]
            else:
                if date_from:
                    dates_gift = [gift.key() for gift in Gift.all().filter('receipt_date =', date_from)]
                else:
                    if date_to:
                        dates_gift = [gift.key() for gift in Gift.all().filter('receipt_date =', date_to)]


        gifts = set(brands_gifts + subcategories_gifts + groups_gifts + dates_gift)
        request.session['mass_edit_items'] = gifts
        return redirect('/admin/mass_edit/edit/')

    request.session['mass_edit_items'] = 0
    brands = Gift.get_brand_list(is_admin=True)
    subcategories = Gift.get_subcategories_list()
    return render_to_response('admin/mass_edit/select_filters.html', {'brands':brands, 'subcategories':subcategories})
Ejemplo n.º 19
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")
Ejemplo n.º 20
0
def quick_import(file_name='sync.csv'):
    csv_file = open_csv(file_name)
    for line in csv_file:
        if line[0]:
            print line[0]
            gift = Gift.all().filter('uid =', line[0])
            if gift:
                gift = gift[0]
                brand = unicode.strip(line[1].decode('utf8'))
                gift.brand = brand
                if line[2]:
                    date_tmp = datetime.date(
                            datetime.strptime(line[2], '%Y-%m-%d'))
                    if date_tmp:
                        gift.receipt_date = date_tmp
                else:
                    gift.receipt_date = None
                gift.put()
Ejemplo n.º 21
0
def import_data(in_file='quick_export.csv'):
#    reader = csv.reader(open(os.path.join(DEFAULT_PATH, in_file)))
    reader = csv.reader(open(in_file))
    for i, line in enumerate(reader):
        if not i:
            continue
        uid = line[1]
        category = line[5].decode('utf-8')
        subcategory = line[6].decode('utf-8')

        if category:
            category_obj = Category.all().filter('name =', category)
            if category_obj.count():
                category_obj = category_obj[0]
            else:
                category_obj = Category(name=category)
                category_obj.put()
        else:
            category_obj = None

        if category and subcategory:
            group_obj = Group.all().filter('name =', subcategory).filter('category =', category_obj)
            if group_obj.count():
                group_obj = group_obj[0]
            else:
                group_obj = Group(name=subcategory, category=category_obj)
                group_obj.put()
        else:
            group_obj = None


        gift = Gift.all().filter('uid =', uid)

        if gift.count():
            gift = gift[0]
            gift.category = category_obj
            gift.group = group_obj
            gift.put()
            print 'Gift %s updated' % uid
        else:
            print 'Gift %s not found' % uid
Ejemplo n.º 22
0
Archivo: views.py Proyecto: gmist/f-toy
def index(request):
    gifts_list = Gift.all().order('-rating')
    gifts_list = filter_leftovers(gifts_list)
    paginator = Paginator(gifts_list, 24)
    banners = MainPageBanner.all()
    try:
        page = int(request.args.get('page', 1))
    except ValueError:
        page = 1
    try:
        gifts = paginator.page(page)
    except (EmptyPage, InvalidPage):
        gifts = paginator.page(paginator.num_pages())
    categories = get_cat_subcat()
    return render_to_response('index_page/main_page.html',
            {'gifts': gifts,
             'banners': banners,
             'categories': categories[0],
             'subcategories': categories[1],
             'subcategories_keys': categories[2],
             'price_modif': GlobalPriceModif.get_price_modif()})
Ejemplo n.º 23
0
def preview2(request, key_id):
    newsletter = Newsletter2.get_by_id(key_id)
    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 = []
    for mgr_id in newsletter.managers:
        mgr = Manager.get_by_id(mgr_id)
        if mgr:
            managers.append(mgr)

    emails = newsletter.emails

    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/newsletters2/preview.html",
        {
            "newsletter": newsletter,
            "gifts": gifts,
            "key_id": key_id,
            "files": files,
            "managers": managers,
            "emails": emails,
        },
    )
Ejemplo n.º 24
0
def sync_gift(request):
    del_gifts = 0
    for gift in Gift.all().filter('to_sync =', True):
        if not gift.id_1c:
            continue
        del_gifts += 1
        def txn():
            task_id = str(uuid.uuid4())
            memcache.add(task_id, gift.id_1c, TASK_LIVE_TIMEOUT)
            taskqueue.add(
                url=url_for(
                    'api/internal_delete_gifts_json_1c',
                    task_id=task_id
                ),
                transactional=True)
        db.run_in_transaction(txn)
    ids_3dhero = []
    try:
        result = urlfetch.fetch('http://www.3dhero.ru/api/v2/to_sync.json')
        if result.status_code == 200:
            response_json = simplejson.loads(result.content)
            if response_json['success']:
                ids_3dhero = response_json['result']
        for id in ids_3dhero:
            def txn_sync():
                task_id = str(uuid.uuid4())
                memcache.add(task_id, id, TASK_LIVE_TIMEOUT)
                taskqueue.add(
                    url=url_for('sync/sync_gift_task', task_id=task_id),
                    transactional=True
                )
            db.run_in_transaction(txn_sync)
    except:
        pass

    return render_to_response('sync/admin/sync_gift.html', {
        'ids_3dhero': ids_3dhero, 'del_gifts':del_gifts
    })
Ejemplo n.º 25
0
Archivo: views.py Proyecto: gmist/f-toy
def sync_new(request):
    gifts = Gift.all()
    gifts_uids = [gift.uid_5studio for gift in gifts]
    result = urlfetch.fetch('http://www.5studio.ru/api/v1/get/list/on_sale.json')
    if result.status_code == 200:
        j = simplejson.loads(result.content)
        if type(j) == list:
            for local_uid in gifts_uids:
                if local_uid not in j:
                    def del_txn():
                        taskqueue.add(
                            url=url_for('sync/delete_gift_task', uid=local_uid),
                            transactional=True
                        )
                    db.run_in_transaction(del_txn)
            for remote_uid in j:
                if remote_uid not in gifts_uids:
                    def txn():
                        taskqueue.add(url=url_for('sync/sync_new_task',
                        uid=remote_uid),
                        transactional=True)
                    db.run_in_transaction(txn)
    return render_to_response('sync/sync_gift.html')
Ejemplo n.º 26
0
def clean_db(file_path):
    from apps.gift.models import Gift

    csv_file = open_csv(file_path)
    i = 0
    uids = list()
    for line in csv_file:
        if not i:
        # skip first line (header)
            i = 1
            continue

        catalogue_uid = unicode.strip(line[3].decode('utf8'))
        if not catalogue_uid:
            continue
        uids.append(catalogue_uid)

    for i, gift in enumerate(Gift.all()):
        if gift.catalogue_id not in uids:
            print "%s. Deleted %s" % (i, gift.catalogue_id)
            gift.delete()
        else:
            print "%s. Skiped %s" % (i, gift.catalogue_id)
Ejemplo n.º 27
0
def sm_get_all_data(request):
    all_data = memcache.get('api_simple_get_all_data')
    if not all_data:
        all_data = []
        for gift in Gift.all().filter('in_trash =', False):
            tmp = {'uid': gift.uid}
            if gift.name:
                tmp['name'] = gift.name.replace('"', '\\"')
            if gift.name_origin:
                tmp['name_origin'] = gift.name_origin.replace('"', '\\"')
            if gift.brand:
                tmp['brand'] = gift.brand
            tmp['main_thumb_url'] = get_main_thumb_url(gift)
            if gift.description:
                tmp['description'] =\
                clear_data(gift.description).replace('"', '\\"')
            tmp['price'] = gift.price
            tmp['receipt_date'] = gift.receipt_date
            if not tmp['receipt_date']:
                tmp['receipt_date'] = ''
            tmp['box_size'] = gift.box_size
            tmp['box_volume'] = gift.box_volume
            tmp['real_price'] = gift.real_price
            tmp['modif_time'] = gift.modif_time
            tmp['add_time'] = gift.add_time
            tmp['vat'] = gift.vat
            all_data.append(tmp)

            if gift.category:
                tmp['subcategory'] = gift.category.name
            if gift.group:
                tmp['group'] = gift.group.name
        memcache.set('api_simple_get_all_data', all_data, 7200)
    return render_to_response(
        'api/simple/get_all_data.html',
        {'all_data': all_data})
Ejemplo n.º 28
0
Archivo: views.py Proyecto: gmist/f-toy
def get_gift_by_5studio(request, uid):
    gift = Gift.all().filter('uid_5studio =', uid).fetch(1)
    if gift and len(gift):
        return redirect('/gift/g/%s/' % gift[0].key().id())
    return redirect('/')
Ejemplo n.º 29
0
def update_gifts(task_id, create=False, except_fields=EXCEPT_FIELDS_UPDATE):
    set_obj = memcache.get(task_id)
    flag = False
    if set_obj:
        data = simplejson.loads(set_obj)
        memcache.delete(task_id)
        id_1c = data.get('id_1c', '')
        logging.info("API update 1c: %s" % id_1c)
        name = data.get('name', '')
        logging.info("API update name: %s" % name)
        if not id_1c and not name:
            if not create:
                return render_to_response('empty.html')
        if id_1c:
            gifts_obj = Gift.all().filter('id_1c =', id_1c)
            if not gifts_obj.count():
                gifts_obj = Gift.all().filter('name =', name)
        else:
            gifts_obj = Gift.all().filter('name =', name)
        if gifts_obj.count() and create:
            return render_to_response('empty.html')
        gift = None
        if gifts_obj.count() and not create:
            gift = gifts_obj[0]
        if not gifts_obj.count() and create:
            gift = Gift(name=name)
        if gift is None:
            return render_to_response('empty.html')

        # update category and groups
        category = data.get('subcategory', '-')
        group = data.get('group', '-')
        try:
            a = gift.category.name
            b = gift.group.name
        except Exception:
            gift.category = gift.group = None

        if category != '-' and group != '-':
            if not category or not group:
                if gift.category or gift.group:
                    gift.category = None
                    gift.group = None
                    flag = True
            else:
                category_obj = Category.all().filter('name =', category)
                if category_obj.count():
                    category_obj = category_obj[0]
                else:
                    category_obj = Category(name=category)
                    category_obj.put()
                if not gift.category or gift.category != category_obj:
                    gift.category = category_obj
                    flag = True

                group_obj = Group.all().filter(
                    'category =', category_obj).filter('name =', group)
                if group_obj.count():
                    group_obj = group_obj[0]
                else:
                    group_obj = Group(name=group, category=category_obj)
                    group_obj.put()
                if not gift.group or gift.group != group_obj:
                    gift.group = group_obj
                    flag = True

        # and other fields
        for key in data.keys():
            if key in except_fields:
                continue
            value = data.get(key, None)
            if value is None:
                continue
            if key == 'receipt_date':
                try:
                    new_date = datetime.date(
                        datetime.strptime(value, '%Y-%m-%d'))
                    if new_date == gift.receipt_date:
                        continue
                    gift.receipt_date = new_date
                    flag = True
                except ValueError:
                    if gift.receipt_date is not None:
                        gift.receipt_date = None
                        flag = True
                continue
            try:
                old_val = getattr(gift, key)
                if old_val == value:
                    continue
                setattr(gift, key, value)
                flag = True
            except AttributeError:
                pass
        if flag:
            gift.put()
            gift_views.get_gift(gift.uid, True)
    return render_to_response('empty.html')
Ejemplo n.º 30
0
Archivo: views.py Proyecto: gmist/f-toy
def delete_gift_task(request, uid):
    gift = Gift.all().filter('uid_5studio =', uid).fetch(1)
    if gift:
        gift[0].delete()
    return render_to_response('empty.html')