Witamy!
Forum dla profesjonalistów i entuzjastów systemu Odoo. Dyskusje, porady, opinie, komentarze.
Celem automatycznego rozdzielania zadań .... [Zamknięte]
- Pytanie został zamknięty z powodu: niezwiązane z tematem lub nieaktualne
przezKod w modelu iprodstep_log (custom module): .... poprawiony i działa poprawnie.
#----------------- Main class -----------------
class iprodstep_log(models.Model):
_name = 'iprodstep.log'
@api.multi
def sort_order(self):
records = self.env['iprodstep.log'].search([('state','=','draft')])
... elif record.postage_service == 'Other 24 Hour Courier':
record.write({'state': 'in','urgent_id': True})
else:
record.write({'state' : 'in'})
Po zmianie i przestawieniu nieco definicji 'sort_orders', poprawieniu indentacji nie dostaję już komunikatu o błędzie ale .... tworzy pusty rekord. Oczywiście to nie jest problemem, rekord można bez problemu skasować, niemniej szukam sposobu na uniknięcie jego tworzenia.
Ooo faktycznie, niemniej .... czy z podkreśleniem czy bez wciąż mi wywala komunikat: " return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) AttributeError: 'iprodstep.log' object has no attribute 'sort_order' " A to już mnie denerwuje ..... nieco :)
Wprowadziłem poprawki (patrz powyżej) ale w dalszym ciągu nie chce mi działać. Co źle robię ?
Mea culpa ..... poprawki poprawkami a błędy błedami więc ... znalazłem, poprawiłem i wszystko pięknie ... no prawie bo za każdym razem gdy włączam proces sortowania, dodaje i pusty rekord na końcu listy .... Dlaczego ?
Pozwoliłem sobie zrobić filmik https://www.youtube.com/watch?v=YTv1Tek1o0Y pokazujący działanie modułu - przynajmniej częsciowo - wraz z opisem w którym miejscu chciałbym przejść z widoku form do kanban. Chyba juz wiem jak należy się do tego zabrać ale ..... jeśli znacie jakiś nieskomplikowany sposób ....
Problem rozwiązałem, działa z niewielkim błędem polegającym na dodawaniu pustego rekordu. Nie wyśledziłem jeszcze w którym momencie go dodaje, czy na koniec czy przy starcie procedury.
Chciałem także dodać wyskakującą informację w przypadku gdy niema nic do sortowania.
@api.multi
def order_sort(self):
records = self.env['iprodstep.log'].search([('state','=','draft')])
# if records == '': nie bardzo wiem jak to zrobić :)
# raise Warning('Nothing to sort') # i w tym miejscu STOP jeśli record in records jest pusty
#
for record in records:
if record.postage_service == 'Royal Mail 1st Class':
record.write({'state' : 'royal1'})
elif record.postage_service == 'Royal Mail 2nd Class':
record.write({'state' : 'royal2'})
Znalazłem przyczynę :) Niestety nie wiem jak się z tym uporać. W chwili gdy otwieram menu sortowania pojawia się przycisk "Create" co oznacza, że mamy otwarty nowy rekord. W chwili uruchomienia procesu sortowania Odoo automatycznie zapisuje ten rekord mimo, ze jest pusty. Jak się tego pozbyć ?
Bądź na bieżąco
O tym forum
Narzędzia do pytań
Statystyki
Spytał/a: 03.09.2015, 15:27 |
Oglądano: 1213 razy |
Ostatnia aktualizacja: 07.09.2015, 15:46 |
Chyba nie ma to związku z tym fragmentem kodu. Raczej z metodą sort_order, tu jest pokazana metoda nieco inaczej nazwana (podkreślink z przodu) _sort_order.