Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Привет. Мы с друзьями шаг за шагом делаем свой кулинарный проект. Пришло время следующей итерации.

1. Регистрация\авторизация пользователей через социальные сети facebook + вконтакте, оттуда взять ник и аватар. После подтверждения в окошке социальной сети, на сайте запрашивать email (это конечно если человек первый раз авторизуется).

2. Форма создания кулинарного рецепта http://cooktalks.ru/filter/ поддерживающая все функции CRUD Особенности:

Главное превью рецепта и превью к каждому шагу, в идеале при клике на картинку, показывать поле интерфейс выбора файла, который ресайзится и отражается ajax. Например dropzone js, или любой другой знакомый вам скрипт.

В Ингредиентах название autocomplete по любой части слова, то есть если вбить "мас", то подсказки: "Масло подсолнечное" и "Подмасло", если человек вводит новое название оно сохраняется (все как в метках). Но каждой метке для каждого рецепта надо писать отдельные пояснения. Количество ингредиентов безгранично, как в поле название "не пусто", появляется еще ряд полей для ингредиентов.

Порядок действий: тоже самое, что и с ингредиентами. При появлении символов в поле, ниже появляется еще один ряд иллюстрация+описание.

Исполнителю будет предоставлен полный доступ к сайту. Если сработаемся - здорово, есть еще задачи, просто они шаг за шагом. На данный момент структура models.py выглядит так:

class Post(models.Model):

TYPES = (

('BLOG', 'Blog'),

('RECIPE', 'Recipe'),

)

title = models.CharField(max_length=200)

thumbnail = models.ImageField(upload_to='main/')

thumbnail_featured = models.ImageField(upload_to='main_featured/')

content = models.TextField()

#small = models.TextField();

type = models.CharField(max_length=100, choices=TYPES )

category = models.ForeignKey('Category')

lit = models.TextField(blank=True)

search = SphinxSearch(weights={'title': 100, 'content': 80})

published = models.BooleanField()

date_published = models.DateField(auto_now_add=True)

def __unicode__(self):

return self.title

class Ingredient(models.Model):

name = models.CharField(max_length=100)

caption = models.TextField(blank=True, max_length=500)

def __unicode__(self):

return self.name

class RecipeIngredient(models.Model):

recipe = models.ForeignKey(Post)

ingredient = models.ForeignKey(Ingredient)

norma = models.CharField(max_length=140)

def __unicode__(self):

full_name = self.recipe.title + ' ' + self.ingredient.name

return full_name

class Category(models.Model):

TYPES = (

('BLOG', 'Blog'),

('RECIPE', 'Recipe'),

)

name = models.CharField(max_length=200)

type = models.CharField(max_length=100, choices=TYPES)

def __unicode__(self):

return self.name

class Image(models.Model):

src = models.ImageField(upload_to='images/')

post = models.ForeignKey(Post)

11 лет назад
abhdesign
Пасюк 
38 летРоссия
15 лет в сервисе
Был
10 лет назад