Exemple #1
0
    def create_category(self, categoryName):
        #TODO: Occupation?
        parent = Category(name=categoryName, occupation=categoryName)
        parent.save()

        subcategoryList = subcategories[categoryName]
        for subcategoryName in subcategoryList:
            child = Category(name=subcategoryName,
                             occupation=subcategoryName,
                             parent=parent)
            child.save()
            parent.children.add(child)

        parent.save()
Exemple #2
0
 def test_metadb_build(self):
     test_cat = Category(name='Test')
     test_cat2 = Category(name='Test Posts')
     db.session.add(test_cat)
     db.session.add(test_cat2)
     db.session.commit()
     test_post = Post(title='One', path='',
                      date=datetime.datetime.now(),
                      categories=[test_cat, test_cat2])
     test_post2 = Post(title='Two', path='',
                       date=datetime.datetime.now(),
                       categories=[test_cat])
     db.session.add(test_post)
     db.session.add(test_post2)
     db.session.commit()
Exemple #3
0
    def feed_data_to_database(self):

        recipes = self.get_matching_recipes()
        for recipe in recipes:

            recipe_obj = Recipe(title=recipe[10],
                                date_published=recipe[2],
                                rating=recipe[8])
            recipe_obj.save()

            for category_name in recipe[1]:
                category = None
                try:
                    category = Category.objects.get(name=category_name)
                except:
                    category = Category(name=category_name)
                    category.save()
                rc = RecipeCategory(recipe=recipe_obj, category=category)
                rc.save()

            for id, direction_item in enumerate(recipe[4]):
                direction = Direction(content=direction_item,
                                      recipe=recipe_obj,
                                      order=(id + 1))
                direction.save()

            for detailed_ingredient in recipe[6]:
                ingr = Ingredient.objects.get(name=detailed_ingredient[0])
                dg = DetailedIngredient(recipe=recipe_obj,
                                        name=detailed_ingredient[1],
                                        ingredient=ingr)
                dg.save()
def import_categories():
    res = csv_load_file(
        os.path.dirname(os.path.abspath(__file__)) + "/categories.csv")
    #print res

    parent_categories = dict()

    for r in res:
        if r[1] == '':
            continue
        level = int(r[1])

        cat = Category.objects.filter(pk=r[0])
        if cat.count() == 0:
            print cat
            item = Category()
            item.id = r[0]
            item.name = r[2]

            if level == 1:
                print item

                item = Category.add_root(name=r[2], id=r[0])
                parent_categories[level] = item
            else:
                item = parent_categories[level - 1].add_child(name=r[2],
                                                              id=r[0])
                parent_categories[level] = item
        else:
            parent_categories[level] = cat[0]
    def setUp(self):
###### create Users #######
        users = ['UserA', 'UserB', 'UserC', 'UserD']
        for i in range(4):
            newUser = AUser(password='', last_login=timezone.now(), is_superuser=True, username=users[i], first_name='Firstname', last_name='Lastname', email='*****@*****.**', is_staff=True, is_active=True, date_joined=timezone.now())
            newUser.save()
            testDBModel.testUsers.append(newUser)
            testDBModel.testUsersID.append(newUser.pk)
######  add Category ######
        category1 = Category(name="hats")
        testDBModel.testCategory.append(category1)
        category1.save()


######   add product ######
        addProducts = ["ProductA", "ProductB", "ProductC", "ProductD"]
        for i in range(4):  # # add products
            newOne = Product(category=category1, name=addProducts[i], brand='brand', url='url', photo='photo', price=1.0, description='')
            newOne.save()
            testDBModel.testProducts.append(newOne)

##### ## add comments   ######
        for i in range(4):
            newOne = Comment(product=testDBModel.testProducts[i], owner=testDBModel.testUsers[i], content="null", time = timezone.now())
            newOne.save()
            testDBModel.testComments.append(newOne)

# add to wishlist first
        for i in range(4):
            newOne = WishList(product=testDBModel.testProducts[i], owner=testDBModel.testUsers[i])
            newOne.save()
