예제 #1
0
    def handle(self, *args, **kwargs):
        services = [
            ('查经', 'Bible Study', '创世纪1', '2020-07-20'),
            ('查经', 'Bible Study', '创世纪2', '2020-07-25'),
            ('查经', 'Bible Study', '创世纪3', '2020-07-31'),
            ('敬拜', 'Worship', '新心音乐', '2020-07-20'),
            ('敬拜', 'Worship', '赞美之泉', '2020-07-25'),
            ('敬拜', 'Worship', 'Hillsong', '2020-07-31'),
            ('饭食', 'Food pickup', 'First Chinese', '2020-07-20'),
            ('饭食', 'Food pickup', 'Panda Express', '2020-07-25'),
            ('饭食', 'Food pickup', 'Chickfila', '2020-07-31'),
        ]

        kcat, kds, kdt, knt = kwargs.get('category'), kwargs.get(
            'description'), kwargs.get('date'), kwargs.get('note')
        # Create several services
        if not kcat and not kds and not kdt and not knt:
            for ser in services:
                cat = Category.objects.filter(name=ser[0]).first()
                if not cat:
                    # Create the category
                    cat = Category(name=ser[0])
                    cat.save()

                s = Service(
                    description=ser[1],
                    note=ser[2],
                    service_date=str2date(ser[-1]),
                )
                s.save()
                s.categories.add(cat)
            # todo: create services of the week

            self.stdout.write('Service records are saved successfully.')

        else:  # Create a service
            cat = Category.objects.filter(name=kwargs.get('category')).first()
            if not cat:
                cat = Category(name=kwargs.get('category'))
                cat.save()

            sr = Service(service_date=str2date(kwargs.get('date')),
                         description=kwargs.get('description'),
                         note=kwargs.get('note'))
            sr.save()
            sr.categories.add(cat)

            self.stdout.write('Service record is saved successfully.')
예제 #2
0
def newCategory():
    if request.method == 'GET':
        return render_template('new_category.html')
    elif request.method == 'POST':
        try:
            if request.form['name']:
                newCategory = Category(name=request.form['name'],
                                       user_id=current_user.id)
                db.session.add(newCategory)
                db.session.commit()
                flash({
                    "message": "Category successfully added!",
                    "role": "success"
                })
            else:
                flash({
                    "message": "Category name cannot be empty!",
                    "role": "failure"
                })
            return redirect(url_for('main.showHome'))
        except exc.SQLAlchemyError as e:
            flash({
                "message":
                "Something went wrong while processing your request.",
                "role": "failure"
            })
            return redirect('/')
예제 #3
0
def newCategory():
    """ Create new category """

    # user must be authenticated
    if 'user_id' not in session:
        return redirect('/login')

    form = CategoryForm()
    if form.validate_on_submit():

        # check that name != 'new', which is used for routing
        if form.name.data.lower() == 'new':
            form.name.errors.append("'new' is a reserved word, and cannot"
                                    " be used as a category name.")
            return render_template('new_category.html', form=form)

        category = Category(name=form.name.data, user_id=session['user_id'])
        db_session.add(category)
        try:
            db_session.commit()
        except exc.IntegrityError:
            # category name should be unique
            db_session.rollback()
            form.name.errors.append("Category already exists.")
            return render_template('new_category.html', form=form)

        flash("Created new category %s." % category.name)
        return redirect(url_for('catalog'))
    return render_template('new_category.html', form=form)
예제 #4
0
def seed_db():
    user1 = User(name='user1', email='*****@*****.**')
    user2 = User(name='user2', email='*****@*****.**')
    db.session.add(user1)
    db.session.add(user2)
    db.session.commit()

    categories_data = [
        {'name': 'Football'},
        {'name': 'Tennis'},
    ]

    for categories in categories_data:
        new_category = Category(name=categories['name'])
        db.session.add(new_category)
    db.session.commit()

    items_data = [
        {'name': 'Ball', 'description': 'Football', 'category_id': 1},
        {'name': 'Net', 'description': 'Football', 'category_id': 1},
        {'name': 'Racket', 'description': 'Tennis', 'category_id': 2},
        {'name': 'Tennis ball', 'description': 'Football', 'category_id': 2},
    ]
    for index, item in enumerate(items_data):
        new_item = Item(name=item['name'], description=item['description'],
                        category_id=item['category_id'], user_id=(index % 2 + 1))
        db.session.add(new_item)
    db.session.commit()
