Esempio n. 1
0
def create(user_id, password, model, vals):
    _check_user(user_id, password)
    odoo_id = vals["odoo_id"]
    if model not in MODELS_CLASS.keys():
        raise Fault("unknown_model", "Reference model does not exist!")
    mod_class = MODELS_CLASS[model]
    parse_many2one_vals(mod_class, vals)
    mod_class.create(**vals)
    return True
Esempio n. 2
0
def create(user_id, password, model, vals):
    _check_user(user_id, password)
    odoo_id = vals["odoo_id"]
    if model not in MODELS_CLASS.keys():
        raise Fault("unknown_model", "Reference model does not exist!")
    mod_class = MODELS_CLASS[model]
    parse_many2one_vals(mod_class, vals)
    mod_class.create(**vals)
    return True
Esempio n. 3
0
 def create(cls, **query):
     from sync_log import SyncLog
     from implemented_models import MODELS_CLASS
     res = super(SyncModel, cls).create(**query)
     if cls.MOD_NAME in MODELS_CLASS.keys():
         sync_date = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
         log = SyncLog.create(odoo_id=query['odoo_id'], model=cls.MOD_NAME,
                              operation='create', sync_date=sync_date, to_sync=True)
         #log.launch_sync()
     return res
Esempio n. 4
0
 def delete_instance(self, *args, **kwargs):
     from sync_log import SyncLog
     from implemented_models import MODELS_CLASS
     if self.MOD_NAME in MODELS_CLASS.keys():
         sync_date = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
         log = SyncLog.create(odoo_id=self.odoo_id, model=self.MOD_NAME,
                              operation='delete', sync_date=sync_date, to_sync=True)
     res = super(SyncModel, self).delete_instance(*args, **kwargs)
     #if self.MOD_NAME in MODELS_CLASS.keys():
     #    log.launch_sync()
     return res
Esempio n. 5
0
 def create(cls, **query):
     from sync_log import SyncLog
     from implemented_models import MODELS_CLASS
     res = super(SyncModel, cls).create(**query)
     if cls.MOD_NAME in list(MODELS_CLASS.keys()):
         sync_date = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
         log = SyncLog.create(odoo_id=query['odoo_id'],
                              model=cls.MOD_NAME,
                              operation='create',
                              sync_date=sync_date,
                              to_sync=True)
         #log.launch_sync()
     return res
Esempio n. 6
0
 def delete_instance(self, *args, **kwargs):
     from sync_log import SyncLog
     from implemented_models import MODELS_CLASS
     if self.MOD_NAME in list(MODELS_CLASS.keys()):
         sync_date = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
         log = SyncLog.create(odoo_id=self.odoo_id,
                              model=self.MOD_NAME,
                              operation='delete',
                              sync_date=sync_date,
                              to_sync=True)
     res = super(SyncModel, self).delete_instance(*args, **kwargs)
     #if self.MOD_NAME in MODELS_CLASS.keys():
     #    log.launch_sync()
     return res
Esempio n. 7
0
 def save(self, force_insert=False, only=None, is_update=False):
     from sync_log import SyncLog
     from implemented_models import MODELS_CLASS
     if is_update and self.MOD_NAME in MODELS_CLASS.keys():
         exist_id = SyncLog.select().where(SyncLog.to_sync == True, SyncLog.operation == "update",
                                           SyncLog.odoo_id == self.odoo_id, SyncLog.model == self.MOD_NAME).limit(1)
         if not exist_id: 
             sync_date = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
             log = SyncLog.create(odoo_id=self.odoo_id, model=self.MOD_NAME,
                                  operation='update', sync_date=sync_date, to_sync=True)
     res = super(SyncModel, self).save(force_insert, only)
     #if is_update and self.MOD_NAME in MODELS_CLASS.keys():
     #    log.launch_sync()
     return res