Exemple #6
0
    def handle(self, *args, **options):
        print('Loading category')
        Category.objects.all().delete()
        Journal.objects.all().delete()

        names = [
            'ЖЕНСКИЕ', 'МУЖСКИЕ', 'ДЕТСКИЕ', 'ДОМ И СЕМЬЯ', 'АВТО', 'СПОРТ',
            'РЕЛИГИЯ', 'ОБЩЕСТВО', 'ПОЛИТИКА', 'БИЗНЕС', 'ФИНАНСЫ',
            'НАУЧНО-ПОПУЛЯРНЫЕ'
        ]
        for name in names:
            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
                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.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)
Exemple #7
0
def get_category():
    c1 = {'10': '手机', '11': '手机配件', '12': '数码相机', '13': '相机', '14': '平板'}
    c2 = {'20': '运动服', '21': '运动鞋', '22': '健身用品', '23': '骑行装备'}
    c0 = {'1': c1, '2': c2}
    c_root = {'1': '手机数码', '2': '运动户外', '3': '衣服', '4': '计算机', '5': '零食', '6': '珠宝首饰', '7': '家电办公',
              '8': '护肤彩妆'}
    print c0
    cMerge = dict(c1, **c2)
    cc = Category(category=c0, root_category=c_root)
    return cc, cMerge
    def handle(self, *args, **options):
        faker = Faker()
        file = "book genres.txt"
        for _ in range(300):
            Author(name=faker.name(), email=faker.email()).save()

        with open(file, "r") as file:
            for line in file:
                Category(title=line).save()

        for i in range(1000):
            author = Author.objects.order_by("?").last()
            category = Category.objects.order_by("?").last()
            Book(title=f"Title {i}", author=author, category=category).save()
Exemple #9
0
def add_category(request):
    if not request.user.is_superuser and Category.objects.filter(
            author=request.user).exists():
        return render(request, 'main/category_already_exists.html')
    if request.method == 'POST':
        category = Category(author=request.user)
        form = CategoryForm(request.POST, request.FILES, instance=category)
        if form.is_valid():
            form.save(commit=True)
            return redirect('index')

    else:
        form = CategoryForm()

    return render(request, 'main/add_category.html', {'form': form})
Exemple #10
0
    def handle(self, *args, **options):
        fake = Faker()
        for _ in range(10):
            Author(name=fake.name(),
                   email=fake.email(),
                   age=random.randint(1, 100)).save()

        categories = ['Adventure', 'Detective', 'Mystery']
        for category in categories:
            Category(name=category).save()

        for i in range(20):
            author = Author.objects.order_by('?').last()
            category = Category.objects.order_by('?').first()
            Book(title=f'Title {i}', author=author, category=category).save()
Exemple #11
0
def userpanel(request):
    if request.user.is_authenticated:
        user = request.user

        if 'addNewCategoryButton' in request.POST:
            newCategory = request.POST.get('addcategory', '')
            if newCategory != "":
                if not Category.objects.filter(
                        nameOfCategory=newCategory).exists():
                    categoryNewModel = Category(nameOfCategory=newCategory)
                    categoryNewModel.save()
        elif 'deleteCategoryButton' in request.POST:
            newCategory = request.POST.get('addcategory', '')
            if newCategory != "":
                Category.objects.filter(nameOfCategory=newCategory).delete()
        elif 'newUserNameButton' in request.POST:
            newUserName = request.POST.get('newUserName', '')
            if newUserName != "":
                saveNewUserName = User.objects.get(id=user.pk)
                saveNewUserName.username = newUserName
                saveNewUserName.save()
        elif 'newNameButton' in request.POST:
            newName = request.POST.get('newName', '')
            if newName != "":
                saveNewUserName = User.objects.get(id=user.pk)
                saveNewUserName.first_name = newName
                saveNewUserName.save()
        elif 'newUserSurnameButton' in request.POST:
            newUserSurname = request.POST.get('newUserSurname', '')
            if newUserSurname != "":
                saveNewUserName = User.objects.get(id=user.pk)
                saveNewUserName.last_name = newUserSurname
                saveNewUserName.save()
        elif 'changePasswordButton' in request.POST:
            changePassword = request.POST.get('changePassword', '')
            if changePassword != "":
                saveNewPassword = User.objects.get(id=user.pk)
                saveNewPassword.set_password(changePassword)
                saveNewPassword.save()
        return render(request, "main/userpanel.html", {'user': user})
    else:
        return redirect('/home/')
    def handle(self, *args, **kwargs):
        """Procedure which generate books."""
        fake = Faker()

        for _ in range(100):
            Author(name=fake.name(), surname=fake.name(),
                   email=fake.email()).save()

        for cat in open('main/management/commands/categories.txt', 'r'):
            Category(name=cat.rstrip()).save()

        authors = list(Author.objects.all())
        categories = list(Category.objects.all())

        for _ in range(500):
            author, category = random.choice(authors), random.choice(
                categories)
            Book(title=fake.text(max_nb_chars=25).replace('.', ''),
                 author=author,
                 category=category).save()