예제 #5
0
def test_category_categoryname_model():
    gongfu = Brewing(
        temperature=99,
        weight=5,
        initial=timedelta(seconds=10),
        increments=timedelta(seconds=3),
    )
    gongfu.save()
    western = Brewing(
        temperature=85,
        weight=0.8,
        initial=timedelta(seconds=180),
        increments=timedelta(seconds=30),
    )
    western.save()
    category = Category(name="OOLONG",
                        gongfu_brewing=gongfu,
                        western_brewing=western)
    category.save()
    assert category.name == "OOLONG"
    assert str(category.gongfu_brewing) == "5g 99°c 10s +3s"
    assert type(category.western_brewing) == Brewing

    categoryname = CategoryName(category=category, name="blue")
    categoryname.save()
    assert categoryname.name == "blue"
예제 #6
0
def new_category(name):
    """
    new_category creates a new Category object given the name
    """
    category = Category()
    category.name = name
    return category
예제 #7
0
def seed():
    """Create some default categories"""
    # Seed some default categories
    categories = [
        {
            'name': 'Backend'
        },
        {
            'name': 'Frontend'
        },
        {
            'name': 'DevOps'
        },
        {
            'name': 'QA'
        },
        {
            'name': 'Data Science'
        },
        {
            'name': 'BlockChain'
        },
    ]

    for category in categories:
        new_category = Category(name=category['name'])
        db.session.add(new_category)

    db.session.commit()
예제 #8
0
    def test_create_category(self):
        nbr_of_category_before_add = Category.objects.count()

        new_category = Category()
        new_category.name = "Moins de gras"
        new_category.save()

        nbr_of_category_after_add = Category.objects.count()

        self.assertTrue(nbr_of_category_after_add == nbr_of_category_before_add + 1)
예제 #9
0
def test_valid_subcategory_serializer(client):
    user = CustomUser(email="*****@*****.**")
    user.save()
    category = Category(name="OOLONG")
    category.save()
    valid_serializer_data = {
        "user": user,
        "name": "test",
        "category": category.id
    }
    serializer = SubcategorySerializer(data=valid_serializer_data)
    assert serializer.is_valid()
    assert type(serializer.validated_data["category"]) == Category
    assert serializer.errors == {}
예제 #10
0
 def handle(self, *args, **options):
     print 'Start loading categories'
     Category.objects.all().delete()
     SubCategory.objects.all().delete()
     categories = self.parse()
     for i in categories:
         c = Category(name=i['name'])
         c.save()
         for j in i['sub_cat']:
             s = SubCategory(name=j['name'], parent_category=c)
             s.save()
             for h in j['sub']:
                 _s = SubSubCategory(name=h, parent_sub_category=s)
                 _s.save()
             print 'Process ... %s' % s.name
예제 #11
0
def test_user_can_create_and_view_vendor(client, token):
    category = Category(name="OOLONG")
    category.save()
    resp = client.post(
        "/api/vendor/",
        {"name": "Test", "website": "https://www.stilltest.com", "popularity": 7},
        content_type="application/json",
        HTTP_AUTHORIZATION=f"Bearer {token}",
    )
    assert resp.status_code == 201
    resp = client.get("/api/vendor/", HTTP_AUTHORIZATION=f"Bearer {token}")
    assert resp.status_code == 200
    assert resp.data[0]["user"]
    assert resp.data[0]["name"] == "Test"
    assert resp.data[0]["website"] == "https://www.stilltest.com"
    assert resp.data[0]["popularity"] == 7
예제 #12
0
def test_user_can_create_and_view_subcategory(client, token):
    category = Category(name="OOLONG")
    category.save()
    resp = client.post(
        "/api/subcategory/",
        {"name": "Test", "translated_name": "Still test", "category": category.id},
        content_type="application/json",
        HTTP_AUTHORIZATION=f"Bearer {token}",
    )
    assert resp.status_code == 201
    resp = client.get("/api/subcategory/", HTTP_AUTHORIZATION=f"Bearer {token}")
    assert resp.status_code == 200
    assert resp.data[0]["user"]
    assert resp.data[0]["name"] == "Test"
    assert resp.data[0]["translated_name"] == "Still test"
    assert resp.data[0]["category"] == category.id