Esempio n. 8
0
def unlink(user_id, password, model, odoo_id):
    _check_user(user_id, password)
    if model not in MODELS_CLASS.keys():
        raise Fault("unknown_model", "Reference model does not exist!")
    mod_class = MODELS_CLASS[model]
    try:
        rec = mod_class.get(mod_class.odoo_id == odoo_id)
    except mod_class.DoesNotExist:
        pass
    else:
        if model == "customer":
            for invoice in Invoice.select().where(Invoice.partner_id == rec.id):
                invoice.delete_instance()
            for rma in Rma.select().where(Rma.partner_id == rec.id):
                for rma_product in RmaProduct.select().where(
                        RmaProduct.id_rma == rma.id):
                    rma_product.delete_instance()
                rma.delete_instance()
        elif model == 'product':
            for rma_product in RmaProduct.select().where(
                    RmaProduct.product_id == rec.id):
                rma_product.delete_instance()
        elif model == 'rma':
            for rma_product in RmaProduct.select().where(
                    RmaProduct.id_rma == rec.id):
                rma_product.delete_instance()
        elif model == 'rmastatus':
            for rma_product in RmaProduct.select().where(
                    RmaProduct.status_id == rec.id):
                rma_product.delete_instance()
        elif model == 'rmastage':
            for rma in Rma.select().where(
                    Rma.stage_id == rec.id):
                rma.delete_instance()
        elif model == 'customertagcustomerrel':
            for customertagcustomerrel in CustomerTagCustomerRel.select().where(
                    CustomerTagCustomerRel.odoo_id == rec.odoo_id):
                customertagcustomerrel.delete_instance()
        elif model == 'producttagproductrel':
            for producttagproductrel in ProductTagProductRel.select().where(
                    ProductTagProductRel.odoo_id == rec.odoo_id):
                producttagproductrel.delete_instance()
        elif model == 'order':
            for order in Order.select().where(
                Order.partner_id == rec.id):
                order.delete_instance()
        rec.delete_instance()
    return True
Esempio n. 9
0
def unlink(user_id, password, model, odoo_id):
    _check_user(user_id, password)
    if model not in MODELS_CLASS.keys():
        raise Fault("unknown_model", "Reference model does not exist!")
    mod_class = MODELS_CLASS[model]
    try:
        rec = mod_class.get(mod_class.odoo_id == odoo_id)
    except mod_class.DoesNotExist:
        pass
    else:
        if model == "customer":
            for invoice in Invoice.select().where(
                    Invoice.partner_id == rec.id):
                invoice.delete_instance()
            for rma in Rma.select().where(Rma.partner_id == rec.id):
                for rma_product in RmaProduct.select().where(
                        RmaProduct.id_rma == rma.id):
                    rma_product.delete_instance()
                rma.delete_instance()
        elif model == 'product':
            for rma_product in RmaProduct.select().where(
                    RmaProduct.product_id == rec.id):
                rma_product.delete_instance()
        elif model == 'rma':
            for rma_product in RmaProduct.select().where(
                    RmaProduct.id_rma == rec.id):
                rma_product.delete_instance()
        elif model == 'rmastatus':
            for rma_product in RmaProduct.select().where(
                    RmaProduct.status_id == rec.id):
                rma_product.delete_instance()
        elif model == 'rmastage':
            for rma in Rma.select().where(Rma.stage_id == rec.id):
                rma.delete_instance()
        elif model == 'customertagcustomerrel':
            for customertagcustomerrel in CustomerTagCustomerRel.select(
            ).where(CustomerTagCustomerRel.odoo_id == rec.odoo_id):
                customertagcustomerrel.delete_instance()
        elif model == 'producttagproductrel':
            for producttagproductrel in ProductTagProductRel.select().where(
                    ProductTagProductRel.odoo_id == rec.odoo_id):
                producttagproductrel.delete_instance()
        elif model == 'order':
            for order in Order.select().where(Order.partner_id == rec.id):
                order.delete_instance()
        rec.delete_instance()
    return True