Exemple #13
0
 def each_article(self, category, url_list):
     main = Category(name=category)
     main.save()
     for link in url_list:
         soup = self.soup(link)
         div = soup.find("div", {"class": "bdaia-post-content"})
         p_list = div.find_all("p")
         description = []
         for p in p_list:
             description.append(p.get_text())
         self.article.append(u''.join(description).encode('utf-8'))
     full = zip(self.title_list, self.href_list, self.description,
                self.article)
     for i in full:
         item = News(item_title=i[0],
                     item_link=i[1],
                     item_short_descr=i[2],
                     article=i[3],
                     category=main)
         item.save()
         i = []
 def create(self, validated_data):
     category = Category(**validated_data)
     category.save()
     return category
 def create_test_category(self, name):
     category = Category(id=1, name=name)
     category.save()
     return category
Exemple #16
0
 def create(self, validated_data):
     category = Category(name=validated_data['name'])
     category.save()
     return category
Exemple #17
0
 def populate_test_categories(self):
     # Root categories
     auto = Category(name="Automobiles")
     auto.save()
     health = Category(name="Health")
     health.save()
     pets = Category(name="Pets")
     pets.save()
     finance = Category(name="Finance")
     finance.save()
     cleaning = Category(name="Cleaning")
     cleaning.save()
     # Child categories
     modifications = Category(name="Modifications", parent=auto)
     modifications.save()
     maintenance = Category(name="Maintenance", parent=auto)
     maintenance.save()
     chiropractic = Category(name="Chiropractic", parent=health)
     chiropractic.save()
     petGrooming = Category(name="Grooming", parent=pets)
     petGrooming.save()
     petSitting = Category(name="Pet Sitting", parent=pets)
     petSitting.save()
     accounting = Category(name="Accounting", parent=finance)
     accounting.save()
     investing = Category(name="Investing", parent=finance)
     investing.save()
     homeCleaning = Category(name="Home", parent=cleaning)
     homeCleaning.save()
     officeCleaning = Category(name="Office", parent=cleaning)
     officeCleaning.save()