예제 #13
0
    def handle(self, *args, **options):
        print('Loading category')
        Category.objects.all().delete()
        Journal.objects.all().delete()

        names = ['ЖЕНСКИЕ', 'МУЖСКИЕ', 'ДЕТСКИЕ', 'ДОМ И СЕМЬЯ']
        cntc = 0
        for name in names:
            cntc += 1
            c = Category()
            c.name = name
            c.save()
            print('Saving %s' % name)

            journal_list = ['Наука и техника', 'Здоровье', 'Моделист-конструктор', 'Лиза', 'Прибой', 'Забой', 'Внуки и правнуки', 'В мире муравья']
            cnt = 0
            for jname in journal_list:
                cnt += 1
                j = Journal()
                j.name = jname+" "+str(cnt)+str(cntc)
                j.is_public = True
                j.show_in_books = True
                j.is_popular = True
                j.save()
                j.category.add(c)
                path = os.path.join(settings.BASE_DIR,'init_data','journal',f'{cnt}.jpg')
                with open(path, 'rb') as doc_file:
                    j.default_cover.save(f'{cnt}.jpeg', File(doc_file), save=True)

                for ni in range(1,20):
                    name = f'выпуск {ni}'
                    i = Issue()
                    i.name = name
                    i.is_public = True
                    i.journal = j
                    i.save()

                    for pi in range(1,10):
                        p = IssuePage()
                        p.paper = i
                        p.page = pi
                        p.save()
                        path = os.path.join(settings.BASE_DIR,'init_data','journal',f'{pi}.jpg')
                        with open(path, 'rb') as doc_file:
                            p.file_low.save(f'{pi}.jpeg', File(doc_file), save=True)
                            p.file_middle.save(f'{pi}.jpeg', File(doc_file), save=True)
                            p.file_high.save(f'{pi}.jpeg', File(doc_file), save=True)
예제 #14
0
def test_tea_nested_serializers_create_update(client, token):
    category = Category(name="OOLONG")
    category.save()
    resp_vendor = client.post(
        "/api/vendor/",
        {
            "name": "Test vendor",
            "website": "https://www.stilltest.com",
            "popularity": 7,
        },
        content_type="application/json",
        HTTP_AUTHORIZATION=f"Bearer {token}",
    )
    assert resp_vendor.status_code == 201
    resp_post = client.post(
        "/api/tea/",
        {
            "name": "Test tea",
            "subcategory": {"name": "Test subcategory", "category": category.id},
            "vendor": {"name": "Test vendor"},
        },
        content_type="application/json",
        HTTP_AUTHORIZATION=f"Bearer {token}",
    )
    assert resp_post.status_code == 201
    assert resp_post.data["name"] == "Test tea"
    assert resp_post.data["subcategory"]["name"] == "Test subcategory"
    assert resp_post.data["vendor"]["name"] == "Test vendor"
    assert resp_post.data["vendor"]["id"] == resp_vendor.data["id"]

    _id = resp_post.data["id"]
    resp_put = client.put(
        f"/api/tea/{_id}/",
        {
            "name": "Updated tea",
            "subcategory": {"name": "Updated subcategory", "category": category.id},
            "vendor": {"name": "Test vendor"},
        },
        content_type="application/json",
        HTTP_AUTHORIZATION=f"Bearer {token}",
    )
    assert resp_put.status_code == 200
    assert resp_put.data["name"] == "Updated tea"
    assert resp_put.data["subcategory"]["name"] == "Updated subcategory"
    assert resp_put.data["subcategory"]["id"] != resp_post.data["subcategory"]["id"]
    assert resp_put.data["vendor"]["name"] == "Test vendor"
    assert resp_put.data["vendor"]["id"] == resp_post.data["vendor"]["id"]
예제 #15
0
def test_subcategory_subcategoryname_model():
    user = CustomUser(email="*****@*****.**")
    user.save()
    category = Category(name="OOLONG")
    category.save()
    origin = Origin(country="Germany",
                    region="Yunnan",
                    locality="Paris",
                    user=user)
    origin.save()
    gongfu = Brewing(
        temperature=99,
        weight=5,
        initial=timedelta(seconds=10),
        increments=timedelta(seconds=3),
    )
    gongfu.save()
    western = Brewing(
        temperature=85,
        weight=0.8,
        initial=timedelta(seconds=180),
        increments=timedelta(seconds=30),
    )
    western.save()
    subcategory = Subcategory(
        category=category,
        name="Da Hong Pao",
        translated_name="Big Red Robe",
        origin=origin,
        user=user,
        gongfu_brewing=gongfu,
        western_brewing=western,
    )
    subcategory.save()
    assert not subcategory.is_public
    assert subcategory.name == "Da Hong Pao"
    assert subcategory.category.name == "OOLONG"
    assert subcategory.translated_name == "Big Red Robe"
    assert subcategory.origin.locality == "Paris"
    assert subcategory.gongfu_brewing.temperature == 99
    assert subcategory.western_brewing.weight == 0.8

    assert str(subcategory) == "Da Hong Pao (Big Red Robe)"

    subcategoryname = SubcategoryName(subcategory=subcategory, name="dhp")
    subcategoryname.save()
    assert subcategoryname.name == "dhp"