Esempio n. 10
0
def write(user_id, password, model, odoo_id, vals):
    _check_user(user_id, password)
    if model not in MODELS_CLASS.keys():
        raise Fault("unknown_model", "Reference model does not exist!")
    mod_class = MODELS_CLASS[model]
    try:
        reg = mod_class.get(mod_class.odoo_id == odoo_id)
    except mod_class.DoesNotExist:
        raise Fault("unknown_registry", "%s not found!" % model)
    parse_many2one_vals(mod_class, vals)
    for field_name in vals.keys():
        value = vals[field_name]
        if isinstance(value, basestring):
            value = value.replace('"','\\"')
            value = '"%s"' % value
        exec('reg.%s = %s' % (field_name, value))
    reg.save(is_update=True)
    return True
Esempio n. 11
0
def write(user_id, password, model, odoo_id, vals):
    _check_user(user_id, password)
    if model not in MODELS_CLASS.keys():
        raise Fault("unknown_model", "Reference model does not exist!")
    mod_class = MODELS_CLASS[model]
    try:
        reg = mod_class.get(mod_class.odoo_id == odoo_id)
    except mod_class.DoesNotExist:
        raise Fault("unknown_registry", "%s not found!" % model)
    parse_many2one_vals(mod_class, vals)
    for field_name in vals.keys():
        value = vals[field_name]
        if isinstance(value, basestring):
            value = value.replace('"', '\\"')
            value = '"%s"' % value
        exec('reg.%s = %s' % (field_name, value))
    reg.save(is_update=True)
    return True
Esempio n. 12
0
 def save(self, force_insert=False, only=None, is_update=False):
     from sync_log import SyncLog
     from implemented_models import MODELS_CLASS
     if is_update and self.MOD_NAME in list(MODELS_CLASS.keys()):
         exist_id = SyncLog.select().where(
             SyncLog.to_sync == True, SyncLog.operation == "update",
             SyncLog.odoo_id == self.odoo_id,
             SyncLog.model == self.MOD_NAME).limit(1)
         if not exist_id:
             sync_date = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
             log = SyncLog.create(odoo_id=self.odoo_id,
                                  model=self.MOD_NAME,
                                  operation='update',
                                  sync_date=sync_date,
                                  to_sync=True)
     res = super(SyncModel, self).save(force_insert, only)
     #if is_update and self.MOD_NAME in MODELS_CLASS.keys():
     #    log.launch_sync()
     return res
Esempio n. 13
0
from implemented_models import MODELS_CLASS
from decimal import Decimal

user_auth = UserAuthentication(auth, protected_methods=['GET', 'POST', 'PUT',
                                                        'DELETE'])
api = RestAPI(app, default_auth=user_auth)


class ApiResource(RestResource):
    def check_post(self, obj=None):
        return False

    def check_put(self, obj):
        return False

    def check_delete(self, obj):
        return False

    def prepare_data(self, obj, data):
        for field in data:
            if isinstance(data[field], Decimal):
                data[field] = str(data[field])
        return data

for mod_class in list(MODELS_CLASS.keys()):
    api.register(MODELS_CLASS[mod_class], ApiResource)

api.register(SyncLog, ApiResource)

api.setup()
Esempio n. 14
0
from flask_peewee.rest import RestAPI, RestResource, UserAuthentication

from app import app
from sync_log import SyncLog
from auth import auth
from implemented_models import MODELS_CLASS

user_auth = UserAuthentication(auth, protected_methods=['GET', 'POST', 'PUT',
                                                        'DELETE'])
api = RestAPI(app, default_auth=user_auth)


class ApiResource(RestResource):
    def check_post(self, obj=None):
        return False

    def check_put(self, obj):
        return False

    def check_delete(self, obj):
        return False

for mod_class in MODELS_CLASS.keys():
    api.register(MODELS_CLASS[mod_class], ApiResource)

api.register(SyncLog, ApiResource)

api.setup()