def setUpDb(request):
    User.objects.all().delete()
    Category.objects.all().delete()
    Product.objects.all().delete()
    WishList.objects.all().delete()
    FitList.objects.all().delete()
    Comment.objects.all().delete()
    Added.objects.all().delete()
    TempProduct.objects.all().delete()

    glasses = Category(name='glasses')
    hats = Category(name='hats')
    headphones = Category(name='headphones')
    glasses.save()
    hats.save()
    headphones.save()

    rayban = Product(category=glasses,
                     name='rayban glasses',
                     brand='rayban',
                     url='www.rayban.com',
                     price=129.9,
                     description='stylish rayban',
                     overlay='raybanol.png',
                     photo='rayban.jpg')
    nike = Product(category=glasses,
                   name='nike glasses',
                   brand='nike',
                   url='www.nike.com',
                   photo='nike.jpg',
                   overlay='nikeol.png',
                   price=99.9,
                   description='sporty nike')
    adidas = Product(category=hats,
                     name='adidas cap',
                     brand='adidas',
                     url='www.adidas.com',
                     photo='addidas.jpg',
                     overlay='addidasol.png',
                     price=56.9,
                     description='adidas cap!',
                     yoffset=-0.58)
    levis = Product(category=hats,
                    name='levis hat',
                    brand='levis',
                    url='www.levis.com',
                    photo='levis.jpg',
                    overlay='levisol.png',
                    price=67.9,
                    description='levis hat!',
                    yoffset=-0.58)
    beats = Product(category=headphones,
                    name='beats headphones',
                    brand='beats',
                    url='www.beats.com',
                    photo='beats.jpg',
                    overlay='beatsol.png',
                    price=256.9,
                    description='stylish headphones!',
                    yoffset=-0.15)
    sony = Product(category=headphones,
                   name='sony headphones',
                   brand='sony',
                   url='www.sony.com',
                   photo='sony.jpg',
                   overlay="sonyol.png",
                   price=399.9,
                   description='high quality headphones!',
                   yoffset=-0.15)
    rayban.save()
    nike.save()
    adidas.save()
    levis.save()
    beats.save()
    sony.save()

    comment = Comment(product=rayban,
                      owner=AUser.objects.get(pk=1),
                      time=timezone.now(),
                      content="Very nice glasses!")
    comment.save()

    wish = WishList(owner=AUser.objects.get(pk=1), product=rayban)
    wish.save()

    fit = FitList(owner=AUser.objects.get(pk=1), product=adidas)
    fit.save()

    return HttpResponse("Success!")
Exemple #19
0
    def handle(self, *args, **options):
        restaurant_count = options["count"]

        # keep track of used names, streets etc. in the variables below,
        # so we can prevent duplicates
        names = []
        streets = []
        cities = []
        # XXX factorize into smaller functions
        for item in range(restaurant_count):
            print "generate restaurant %d" % (item + 1)
            r = Restaurant()
            r.name = gen_unique_name(names, restaurant_names)
            r.save()
            print "generate address"
            a = Address(country=random.choice(_countries))
            a.street = gen_unique_name(streets, street_names)
            a.street_no = random.randint(1, 100)
            a.zip = random.randint(1000, 100000)
            a.city = gen_unique_name(cities, city_names)
            a.restaurant = r
            a.save()
            count = random.randint(5, 25)
            print "generate %d tables" % count
            for i in range(1, 1 + count):
                t = Table()
                t.restaurant = r
                t.no = i
                t.save()
            print "add supported payment methods"
            for _ in range(2, len(_payment_methods)):
                method = random.choice(_payment_methods)
                if method not in r.payment_method.all():
                    r.payment_method.add(method)
            r.save()
            print "generate menu"
            m = Menu()
            m.currency = random.choice(_currencies)
            m.language = _languages[2]
            m.restaurant = r
            m.save()
            m.translations.add(_languages[0])
            m.translations.add(_languages[1])
            m.save()

            items = []
            _cat_names = []
            count = random.randint(3, 12)
            itemid = 1
            print "generate %d categories" % count
            for j in range(1, 1 + count):
                c = Category()
                c.menu = m
                c.ordering = j
                c.view = random.choice(_views)
                c.save()
                count = random.randint(4, 20)
                # i18n stuff
                name = gen_unique_name(_cat_names, category_names)

                for lang in _languages:
                    c18n = CategoryI18n()
                    c18n.category = c
                    c18n.language = lang
                    c18n.name = name
                    if lang.abbr != "en":
                        c18n.name += "(%s)" % lang.abbr
                    c18n.save()
                print "generate %d items" % count
                for _ in range(1, count):
                    item = Item()
                    item.no = itemid
                    itemid += 1
                    item.category = c
                    item.price = "%.2f" % random.uniform(
                        1, 110)  # 2 decimal points
                    item.save()
                    item.image.save("item%d.jpg" % item.id,
                                    random.choice(_pictures),
                                    save=True)
                    count = random.randint(0, 8)
                    # "assign %d allergens" % count
                    for k in range(count):
                        a = random.choice(_allergens).allergen
                        if a in ItemAllergen.objects.filter(item=item,
                                                            allergen=a):
                            continue
                        traces = bool(random.randint(0, 1))
                        ItemAllergen.objects.get_or_create(
                            item=item, allergen=a, traces=traces)[0].save()
                    item.save()
                    # i18n stuff
                    name = gen_unique_name(items, food_names)
                    for lang in _languages:
                        i18n = ItemI18n()
                        i18n.item = item
                        i18n.language = lang
                        i18n.name = name
                        if lang.abbr != "en":
                            i18n.name += "(%s)" % lang.abbr
                        i18n.description = "Very delicious %s. It is made with love and all the care it is needed to make a great %s." % (
                            name, name)
                        i18n.save()

            print

        self.stdout.write('Successfully added %d restaurants' %
                          restaurant_count)