예제 #16
0
def category_create():
    """
    This creates a new category only if the user is logged in
    """
    if not logged_in():
        flash('Please log in to create categories')
        return redirect(url_for('category_list'))
    form = CategoryForm()
    if form.validate_on_submit():
        category = Category()
        category.title = form.title.data
        user = get_current_user()
        category.ctlg_user = user
        db.session.add(category)
        db.session.commit()
        return redirect(url_for('category_list'))
    return render_template('category_create.html', form=form)
예제 #17
0
 def handle(self, *args, **options):
     print 'Start loading categories'
     Category.objects.all().delete()
     SubCategory.objects.all().delete()
     categories = json.load(
         open(os.path.join(BASE_DIR, 'data', 'categories.json')))['result']
     for i in categories:
         c = Category(name=i['name'])
         c.save()
         for j in i['sub_cat']:
             s = SubCategory(name=j['name'], parent_category=c)
             s.save()
             for h in j['sub']:
                 _s = SubSubCategory(name=h, parent_sub_category=s)
                 _s.save()
             print 'Process ... %s' % s.name
     cache.delete('categories')
예제 #18
0
def edit(item_id):
    item = Item.query.filter_by(id=item_id).first_or_404()
    form = ItemForm(obj=item)
    print(form)
    if form.validate_on_submit():
        form.populate_obj(item)
        print(form.validate_on_submit())
        if form.new_category.data:
            new_category = Category(form.new_category.data)
            db.session.add(new_category)
            db.session.flush()
            post.category = new_category
        db.session.commit()
        return redirect(url_for('article', slug=item.slug))
    return render_template('catalog/items.html',
                           form=form,
                           item=item,
                           action="edit")
예제 #19
0
def new_category():
    """
    Function to create a new category.
    """

    set_redirect_url()

    user = get_user()
    if not user:
        return redirect(url_for('login'))
    if request.method == 'POST':
        category = Category(name=request.form['name'],
                            user_id=login_session['user_id'])
        db_session.add(category)
        db_session.commit()
        flash('New Category {} Successfully Created!'.format(category.name))
        return redirect(url_for('index'))
    else:
        return render_template('new_category.html', user=user)
예제 #20
0
def test_brewing_session_model():
    user = CustomUser(email="*****@*****.**")
    user.save()
    category = Category(name="OOLONG")
    category.save()
    tea = Tea(user=user, name="Da Hong Pao")
    tea.save()
    brewing = Brewing(
        temperature=99,
        weight=5,
        initial=timedelta(seconds=10),
        increments=timedelta(seconds=3),
    )
    brewing.save()
    session = BrewingSession(user=user, tea=tea, brewing=brewing)
    session.save()
    assert session.user.email == "*****@*****.**"
    assert session.tea.name == "Da Hong Pao"
    assert session.brewing.temperature == 99
    assert session.current_infusion == 1
    assert not session.is_completed
    assert session.created_on
예제 #21
0
    def handle(self, *fixture_labels, **options):

        if len(fixture_labels) > 0:
            path = fixture_labels[0]
            if not os.path.exists(path):
                print 'Path does not exist:', path
                return

            fields = fields_for_model(Category)

            reader = csv.reader(open(path), delimiter=";")
            self.header = reader.next()
            columns = list(set(fields.keys()) & set(self.header))
            if 'id' in self.header:
                key = 'id'
            elif 'slug' in self.header:
                key = 'slug'
            else:
                raise ValueError(
                    'Either id or slug column must be present in csv data.')

            for row in reader:
                pk = self.get_value(key, row)
                q = {key: pk}
                data = dict([(c, getattr(self, 'resolve_' + c,
                                         self.get_value)(c, row))
                             for c in columns])
                cat = None
                if Category.objects.filter(**q).count() > 0:
                    Category.objects.filter(**q).update(**data)
                    cat = Category.objects.get(**q)
                else:
                    if key not in data:
                        data[key] = pk
                    cat = Category(**data)

                if cat:
                    cat.save()
예제 #22
0
def items():
    form = ItemForm()
    if form.validate_on_submit():
        if form.new_category.data:
            new_category = Category(form.new_category.data)
            db.session.add(new_category)
            db.session.flush()
            category = new_category
        elif form.category.data:
            category_id = form.category.get_pk(form.category.data)
            category = Category.query.filter_by(id=category_id).first()
        else:
            category = None
        catalog = Catalog.query.first()
        author = Author.query.filter_by(username=session['username']).first()
        title = form.title.data
        description = form.description.data
        slug = slugify(title)
        item = Item(catalog, author, title, description, category, slug)
        db.session.add(item)
        db.session.commit()
        return redirect(url_for('article', slug=slug))
    return render_template('catalog/items.html', form=form, action="new")
예제 #23
0

def add_item(category, item):
    item.category_id = category.id
    db.add(item)
    db.commit()


