• Как для m2m_changed задать условие для выполнения?

    @zkweb Автор вопроса
    sim3x: Модель Rzi лишняя что-ли?
  • Как для m2m_changed задать условие для выполнения?

    @zkweb Автор вопроса
    sim3x: Это понятно!!! Джанго мне понравилась, и сейчас часть проекта с PHP переношу на неё. Смотря на всё это дело, я не думаю что в моделях бардак, как вы говорите. Но, и сейчас на этой задаче я просто "встал" ))) не знаю куда дальше... Мне на данном этапе хотя бы решить задачу как m2m если поле договора пустое, значения сохранить в другую промежут. таблицу. Если я глето-то туплю вы мне прямо скажите, где ошибка и как бы вы сделали... может где-то я и запутался
  • Как для m2m_changed задать условие для выполнения?

    @zkweb Автор вопроса
    sim3x: ))) так пользователи видят свою систему. не мне же выбирать. Ладно спасибо, кроме непонятной критики от вас я ничего больше не услышал. Я просто хотел понял как распарсить m2m и всё.
  • Как для m2m_changed задать условие для выполнения?

    @zkweb Автор вопроса
    sim3x: посмотрите, пожалуйста, это фаил. Может я что-то не так объяснял
    https://yadi.sk/i/IUfh4SAvjhWDP
  • Как для m2m_changed задать условие для выполнения?

    @zkweb Автор вопроса
    sim3x:

    # ДОГОВОРА
    class Service(models.Model):

    SMS_CHOICES = (
    (0, 'запрещенно'),
    (1, 'разрешено'),
    )

    branch = models.ForeignKey('Branch',verbose_name = u"Филиал",)#
    number = models.CharField(max_length=255,verbose_name = u"Номер договора",)#
    date_begin = models.DateField(verbose_name = u"Дата заключения",)#
    date_end = models.DateField(verbose_name = u"Дата окончания",blank=True,null=True)#
    date_equip_sold = models.DateField(verbose_name = u"Дата продажи котла",blank=True,null=True)#
    date_launch = models.DateField(verbose_name = u"Дата пуска-наладки",blank=True,null=True)#
    client = models.ForeignKey('Client',verbose_name = u"Клиент",null=True,blank=True)#
    equipment = models.ForeignKey('Equipment',verbose_name = u"Оборудование")#
    dealer = models.ForeignKey('Dealer',verbose_name = u"Дилер",blank=True,null=True)#
    serial_number = models.CharField(max_length=255,verbose_name = u"Серийный номер",blank=True)#
    sum_contract = models.FloatField(u"Сумма контракта",null=True)#
    sum_launch = models.FloatField(u"Сумма пуско-наладки", blank=True, default=0)#
    engineer = models.ForeignKey('Engineer',verbose_name = u"Инженер",blank=True,null=True)#
    address = models.CharField(max_length=255,verbose_name = u"Адрес", blank=True)#
    type = models.ForeignKey('ServiceType',verbose_name = u"Вид договора",)#
    notes = models.TextField(u"Комментарии",blank=True)#
    equipment2 = models.ForeignKey('Equipment',verbose_name = u"Доп.оборудование", related_name='second_equipment',null=True,blank=True)#
    sms_delivery = models.PositiveSmallIntegerField(u'подписка на смс', choices=SMS_CHOICES,)#

    def count_request(self):
    return Request.objects.filter(contract = self.id).count();
    count_request.short_description = 'Вызовов'


    def count_call(self):
    return Call.objects.filter(contract = self.id).count();
    count_call.short_description = u'Звонков'

    class Meta():
    db_table = "service_main"
    verbose_name = u"Договор"
    verbose_name_plural = u"Сервис"

    def __unicode__(self):
    return self.number;

    # ВЫЗОВЫ
    class Request(models.Model):
    date = models.DateField(verbose_name = u"дата",)
    contract = models.ForeignKey(Service,verbose_name = u"договор",)
    engineer = models.ForeignKey(Engineer,verbose_name = u"инженер",blank=True,null=True)
    service = models.ManyToManyField(ServiceList, verbose_name=u"услуга",blank=True,null=True)
    description = models.TextField(u"описание", blank=True)

    class Meta:
    db_table = "service_request"
    verbose_name = u"вызов"
    verbose_name_plural = u"вызовы"

    def __unicode__(self):
    return u'Вызов от %s для договора №%s' % (self.date,self.contract)

    # СПИСОК ВЫПОНЯЕМЫХ УСЛУГ, ЭТО БУДЕТ ManyToManyField в моделях Service, Rzi
    class ServiceList(models.Model):
    name = models.CharField(u'наименование',max_length=255,)

    class Meta:
    db_table = "service_service"
    verbose_name = u"услуга"
    verbose_name_plural = u"услуги"

    def __unicode__(self):
    return '%s' % (self.name,)

    # Сигнал, автоматически добавляем запись (выезд) в Rzi если форма была заполнена в модели Service
    @receiver(post_save, sender=Request)
    def go_request_rzi(sender, instance, created, **kwargs):
    contract = Service.objects.filter(pk=instance.contract_id)
    for item in contract:
    Rzi.objects.create(
    contract_number_id=instance.contract_id,
    client_id=item.client_id,
    serial_number=item.serial_number,
    date_equip_sold=item.date_equip_sold,
    date_launch=item.date_launch,
    date_create=datetime.date.today(),
    date_visit=instance.date,
    address=item.address,
    description=instance.description,
    engineer_id=instance.engineer_id,
    equipment_id=item.equipment_id,
    equipment2_id=item.equipment2_id,
    status="1",
    time_visit="2",
    request_id=instance.id)
    post_save.connect(go_request_rzi, sender=Request)

    # ВЫЕЗДЫ ИНЖЕНЕРОВ. Как по договору так и без него
    class Rzi(models.Model):

    STATUS_CHOICES = (
    (1, 'платная'),
    (2, 'по договору'),
    )

    TIME_VIZIT_CHOICES = (
    (1, 'рабочее'),
    (2, 'не рабочее'),
    )

    contract_number = models.ForeignKey(Service, blank = True, null = True, verbose_name = u"Номер договора")
    client = models.ForeignKey(Client, verbose_name = u"Клиент")#
    equipment = models.ForeignKey(Equipment, verbose_name = u"Оборудование")#
    equipment2 = models.ForeignKey(Equipment, verbose_name = u"Доп.оборудование",blank=True,null=True)#
    serial_number = models.CharField(max_length=255,verbose_name = u"Серийный номер",blank=True)#
    address = models.CharField(max_length=255,verbose_name = u"Адрес", blank=True)#
    date_equip_sold = models.DateField(verbose_name = u"Дата продажи котла",blank=True,null=True)#
    date_launch = models.DateField(verbose_name = u"Дата пуска-наладки",blank=True,null=True)#
    date_create = models.DateField(verbose_name = u"Дата публикации",blank=True,null=True)#
    who_launch = models.CharField(max_length=255,verbose_name = u"Кем производился запуск", blank=True)#
    description = models.TextField(u"Описание",blank=True)#
    note = models.TextField(u"Комментарии",blank=True)#
    status = models.PositiveSmallIntegerField(u'Статус заявки', choices=STATUS_CHOICES,blank=True,null=True)#
    date_visit = models.DateField(verbose_name = u"Дата выезда",blank=True,null=True)#
    engineer = models.ForeignKey(Engineer,verbose_name = u"Инженер",blank=True,null=True)#
    time_visit = models.PositiveSmallIntegerField(u'Время выезда', choices=TIME_VIZIT_CHOICES,blank=True,null=True)#
    request_id = models.PositiveSmallIntegerField(verbose_name = u"Вызов",blank=True,null=True)#
    service = models.ManyToManyField(ServiceList, verbose_name=u"Выполненные работы",blank=True,null=True)

    class Meta():
    db_table = "service_rzi_main"
    verbose_name = u"Реестр заявок инженеров"
    verbose_name_plural = u"РЗИ"

    def __unicode__(self):
    return u'Запись под №%s' % (self.id)
  • Как для m2m_changed задать условие для выполнения?

    @zkweb Автор вопроса
    sim3x: понятно всё. я просто просил помочь... спасибо и на этом
  • Как для m2m_changed задать условие для выполнения?

    @zkweb Автор вопроса
    sim3x: т.е если договора нет, то это выезд платный и т.д и в договору это не привязывается
  • Как для m2m_changed задать условие для выполнения?

    @zkweb Автор вопроса
    sim3x: Промежуточная таблица Rzi_RziRequest: id, rzi_id, servicelist_id
  • Как для m2m_changed задать условие для выполнения?

    @zkweb Автор вопроса
    sim3x: Промежуточная таблица Service_Request: id, request_id, servicelist_id
  • Как для m2m_changed задать условие для выполнения?

    @zkweb Автор вопроса
    sim3x: Если в модели Rzi заполнено поле "номер договора", то все элементы добавляем в промежуточную таблицу Service_Request
    Иначе добавляем в Rzi_RziRequest
  • Как для m2m_changed задать условие для выполнения?

    @zkweb Автор вопроса
    подскажите код для примера, как это сделать. В джанго новичок еще
  • Кто-нибудь делал связку Django + WhatsApp?

    @zkweb Автор вопроса
    т.е отправляли сообщение на WhatsApp?
  • Как реализовать эту связь в Django?

    @zkweb Автор вопроса
    Извините, если криво всё объяснил и показал.
  • Как в Django одновременно добавить записи в две модели?

    @zkweb Автор вопроса
    да, спасибо! Вроде это и есть. Буду разбираться
  • Можно-ли добавить view в admin Django?

    @zkweb Автор вопроса
    В admin.py сделал следующее (на одном форуме нашел)

    from views import expired_contracts
    def get_admin_urls(urls):
    def get_urls():
    my_urls = patterns('',
    (r'^client/reports/$', admin.site.admin_view(expired_contracts))
    )
    return my_urls + urls
    return get_urls

    admin_urls = get_admin_urls(admin.site.get_urls())
    admin.site.get_urls = admin_urls

    вроде всё работает, но не работают хлебные крошки

    ошибка: Reverse for 'app_list' with arguments '()' and keyword arguments '{u'app_label': ''}'
  • Можно-ли добавить view в admin Django?

    @zkweb Автор вопроса
    В admin.py сделал следующее (на одном форуме нашел)

    from views import expired_contracts
    def get_admin_urls(urls):
    def get_urls():
    my_urls = patterns('',
    (r'^client/reports/$', admin.site.admin_view(expired_contracts))
    )
    return my_urls + urls
    return get_urls

    admin_urls = get_admin_urls(admin.site.get_urls())
    admin.site.get_urls = admin_urls

    вроде всё работает, но не работают хлебные крошки

    ошибка: Reverse for 'app_list' with arguments '()' and keyword arguments '{u'app_label': ''}'