Exemple #20
0
def settings(request):
    # Proper way to handle multiple forms:
    # https://stackoverflow.com/questions/1395807/proper-way-to-handle-multiple-forms-on-one-page-in-django
    # TODO: Use a look-up dictionary to optimize the code
    active = request.GET.get('tab', '')
    next_link = request.GET.get('next', '')
    print(request.POST)
    if request.method == 'POST':
        if 'password-change' in request.POST:
            change_password_form = PasswordChangeForm(request.user, request.POST, prefix='password-change')
            if change_password_form.is_valid():
                user = change_password_form.save()
                update_session_auth_hash(request, user)  # Important!
                # Otherwise the user’s auth session will be invalidated and she/he will have to log in again.
                sweetify.success(request, "You successfully changed your password", icon='success',
                                 toast=True,
                                 position='bottom-end',
                                 )
            private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info')
            public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info')
            image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile,
                                          prefix='profile-image')

        elif 'private-info' in request.POST:
            private_info_form = PrivateInformationForm(request.POST, instance=request.user.userprofile, prefix='private-info')
            if private_info_form.is_valid():
                private_info_form.save()
                sweetify.success(request, "You successfully updated your profile", icon='success',
                                 toast=True,
                                 position='bottom-end',
                                 )
            else:
                sweetify.error(request, 'Please correct the error below', icon="error", toast=True, position="bottom-end")

            change_password_form = PasswordChangeForm(request.user, prefix='password-change')
            public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info')
            image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile,
                                          prefix='profile-image')

        elif 'public-info-description' in request.POST:
            public_info_form = PublicInformationForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='public-info')
            if public_info_form.is_valid():
                description = public_info_form.cleaned_data['description']
                public_info_form.save()

                most_common = get_most_common(description)
                most_common_words = []
                most_common_words_numbers = []
                for w in most_common:
                    most_common_words.append(w[0])
                    most_common_words_numbers.append(w[1])
                request.user.userprofile.most_common_words = most_common_words
                request.user.userprofile.most_common_words_numbers = most_common_words_numbers
                request.user.userprofile.save()
                sweetify.success(request, "You successfully updated your profile", icon='success',
                                 toast=True,
                                 position='bottom-end',
                                 )
            tags = list(set(request.GET.get('tags', '').split(",")))

            # Delete all previous skills
            Specialism.objects.filter(feedbacker=request.user).delete()

            # Save each tag instance to database
            for tag in tags:
                if tag == "":
                    continue
                category_record = Category.objects.filter(name=tag)
                if not category_record:
                    category_record = Category(name=tag)
                    category_record.save()
                else:
                    category_record = category_record[0]
                tag_record = Specialism(feedbacker=request.user, category=category_record)
                tag_record.save()

            change_password_form = PasswordChangeForm(request.user, prefix='password-change')
            private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info')
            image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile,
                                          prefix='profile-image')

        elif 'notifications' in request.POST:
            feedback_updates = request.POST.get('FeedbackUpdates', '') == 'on'
            messages = request.POST.get('Messages', '') == 'on'
            smart_recommendations = request.POST.get('SmartRecommendations', '') == 'on'
            if feedback_updates:
                request.user.userprofile.feedback_updates_notifications = True
            else:
                request.user.userprofile.feedback_updates_notifications = False

            if messages:
                request.user.userprofile.messages_mail_notifications = True
            else:
                request.user.userprofile.messages_mail_notifications = False

            if smart_recommendations:
                request.user.userprofile.smart_recommendations_mail_notifications = True
            else:
                request.user.userprofile.smart_recommendations_mail_notifications = False

            request.user.userprofile.save()

            sweetify.success(request, "You successfully updated your profile", icon='success',
                             toast=True,
                             position='bottom-end',
                             )
            change_password_form = PasswordChangeForm(request.user, prefix='password-change')
            public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info')
            private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info')
            image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile,
                                          prefix='profile-image')

        elif 'notifications2' in request.POST:
            messages2 = request.POST.get('Messages2', '') == 'on'
            smart_recommendations2 = request.POST.get('SmartRecommendations2', '') == 'on'
            if messages2:
                request.user.userprofile.messages_notifications = True
            else:
                request.user.userprofile.messages_notifications = False

            if smart_recommendations2:
                request.user.userprofile.smart_recommendations_notifications = True
            else:
                request.user.userprofile.smart_recommendations_notifications = False

            request.user.userprofile.save()

            sweetify.success(request, "You successfully updated your profile", icon='success',
                             toast=True,
                             position='bottom-end',
                             )
            change_password_form = PasswordChangeForm(request.user, prefix='password-change')
            public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info')
            private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info')
            image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile,
                                          prefix='profile-image')

        elif "billing" in request.POST:
            cardholder_name = request.POST.get('name', '')
            card_number = request.POST.get('number', '')
            card_expiry_date = request.POST.get('expiry', '')
            try:
                card_expiry_month, card_expiry_year = card_expiry_date.split(" / ")[0], card_expiry_date.split(" / ")[1]
            except:
                card_expiry_month, card_expiry_year = card_expiry_date.split("/")[0], card_expiry_date.split("/")[1]

            cvv = request.POST.get('cvc', '')
            premium = request.POST.get('premium', '')

            # Find the payment method of that client
            payment_token = gateway.payment_method.find(f"{request.user.username}")
            token = payment_token.token

            # Update the payment method
            check = gateway.payment_method.update(token, {
                    "cardholder_name": cardholder_name,
                    "cvv": cvv,
                    "expiration_month": card_expiry_month,
                    "expiration_year": card_expiry_year,
                    "number": card_number
                    })

            # Check if the payment details are correct
            if not str(check).startswith("<Error"):
                request.user.userprofile.payment_method = True
                request.user.userprofile.save()

                sweetify.success(request, "You successfully updated your profile", icon='success',
                                 toast=True,
                                 position='bottom-end',
                                 )
                if premium:
                    return redirect("try-premium-page")
            else:
                print(check)
                sweetify.error(request, 'Wrong Card Details', icon="error", toast=True, position="bottom-end")

            change_password_form = PasswordChangeForm(request.user, prefix='password-change')
            public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info')
            private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info')
            image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile,
                                          prefix='profile-image')

        elif "cancel-subscription" in request.POST:
            curr_user = UserProfile.objects.get(user=request.user)
            gateway.subscription.cancel(curr_user.subscription_id)  # Cancel the subscription in Braintree
            curr_user.premium = False
            curr_user.trial_used = True
            curr_user.save()
            sweetify.success(request, "You successfully canceled your subscription", icon='success',
                             toast=True,
                             position='bottom-end',
                             )
            change_password_form = PasswordChangeForm(request.user, prefix='password-change')
            public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info')
            private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info')
            image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile,
                                          prefix='profile-image')

        elif 'profile-image-x' in request.POST:
            image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile, prefix='profile-image')
            if image_form.is_valid():
                image_form.save()
            change_password_form = PasswordChangeForm(request.user, prefix='password-change')
            private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info')
            public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info')
    else:
        change_password_form = PasswordChangeForm(request.user, prefix='password-change')
        private_info_form = PrivateInformationForm(instance=request.user.userprofile, prefix='private-info')
        public_info_form = PublicInformationForm(instance=request.user.userprofile, prefix='public-info')
        image_form = ProfileImageForm(request.POST, request.FILES, instance=request.user.userprofile,
                                      prefix='profile-image')

    user_skills_ids = Specialism.objects.filter(feedbacker=request.user)
    user_skills = [str(skill.category) for skill in user_skills_ids]
    if request.user.userprofile.premium:
        next_billing_day = gateway.subscription.find(request.user.userprofile.subscription_id).next_billing_date
    else:
        next_billing_day = None

    context = {'change_password_form': change_password_form,
               'private_info_form': private_info_form,
               'public_info_form': public_info_form,
               'image_form': image_form,
               'active': active,
               'email': request.user.email,
               'user_skills': user_skills,
               'new_messages': request.user.userprofile.messages_mail_notifications,
               'feedback_updates': request.user.userprofile.feedback_updates_notifications,
               'smart_recommendations': request.user.userprofile.smart_recommendations_mail_notifications,
               'new_messages2': request.user.userprofile.messages_notifications,
               'smart_recommendations2': request.user.userprofile.smart_recommendations_notifications,
               'next_link': next_link,
               "is_premium": request.user.userprofile.premium,
               "trial_used": request.user.userprofile.trial_used,
               "next_billing_date": next_billing_day,
               'title': '| Settings'
               }
    return render(request, 'users/settings.html', context)
