• Как выстроить иерархию новостей в django?

    reimax
    @reimax Автор вопроса
    не работает.
    из адреса я убираю /news/ так как первая строчка уже /news/ забирает на себя. верно?
    если я верно понимаю, что slug:cat / slug:news должно как то ссылаться на адрес категории, но не работает. в модель что то нужно дописать?

    urlpatterns = [
        path('', NewsHome.as_view(), name='news_index'),
        path('<slug:category_url>/', CategoryItem.as_view(), name='news_category'),
        path('<slug:category_url>/<slug:url>/', NewsItem.as_view(), name='news_item'),
    ]


    class News(models.Model):
        title = models.CharField(max_length=250, db_index=True, verbose_name='Название')
        url = models.SlugField(max_length=250, unique=True, db_index=True, verbose_name='Адрес')
        category = models.ForeignKey('Category', on_delete=models.PROTECT, null=True, verbose_name='Категория')
        date = models.DateTimeField(default=datetime.now, blank=True, verbose_name='Дата')
        date_add = models.DateTimeField(auto_now_add=True, verbose_name='Дата добавления')
        date_edit = models.DateTimeField(auto_now=True, verbose_name='Дата изменения')
        text = models.TextField(blank=True, verbose_name='Содержание')
        photo = models.ImageField(upload_to='photo/%Y/%m/', blank=True, verbose_name='Изображение')
        active = models.BooleanField(default=True, verbose_name='Статус')
        views = models.PositiveIntegerField(default=0, verbose_name='Просмотры')
    
        def get_absolute_url(self):
            return reverse('news_item', kwargs={'url': self.url})
    
        def __str__(self):
            return self.title
    
        class Meta:
            verbose_name = 'Новость';
            verbose_name_plural = 'Новости';
            ordering = ['-date_add', '-id']
    
    class Category(models.Model):
        title = models.CharField(max_length=250, db_index=True, verbose_name='Название')
        category_url = models.SlugField(max_length=250, unique=True, db_index=True, verbose_name='Адрес')
        text = models.TextField(blank=True, verbose_name='Содержание')
    
        def get_absolute_url(self):
            print(self.category_url)
            return reverse('news_category', kwargs={'category_url': self.category_url})
    
        def __str__(self):
            return self.title
    
        class Meta:
            verbose_name = 'Категория';
            verbose_name_plural = 'Категории';
            ordering = ['title']
    Ответ написан
    Комментировать
  • Есть ли хорошее решение для управления контактами?

    Платная / бесплатная? Более подробно функционал, который нужен?
    Ответ написан
  • Разработка собственной CRM, с чего начать?

    по типовым црм вам уже написали, есть смысл их посмотреть, практически любая умеет в задачи.
    по разработке с нуля, я не соглашусь с оценкой в 20-30К$, не представляю откуда такие бюджеты на самопис с учетом указанного функционала. у меня клиенты за сумму и сроки в разы меньше получали такой как в описании планировщик задач.
    Ответ написан
  • CRM: кастомное решение или адаптация готового продукта?

    Нужно смотреть что уже есть на рынке и понимать какой именно вам функционал нужен. Если готового ничего не подходит, что мало вероятно, то придется обращаться к разработчикам. Не вижу здесь никакой проблемы, так как взяв готовое решение, вы все так же зависите от разработчиков, либо интеграторов. Последних менять можно, но если именно разработчик решит внести кардинальные изменения - можно вполне придти к второму варианту.
    Ответ написан
    Комментировать
  • Какую CRM-систему / баг-трекер выбрать?

    Если без регистрации - то каждому клиенту нужно формировать свою уникальную ссылку, по которой можно было бы определить кому, какие данные показывать. Или все клиенты видят все тикеты?
    Это все требования, разработку под себя рассматриваете?
    Ответ написан
    Комментировать
  • Как сделать замену точки с запятой в строке внутри кавычек?

    reimax
    @reimax Автор вопроса
    Собственно решение вопроса:
    $string = preg_replace_callback(
    				'/"(.*)"/U',
    				function ($matches) {
    					return str_replace(";", ",", $matches[0]);
    				},
    				$string
    			);
    Ответ написан
    Комментировать
  • Запрет скрола в draggable за пределы родительского блока?

    reimax
    @reimax Автор вопроса
    решил сделать так
    $(".pipeline_body").draggable({
                    axis: "x",
                    cursor: "move",
                    stop: function(event, ui) { 
                            if($(this).offset().left > 0) {
                                $(this).css("left",0);
      }
    
                    }
                });


    но это для ограничение по левой стороне, как правильно обсчитать правую сторону?
    Ответ написан