... | ... | @@ -13,15 +13,32 @@ Per importar CDRs, el vertical fa servir **Perfils d'importació** (`ewan.isp.pr |
|
|
|
|
|
Els models d'importació tenen el conveni de nom `ewan.isp.cdr.xxx`, p. ex., `ewan.isp.cdr.lemonvil` per al proveïdor de trucades Lemonvil. Aquests models hereten de la classe abstracta `ewan.isp.cdr.base`, on es poden definir funcionalitats comunes. En principi cap d'aquestes classes definirà *camps*, només mètodes.
|
|
|
|
|
|
Cada model d'importació ha de definir un mètode:
|
|
|
Cada model d'importació ha de definir dos mètodes:
|
|
|
|
|
|
``` python
|
|
|
@api.model
|
|
|
def read_cdrs(self, profile=False, path=False):
|
|
|
@api.model
|
|
|
def read_cdrs(self, profile=False, path=False):
|
|
|
...
|
|
|
```
|
|
|
Aquest mètode pot actualitzar el perfil, per exemple per registrar l'última data importada. Aquest mètode s'encarregarà de llegir CDRs i crear registres d'importació de trucades i trucades a l'Odoo.
|
|
|
|
|
|
El segon mètode és
|
|
|
|
|
|
``` python
|
|
|
@api.model
|
|
|
@api.returns('ewan.isp.call.import')
|
|
|
def import_cdr(self, data=False, filename=False, profile=False):
|
|
|
"""
|
|
|
Create a `ewan.isp.call.import` object from a CDR file.
|
|
|
|
|
|
:param data: File-like object containing the CDR as text
|
|
|
:param filename: File name of the import
|
|
|
:param profile: Profile used
|
|
|
:return: New `ewan.isp.call.import` object including created calls
|
|
|
"""
|
|
|
```
|
|
|
Aquest mètode permet de cridar importacions manuals i puntuals de fitxers CDR. El primer mètode cridarà a aquest segon mètode quan hagi de crear registres.
|
|
|
|
|
|
## Cron
|
|
|
|
|
|
El `cron` es defineix al model d'importacions de trucades `ewan.isp.call.import`.
|
... | ... | |