Exemple #21
0
    def test_can_create_new_category(self):
        category = Category()
        category.name = 'New category'
        category.save()

        self.assertIn(category, Category.objects.all())
    def setUp(self):
        ###### create Users #######
        users = ['UserA', 'UserB', 'UserC', 'UserD']
        for i in range(4):
            newUser = AUser(password='',
                            last_login=timezone.now(),
                            is_superuser=True,
                            username=users[i],
                            first_name='Firstname',
                            last_name='Lastname',
                            email='*****@*****.**',
                            is_staff=True,
                            is_active=True,
                            date_joined=timezone.now())
            newUser.save()
            testDBModel.testUsers.append(newUser)
            testDBModel.testUsersID.append(newUser.pk)

######  add Category ######
        category1 = Category(name="hats")
        testDBModel.testCategory.append(category1)
        category1.save()
        category2 = Category(name="glasses")
        testDBModel.testCategory.append(category2)
        category2.save()

        ######   add product ######
        addProducts = ["ProductA", "ProductB", "ProductC", "ProductD"]
        for i in range(4):  # # add products
            newOne = Product(category=category1,
                             name=addProducts[i],
                             brand='brand',
                             url='url',
                             photo='photo',
                             price=1.0,
                             description='')
            newOne.save()
            testDBModel.testProducts.append(newOne)