user = User(name="Peter Pan",
            email="*****@*****.**",
            picture="https://placehold.it/300x300.png?text=Peter+Pan")

db.add(user)
db.commit()

category1 = Category(name="Books")
db.add(category1)

category2 = Category(name="Electronics")
db.add(category2)

category3 = Category(name="Food")
db.add(category3)

category4 = Category(name="Miscellaneous")
db.add(category4)

db.commit()

add_item(
    category1,
예제 #24
0
def initdb():
    from catalog.models import User, Category, Course
    user1 = User(name='Seunghun Lee',
                 email='*****@*****.**')

    db.session.add(user1)
    db.session.commit()

    categories = [
        'Programming Language',
        'Math',
        'Physics',
        'Deep Learning',
    ]


    # Add Categories
    for category_name in categories:
        new_category = Category(name=category_name, user_id=1)
        db.session.add(new_category)
        db.session.flush()

    course = Course(name='Programming Foundations with Python',
                    level='Beginner',
                    url='https://www.udacity.com/course/programming-foundations-with-python--ud036',
                    image_url='https://s3-us-west-1.amazonaws.com/udacity-content/course/images/ud036-0619766.jpg',
                    description='Learn Object-Oriented Programming',
                    provider='Udacity',
                    category_id=1,
                    user_id=1)
    db.session.add(course)

    course = Course(name='Linear Algebra Refresher Course',
                    level='Intermediate',
                    url='https://www.udacity.com/course/linear-algebra-refresher-course--ud953',
                    image_url='https://s3-us-west-1.amazonaws.com/udacity-content/course/images/ud953-d95e68e.jpg',
                    description='A Brief Refresher (with Python!)',
                    provider='Udacity',
                    category_id=2,
                    user_id=1)
    db.session.add(course)

    course = Course(name='Intro to Physics',
                    level='Beginner',
                    url='https://www.udacity.com/course/intro-to-physics--ph100',
                    image_url='https://lh6.ggpht.com/9xDuLEr_4CuXcBZVbMQPagaUOvdUOH_T8V4I9Nm9XvDogvR4_yudI60v5_0tWedKx2LInYQiV6KOGqNPXuo=s0#w=436&h=268',
                    description='Landmarks in Physics',
                    provider='Udacity',
                    category_id=3,
                    user_id=1)
    db.session.add(course)

    course = Course(name='Deep Learning',
                    level='Advanced',
                    url='https://www.udacity.com/course/deep-learning--ud730',
                    image_url='https://s3-us-west-1.amazonaws.com/udacity-content/course/images/ud730-b3af4bf.jpg',
                    description='Take machine learning to the next level',
                    provider='Udacity',
                    category_id=4,
                    user_id=1)
    db.session.add(course)

    db.session.commit()

    for course in db.session.query(Course).all():
        print course.id, course.name, 'in', course.category.name
예제 #25
0
 def setUp(self):
     new_category = Category()
     new_category.name = "Moins de gras"
     new_category.save()
예제 #26
0
def add_model(request,model,template_name=""):
	# show_model(request,model,template_name)
	# print();
	result = "";
	if request.method == 'POST':
		print('add')
		if request.POST.get('mode')=='add_cart_item':

			cart.add_to_cart(request)
			cart_items_list = []
			cart_items = cart.get_cart_items(request)
			# serializers.serialize("json", )
			cart_item_count = cart.cart_distinct_item_count(request)
			# result = {'cart_items' : cart_items ,'cart_item_count' : cart_item_count}
			# print(cart_item_count)
			for c in cart_items:
				# print(c)
				item = {}
				item.setdefault('image',c.image())
				item.setdefault('name',c.name())
				item.setdefault('quantity',c.quantity)
				price = str(c.price())
				item.setdefault('unit_price',price)
				total = str(c.total())
				item.setdefault('total_price',total)
				item.setdefault('id',c.id)
				# print(item)
				cart_items_list.append(item)
			# print(cart_items_list)
			# cart_items = serializers.serialize("json", cart_items_list)
			# print(cart_items)
			result = {'cart_items' : cart_items_list ,'cart_item_count' : cart_item_count}
			# print(json.dumps(result))
			print('++++++++++++++++++++++++++++++')
			return HttpResponse(json.dumps(result),content_type='application/javascript; charset=utf-8')				
		else:
			if model == 'people':
				name = request.POST.get('name')
				islug = slug(name)
				category = Category()
				category.name = name
				category.description = request.POST.get('description')
				is_active = request.POST.get('is_active')
				if is_active=="on":
					category.is_active = True
				else:
					category.is_active = False
				category.slug = islug
				category.updated_at = datetime.datetime.now().strftime("%m/%d/%Y")
				category.created_at = datetime.datetime.now().strftime("%m/%d/%Y")
				category.save()
				result = "saved"
				print('add people')
			elif model == 'subcategory':
				subcategory = SubCategory()
				subcategory.name = request.POST.get('name')
				subcategory.description = request.POST.get('description')
				subcategory.slug = slug(subcategory.name)
				is_active = request.POST.get('is_active')
				subcategory.updated_at = datetime.datetime.now().strftime("%m/%d/%Y")
				subcategory.created_at = datetime.datetime.now().strftime("%m/%d/%Y")
				if is_active=="on":
					subcategory.is_active = True
				else:
					subcategory.is_active = False
				subcategory.save()
				selected_c = json.loads(request.POST.get('selected_categories'))
				for s_c in selected_c:
					c = get_object_or_404(Category, slug=s_c)
					subcategory.categories.add(c)
				subcategory.save()		
				print('add subcategory')
			elif model == 'product':
				p = Product()
				postdata = request.POST.copy()
				p.name = postdata.get('name','a')
				product_name = postdata.get('name','a')
				p.brand = postdata.get('brand')
				p.sku = postdata.get('sku')
				p.price = postdata.get('price')
				p.old_price = postdata.get('old_price')
				p.quantity = postdata.get('quantity')
				p.description = postdata.get('description')
				# print(postdata.get('user'))
				user = get_object_or_404(MyUser, username=postdata.get('user'))
				p.user = user
				p.slug = slug(p.name)
				is_active = request.POST.get('is_active')
				if is_active=="on":
					p.is_active = True
				else:
					p.is_active = False
				p.updated_at = datetime.datetime.now().strftime("%m/%d/%Y")
				p.created_at = datetime.datetime.now().strftime("%m/%d/%Y")
				if request.FILES:
					print('image_exist')
					p_main_file=request.FILES['img']
					file_extention = os.path.splitext(str(request.FILES['img']))[1]
					# print(file_extention)
					# file_name = str(request.FILES['img']).split('.')
					# file_extention = file_name[len(file_name)-1]
					image_name = str(user)+'_'+p.name+file_extention
					p_thumbnail_file=request.FILES['img']
					with open(MEDIA_ROOT+'images/products/thumbnails/'+image_name, 'wb+') as destination:
						if p_thumbnail_file.multiple_chunks():
							for chunk in p_thumbnail_file.chunks():
								destination.write(chunk)
						else:
							destination.write(p_thumbnail_file.read())
					with open(MEDIA_ROOT+'images/products/thumbnails/'+image_name, 'rb+') as destination:
						image_file = destination.read()
					with open(MEDIA_ROOT+'images/products/main/'+image_name, 'wb+') as destination:
						destination.write(image_file)
					p.image=image_name
				else:
					print('image_empty')
					p.image='default'
				p.save()
				selected_subc = json.loads(request.POST.get('selected_subcategories'))
				for p_subc in selected_subc:
					subc = get_object_or_404(SubCategory, slug=p_subc)
					p.subcategories.add(subc)
				p.save()
				print('add product')
			elif model == 'myuser':
				user = MyUser()
				postdata = request.POST.copy()
				user.username = postdata.get('name')
				user.first_name = postdata.get('first_name')
				user.last_name = postdata.get('last_name')
				##########change date format###########YYYY-MM-DD
				# date_of_birth = postdata.get('date_of_birth')
				# date_list = date_of_birth.split('/')
				# join_str = '-'
				# user.date_of_birth = join_str.join(date_list)
				user.date_of_birth = postdata.get('date_of_birth')
				########################################
				user.address = postdata.get('address','a')
				user.telephone = postdata.get('telephone')
				user.password = make_password(postdata.get('password'))
				user.is_active = True
				user.is_staff = True
				user.save()
				print('add myuser')
			elif model == 'order':
				order = Order()
				postdata = request.POST.copy()
				myuser = get_object_or_404(MyUser, username=postdata.get('user'))
				print(postdata)
				order.address = myuser.address
				order.phone = myuser.telephone
				order_status = get_object_or_404(OrderStatus, id=postdata.get('status'))
				print(order_status.name)
				order.status = order_status
				order.ip_address = postdata.get('ip_address')
				# user = get_object_or_404(MyUser, username=postdata.get('user'))
				order.user = myuser
				order.transaction_id = postdata.get('transaction_id')
				order.last_updated = datetime.datetime.now().strftime("%m/%d/%Y")	
				order.save()
				print(order.id);
				cart_items = cart.get_cart_items(request)
				for c in cart_items:
					orderitem = OrderItem()
					orderitem.product = c.product
					orderitem.price = c.price()
					orderitem.quantity = c.quantity
					orderitem.order = order
					orderitem.save()
				print('add order')
			elif model == 'orderitem':
				orderitem = OrderItem()
				postdata = request.POST.copy()
				product = get_object_or_404(Product, slug=postdata.get('product'))
				orderitem.product = product
				orderitem.price = product.price
				orderitem.quantity = postdata.get('quantity') 
				order = get_object_or_404(Order, id=postdata.get('order'))
				orderitem.order = order
				orderitem.save()
				print('add orderitem')
			# return show_model(request,model,'')
			url = urlresolvers.reverse('model',kwargs = {'model':model})
			return HttpResponseRedirect(url)
	else:
		app_list = permission_app(request)
		# print('_________________addpermission_________________')
		if check_permission(request,'add',model):
			if model == 'people':
				print('category')
			elif model == 'subcategory':
				category = Category.objects.all()
				print('subcategory')
			elif model == 'product':
				user_list = MyUser.objects.all()
				subcategory = SubCategory.objects.all()
				print('product')
				print(subcategory)
			elif model == 'myuser':
				print('myuser')
			elif model == 'order':
				cart.clean(request)
				user_list = MyUser.objects.all()
				product = Product.objects.all()
				order_status = OrderStatus.objects.all()
					# print(request.GET)
					# print('-------------------------------')
					# cart.add_to_cart(request)
					# cart_items = serializers.serialize("json", cart.get_cart_items(request))
					# cart_item_count = cart.cart_distinct_item_count(request)
					# result = {'cart_items' : cart_items ,'cart_item_count' : cart_item_count}
					# print(result)
					# print('++++++++++++++++++++++++++++++=')
					# return HttpResponse(json.dumps(result),content_type='application/javascript; charset=utf-8')				
				print('order')
			elif model == 'orderitem':
				product = Product.objects.all()
				order_list = Order.objects.all()
				print('orderitem')
			# subcategories = SubCategory.objects.all()
			
			template_name = 'myadmin/add/'+model+'.html'
			return render_to_response(template_name, locals(),context_instance=RequestContext(request))
		else:
			template_name = 'myadmin/err.html'
			return render_to_response(template_name, locals(),context_instance=RequestContext(request))
예제 #27
0
    def handle(self, *args, **options):
        parser = ElementTree.XMLParser(encoding="utf-8")

        productinorder = ProductInOrder.objects.all()
        productinorder.delete()

        productinbasket = ProductInBasket.objects.all()
        productinbasket.delete()

        product = Product.objects.all()
        product.delete()

        category = Category.objects.all()
        category.delete()

        manufacturer = Manufacturer.objects.all()
        manufacturer.delete()

        trans = str.maketrans(
            "абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ",
            "abvgdeejzijklmnoprstufhzcss_y_euaABVGDEEJZIJKLMNOPRSTUFHZCSS_Y_EUA"
        )
        tree = ElementTree.parse("./ImportExport/import.xml", parser=parser)
        root = tree.getroot()
        #print(root)

        for element in root.iter(
                "{urn:1C.ru:commerceml_210}Группа"):  #Наименование категории
            name = element[1].text
            category = Category(name=name,
                                id1C=element[0].text,
                                url=slugify(name.translate(trans)))
            category.save()

        for element in root.iter("{urn:1C.ru:commerceml_210}Свойство"):
            #print(element[1].text)
            for elem in element.iter(
                    "{urn:1C.ru:commerceml_210}Справочник"):  #Бренд
                name = elem[1].text
                manufact = Manufacturer(name=name,
                                        id1C=elem[0].text,
                                        slug=slugify(name.translate(trans)))
                manufact.save()
        for element in root.iter("{urn:1C.ru:commerceml_210}Товар"):
            name = element.find("{urn:1C.ru:commerceml_210}Наименование").text
            category = element.find("{urn:1C.ru:commerceml_210}Группы")
            category_id = Category.objects.get(id1C=category[0].text)
            brend = element.find("{urn:1C.ru:commerceml_210}ЗначенияСвойств")
            if brend is not None:
                brend_id = Manufacturer.objects.get(id1C=brend[0][1].text)
            short_description = element.find(
                "{urn:1C.ru:commerceml_210}Описание").text
            country = element.find("{urn:1C.ru:commerceml_210}Страна")
            if country is None:
                country_text = ""
            else:
                country_text = country.text
            weight = element.find("{urn:1C.ru:commerceml_210}Вес")
            weight_float = 0
            height = 0
            width = 0
            length = 0
            if weight is not None:
                weight_float = Decimal(weight.text)

            for val_req in element.iter(
                    "{urn:1C.ru:commerceml_210}ЗначениеРеквизита"):
                if val_req[0].text == 'Высота':
                    height = Decimal(val_req[1].text)
                elif val_req[0].text == 'Ширина':
                    width = Decimal(val_req[1].text)
                elif val_req[0].text == 'Длина':
                    length = Decimal(val_req[1].text)
            #print(name, int(category_id.id), category_id.name, int(brend_id.id), brend_id.name)

            product = Product(name=name,
                              id1C=element[0].text,
                              category=category_id,
                              short_description=short_description,
                              country=country_text,
                              weight=weight_float,
                              height=height,
                              width=width,
                              length=length,
                              manufacturer=brend_id,
                              url=slugify(name.translate(trans)))
            product.save()
            #print(element[0].text)
            #print(name)
            img = 1
            is_main = True
            if element.find("{urn:1C.ru:commerceml_210}Картинка") is not None:
                for elem in element.iter("{urn:1C.ru:commerceml_210}Картинка"):

                    if elem is not None:
                        #product=Product.objects.get(id1C=element[0].text)
                        name_file = slugify(
                            product.name.translate(trans)) + str(img) + ".jpg"
                        shutil.copy("./ImportExport/" + elem.text,
                                    "./product_images/" + name_file)
                        if img != 1:
                            is_main = False
                        prod_img = ProductImage(product=product,
                                                image="product_images/" +
                                                name_file,
                                                is_main=is_main)
                        prod_img.save()
                        img = img + 1
            else:
                prod_img = ProductImage(product=product,
                                        image="product_images/no_image.png",
                                        is_main=is_main)
                prod_img.save()

        tree = ElementTree.parse("./ImportExport/offers.xml")
        root = tree.getroot()
        for element in root.iter("{urn:1C.ru:commerceml_210}Предложение"):
            #rest_float=0
            product = Product.objects.get(id1C=element[0].text)
            for elem in element.iter("{urn:1C.ru:commerceml_210}Цена"):
                price = elem.find("{urn:1C.ru:commerceml_210}ЦенаЗаЕдиницу")
                if price is not None:
                    product.price = Decimal(price.text)
            rest = element.find("{urn:1C.ru:commerceml_210}Количество")
            if rest is not None:
                product.rest = Decimal(rest.text)
            product.save()
예제 #28
0
    item.category_id = category.id
    db.add(item)
    db.commit()


user = User(
    name="Yang Yuan",
    email="*****@*****.**",
    picture=
    "http://2.bp.blogspot.com/-S5USSONx5P0/VnEOIKKvJOI/AAAAAAAAsZw/KrKRoPui3Vk/s0-Ic42/000.jpg"
)

db.add(user)
db.commit()

category1 = Category(name="Martial Arts")
db.add(category1)

category2 = Category(name="Painting Arts")
db.add(category2)

category3 = Category(name="Music Arts")
db.add(category3)

category4 = Category(name="Calligraphy")
db.add(category4)

category5 = Category(name="Strategy Arts(board games)")

db.commit()
db.create_all()

# Create First User
print "Creating User ..."
user = User()
user.username = "******"
user.email = "*****@*****.**"
user.gplus_id = '112241070706889739015'
user.created = datetime.utcnow()
user.modified = datetime.utcnow()
db.session.add(user)
db.session.commit()
print "User - Sophie Reddimalla created ID=" + str(user.id)

print "Creating Sample Category Football ..."
category = Category()
category.title = "Football"
category.user_id = user.id
category.created = datetime.utcnow()
category.modified = datetime.utcnow()
db.session.add(category)
db.session.commit()
print "Category - Football created ID=" + str(category.id)

print "Creating Sample Items in Football ..."
item = Item()
item.category_id = category.id
item.title = "Soccer Ball"
item.description = "High Quality ,Tournament grade"
item.created = datetime.utcnow()
item.modified = datetime.utcnow()
예제 #30
0
engine = create_engine('sqlite:///catalog.db')
Base.metadata.bind = engine

DBSession = sessionmaker(bind=engine)
session = DBSession()

# Clear all the tables
session.query(Product).delete()
session.query(User).delete()
session.query(Category).delete()


# Define the categories
seed_categories = [
    Category(name="Atari", slug="atari"),
    Category(name="Super Nintendo", slug="super-nintendo"),
    Category(name="Mega Drive", slug="mega-drive"),
    Category(name="Nintendo 64", slug="nintendo-64"),
    Category(name="Sega Saturn", slug="sega-saturn"),
    Category(name="Dreamcast", slug="dreamcast"),
    Category(name="Playstation", slug="playstation"),
    Category(name="GameBoy", slug="gameboy"),
    Category(name="Playstation 2", slug="playstation-2"),
    Category(name="Xbox 360", slug="xbox-360")
]

# Define some dummy users
seed_users = [
    User(
        username="******",