######  add custom product #####
        newAdded = Added(owner=testDBModel.testUsers[0],
                         product=testDBModel.testProducts[0])
        newAdded.save()
        newAdded = Added(owner=testDBModel.testUsers[1],
                         product=testDBModel.testProducts[1])
        newAdded.save()

        ######  add temp product ######
        tempP = TempProduct(owner=testDBModel.testUsers[0],
                            overlay='overlay1ol.jpg',
                            token='1',
                            category=testDBModel.testCategory[0])
        tempP.save()
        tempP = TempProduct(owner=testDBModel.testUsers[1],
                            overlay='overlay2ol.jpg',
                            token='2',
                            category=testDBModel.testCategory[0])
        tempP.save()
        testDBModel.testOverlay = ['overlay1ol.jpg', 'overlay2ol.jpg']

        ##### ## add comments   ######
        for i in range(4):
            newOne = Comment(product=testDBModel.testProducts[i],
                             owner=testDBModel.testUsers[i],
                             content="null",
                             time=timezone.now())
            newOne.save()
            testDBModel.testComments.append(newOne)

# add to wishlist first
        for i in range(4):
            newOne = WishList(product=testDBModel.testProducts[i],
                              owner=testDBModel.testUsers[i])
            newOne.save()

# add to FitList:
        for i in range(4):
            newOne = FitList(product=testDBModel.testProducts[i],
                             owner=testDBModel.testUsers[i])
            newOne.save()