示例#1
0
class DemandeResource(resources.ModelResource):
    frais_date = fields.Field(attribute='frais_date',
                              column_name='Date',
                              widget=widgets.DateWidget())
    num_releve = fields.Field(attribute='num_releve',
                              column_name="Numéro d'édition")
    chauffeur = fields.Field(attribute='chauffeur', column_name='Chauffeur')
    code_activite = fields.Field(attribute='code_activite',
                                 column_name='Code frais')
    montant_ttc = fields.Field(attribute='montant_ttc',
                               column_name='Total',
                               widget=widgets.DecimalWidget())

    class Meta:
        model = Demande
        fields = ('frais_date', 'num_releve', 'chauffeur', 'code_activite',
                  'montant_ttc')
        export_order = ('frais_date', 'num_releve', 'chauffeur',
                        'code_activite', 'montant_ttc')

    def dehydrate_user(self, Demande):
        return '%s' % (Demande.user.username)

    def dehydrate_chauffeur(self, Demande):
        return '%s' % (Demande.chauffeur.code_matricule)
示例#2
0
文件: admin.py 项目: pessom/Eshop
class OfferResource(CustomModelResource):
    name = fields.Field(
        column_name='name',
        attribute='name',
        default=None,
        widget=widgets.CharWidget(),
    )

    price = fields.Field(
        column_name='price',
        attribute='price',
        default=0,
        widget=widgets.DecimalWidget(),
    )

    product = fields.Field(
        column_name='product',
        attribute='product',
        widget=widgets.ForeignKeyWidget(Product, field='name'),
    )

    is_active = fields.Field(column_name='is_active',
                             attribute='is_active',
                             default=1,
                             widget=widgets.BooleanWidget())

    attributes = fields.Field(column_name='attributes',
                              attribute='attributes',
                              default={},
                              widget=widgets.CharWidget())

    class Meta:
        model = Offer
        fields = ('name', 'product', 'price', 'is_active', 'attributes')
        export_order = ('name', 'product', 'attributes', 'is_active', 'price')
        import_id_fields = ('name', )
示例#3
0
 def setUp(self):
     self.value = Decimal("11.111")
     self.widget = widgets.DecimalWidget()
示例#4
0
 def test_clean(self):
     widget = widgets.DecimalWidget()
     self.assertEqual(widget.clean("11.111"), Decimal("11.111"))
class TireResource(resources.ModelResource):
    def get_queryset(self):
        return Tire.objects.all()
    
    def export(self,queryset,*args,**kwargs):
        tires = Tire.objects.available()
        return super().export(tires,*args,**kwargs)

    def before_import(self,dataset, using_transactions, dry_run, **kwargs):
        imported_ids = []
        if not dry_run:
            for row in dataset:
                imported_ids.append(row[0])

            filtered_ids = list(filter(None,imported_ids))
            tires = Tire.objects.all()
            tires.backup()
            tires.exclude(id__in=filtered_ids).delete()


    origin = fields.Field(
        attribute="brand__country", widget=widgets.CustomCountryWidget()
    )
    manufacturer = fields.Field(
        attribute="manufacturer", widget=widgets.CustomCountryWidget()
    )
    season = fields.Field(attribute="season", widget=widgets.CustomSeasonWidget())
    brand = fields.Field(attribute="brand", widget=widgets.CustomBrandWidget())
    serie = fields.Field(attribute="serie", widget=widgets.CustomSerieWidget())
    

    ZR = fields.Field(attribute="ZR", widget=widgets.CustomBooleanWidget())
    MS = fields.Field(
        column_name="M+S", attribute="MS", widget=widgets.CustomBooleanWidget()
    )
    OE = fields.Field(attribute="OE", widget=resource_widget.CharWidget())
    RF = fields.Field(attribute="RF", widget=widgets.CustomBooleanWidget())
    SL = fields.Field(attribute="SL", widget=widgets.CustomBooleanWidget())
    taksit_active = fields.Field(
        column_name="Taksit active",
        attribute="taksit_active",
        widget=widgets.CustomBooleanWidget()
    )
    
    taksit_2 = fields.Field(
        column_name="Taksit 2 ay",
        attribute="taksit_2",
        widget=widgets.CustomDecimalWidget(2),
    )
    taksit_2_active = fields.Field(
        column_name="Taksit 2 active",
        attribute="taksit_2_active",
        widget=widgets.CustomBooleanWidget(),
    )
    taksit_3 = fields.Field(
        column_name="Taksit 3 ay",
        attribute="taksit_3",
        widget=widgets.CustomDecimalWidget(3),
    )
    taksit_3_active = fields.Field(
        column_name="Taksit 3 active",
        attribute="taksit_3_active",
        widget=widgets.CustomBooleanWidget(),
    )
    taksit_6 = fields.Field(
        column_name="Taksit 6 ay",
        attribute="taksit_6",
        widget=widgets.CustomDecimalWidget(6),
    )
    taksit_6_active = fields.Field(
        column_name="Taksit 6 active",
        attribute="taksit_6_active",
        widget=widgets.CustomBooleanWidget(),
    )
    taksit_9 = fields.Field(
        column_name="Taksit 9 ay",
        attribute="taksit_9",
        widget=widgets.CustomDecimalWidget(9),
    )
    taksit_9_active = fields.Field(
        column_name="Taksit 9 active",
        attribute="taksit_9_active",
        widget=widgets.CustomBooleanWidget(),
    )
    taksit_12 = fields.Field(
        column_name="Taksit 12 ay",
        attribute="taksit_12",
        widget=widgets.CustomDecimalWidget(12),
    )
    taksit_12_active = fields.Field(
        column_name="Taksit 12 active",
        attribute="taksit_12_active",
        widget=widgets.CustomBooleanWidget(),
    )
    kredit_active = fields.Field(
        column_name="Kredit active",
        attribute="kredit_active",
        widget=widgets.CustomBooleanWidget()
    )
    taksit_active = fields.Field(
        column_name="Taksit active",
        attribute="taksit_active",
        widget=widgets.CustomBooleanWidget()
    )
    kredit_3 = fields.Field(
        column_name="Kredit 3 ay",
        attribute="kredit_3",
        widget=widgets.CustomDecimalWidget(3),
    )
    kredit_3_active = fields.Field(
        column_name="Kredit 3 active",
        attribute="kredit_3_active",
        widget=widgets.CustomBooleanWidget(),
    )
    kredit_3_dif = fields.Field(
        column_name="Bahalaşma 3 %",
        attribute="kredit_3_dif",
        widget=widgets.DecimalWidget(),
    )

    kredit_6 = fields.Field(
        column_name="Kredit 6 ay",
        attribute="kredit_6",
        widget=widgets.CustomDecimalWidget(6),
    )
    kredit_6_active = fields.Field(
        column_name="Kredit 6 active",
        attribute="kredit_6_active",
        widget=widgets.CustomBooleanWidget(),
    )
    kredit_6_dif = fields.Field(
        column_name="Bahalaşma 6 %",
        attribute="kredit_6_dif",
        widget=widgets.DecimalWidget(),
    )

    kredit_9 = fields.Field(
        column_name="Kredit 9 ay",
        attribute="kredit_9",
        widget=widgets.CustomDecimalWidget(9),
    )
    kredit_9_active = fields.Field(
        column_name="Kredit 9 active",
        attribute="kredit_9_active",
        widget=widgets.CustomBooleanWidget(),
    )
    kredit_9_dif = fields.Field(
        column_name="Bahalaşma 9 %",
        attribute="kredit_9_dif",
        widget=widgets.DecimalWidget(),
    )

    kredit_12 = fields.Field(
        column_name="Kredit 12 ay",
        attribute="kredit_12",
        widget=widgets.CustomDecimalWidget(12),
    )
    kredit_12_active = fields.Field(
        column_name="Kredit 12 active",
        attribute="kredit_12_active",
        widget=widgets.CustomBooleanWidget(),
    )
    kredit_12_dif = fields.Field(
        column_name="Bahalaşma 12 %",
        attribute="kredit_12_dif",
        widget=widgets.DecimalWidget(),
    )

    price = fields.Field(
        column_name="price", attribute="price", widget=resource_widget.DecimalWidget()
    )
    sale = fields.Field(
        column_name="sale", attribute="sale", widget=resource_widget.DecimalWidget()
    )
    sale_active = fields.Field(
        column_name="sale active",
        attribute="sale_active",
        widget=widgets.CustomBooleanWidget()
    )

    montaj_balance = fields.Field(
        column_name="Montaj+Balance",
        attribute="montaj_balance",
        widget=resource_widget.DecimalWidget(),
    )
    Class = fields.Field(
        column_name="class", attribute="Class", widget=widgets.CustomClassWidget()
    )

    size = fields.Field(attribute="size", widget=widgets.CustomSizeWidget())
    release_date = fields.Field(
        attribute="release_date",
        widget=resource_widget.CharWidget()
    )

    db= fields.Field(attribute="db",widget=resource_widget.IntegerWidget())
    fuel = fields.Field(attribute="fuel",widget=resource_widget.CharWidget())
    contact = fields.Field(attribute="contact",widget=resource_widget.CharWidget())
    kredit_initial_price = fields.Field(column_name="kredit initial price %",attribute="kredit_initial_price",widget=resource_widget.FloatWidget())
    new = fields.Field(attribute="new",widget=widgets.CustomNewBooleanWidget())
    outlet = fields.Field(attribute="outlet",widget=widgets.CustomOutletBooleanWidget())

    class Meta:
        model = Tire
        import_id_fields = ("id",'code')
        # instance_loader_class = CustomModelInstanceLoader

        fields = (
            "id",
            "code",
            "brand",
            "serie",
            "manufacturer",
            "size",
            "ZR",
            "MS",
            "OE",
            "SL",
            "RF",
            "tradeware",
            "weight",
            "speed",
            "razval",
            "year",
            "Class",
            "quantity",
            "kredit_active",
            "kredit_12_dif",
            "kredit_9_dif",
            "kredit_6_dif",
            "kredit_3_dif",
            "kredit_3",
            "kredit_3_active",
            "kredit_6",
            "kredit_6_active",
            "kredit_9",
            "kredit_9_active",
            "kredit_12",
            "kredit_12_active",
            "taksit_active",
            "taksit_2",
            "taksit_2_active",
            "taksit_3",
            "taksit_3_active",
            "taksit_6",
            "taksit_6_active",
            "taksit_9",
            "taksit_9_active",
            "taksit_12",
            "taksit_12_active",
            "price",
            "sale",
            "sale_active",
            "release_date",
            "db",
            "fuel",
            "contact",
            "kredit_initial_price",
            "new",
            "outlet",
            "birkart",
            "tamkart",
            "bolkart",
            "albalikart",
            "kredit",
            "stickers",
            'campaigns'
        )
        skip_unchanged = True

        export_order = (
            "id",
            "code",
            "brand",
            "serie",
            "origin",
            "manufacturer",
            "size",
            "ZR",
            "MS",
            "OE",
            "SL",
            "RF",
            "season",
            "tradeware",
            "weight",
            "speed",
            'db',
            "fuel",
            "contact",
            "price",
            "sale",
            "sale_active",
            "montaj_balance",
            "razval",
            "year",
            "Class",
            "taksit_active",
            "taksit_2",
            "taksit_2_active",
            "taksit_3",
            "taksit_3_active",
            "taksit_6",
            "taksit_6_active",
            "taksit_9",
            "taksit_9_active",
            "taksit_12",
            "taksit_12_active",
            "kredit_active",
            "kredit_3",
            "kredit_3_dif",
            "kredit_3_active",
            "kredit_initial_price",
            "kredit_6",
            "kredit_6_dif",
            "kredit_6_active",
            "kredit_9",
            "kredit_9_dif",
            "kredit_9_active",
            "kredit_12",
            "kredit_12_dif",
            "kredit_12_active",
            "quantity",
            "release_date",
            "new",
            "outlet"
        )
class StudentEvaluationResource(resources.ModelResource):
    def before_import(self, dataset, dry_run, **kwargs):
        student_ids = []
        for row in dataset.dict:
            number = int(row['number'])
            dateOfTesting = datetime.datetime.strptime(row['dateOfTesting'], '%Y-%m-%d').date()
            student = self.get_student(number=number, dateOfTesting=dateOfTesting)
            student_ids.append(student.id)
        dataset.append_col(student_ids, header='student_id')
    def before_save_instance(self, instance, dry_run):
        p_values = (instance.p_bal,instance.p_shh,instance.p_sws,instance.p_20m,instance.p_su,instance.p_ls,instance.p_rb,instance.p_lauf,instance.p_ball)
        p_total = sum(p_values)
        if p_total >= 712:
            instance.is_talent = True
        elif p_total < 350:
            instance.is_frail = True
        
        potential_items = []
        potential_items.append(self.PotentialItem('badminton', instance.potential_badminton))
        potential_items.append(self.PotentialItem('basketball', instance.potential_basketball))
        potential_items.append(self.PotentialItem('soccer', instance.potential_soccer))
        potential_items.append(self.PotentialItem('gymnastics', instance.potential_gymnastics))
        potential_items.append(self.PotentialItem('canoe', instance.potential_canoe))
        potential_items.append(self.PotentialItem('athletics_running', instance.potential_athletics_running))
        potential_items.append(self.PotentialItem('athletics_sprinting_jumping_throwing', instance.potential_athletics_sprinting_jumping_throwing))
        potential_items.append(self.PotentialItem('swimming', instance.potential_swimming))
        potential_items.append(self.PotentialItem('table_tennis', instance.potential_table_tennis))
        potential_items.append(self.PotentialItem('volleyball', instance.potential_volleyball))
        potential_items.sort(key=lambda item: item.value, reverse=True)
        temp_potential_item_names = []
        if instance.is_frail != True:
            for potential_item in potential_items[:5]:
                temp_potential_item_names.append(potential_item.name)

        certificate_template = 'ShanghaiMovementCheck2015'
        certificate_data = {'template':certificate_template, 'potential_items':temp_potential_item_names}
        instance.certificate_data = json.dumps(certificate_data)
    def get_student(self, number, dateOfTesting):
        studentQuery = Student.objects.filter(number=number, dateOfTesting=dateOfTesting)
        if studentQuery.exists():
            student = studentQuery[0]
        else:
            student = None
        return student

    student_id = fields.Field(attribute='student_id')
    potential_badminton = fields.Field(attribute='potential_badminton', widget=widgets.DecimalWidget(), column_name='Badminton')
    potential_basketball = fields.Field(attribute='potential_basketball', widget=widgets.DecimalWidget(), column_name='Basketball')
    potential_soccer = fields.Field(attribute='potential_soccer', widget=widgets.DecimalWidget(), column_name='Fußball')
    potential_gymnastics = fields.Field(attribute='potential_gymnastics', widget=widgets.DecimalWidget(), column_name='Gerätturnen')
    potential_canoe = fields.Field(attribute='potential_canoe', widget=widgets.DecimalWidget(), column_name='Kanu')
    potential_athletics_running = fields.Field(attribute='potential_athletics_running', widget=widgets.DecimalWidget(), column_name='Leichtathletik - Lauf')
    potential_athletics_sprinting_jumping_throwing = fields.Field(attribute='potential_athletics_sprinting_jumping_throwing', widget=widgets.DecimalWidget(), column_name='Leichtathletik - Sprint/Sprung/Wurf')
    potential_swimming = fields.Field(attribute='potential_swimming', widget=widgets.DecimalWidget(), column_name='Schwimmen')
    potential_table_tennis = fields.Field(attribute='potential_table_tennis', widget=widgets.DecimalWidget(), column_name='Tischtennis')
    potential_volleyball = fields.Field(attribute='potential_volleyball', widget=widgets.DecimalWidget(), column_name='Volleyball')

    class Meta:
        model = StudentEvaluation
        import_id_fields = ('student_id',)
        fields = ('p_bal','p_shh','p_sws','p_20m','p_su','p_ls','p_rb','p_lauf','p_ball','p_height','p_weight','p_bmi')

    class PotentialItem:
        def __init__(self, name, value):
            self.name = name
            self.value = value
示例#7
0
class StudentEvaluationResource(resources.ModelResource):
    def before_import(self, dataset, dry_run, **kwargs):
        student_ids = []
        for row in dataset.dict:
            number = int(row['number'])
            dateOfTesting = datetime.datetime.strptime(row['dateOfTesting'],
                                                       '%Y/%m/%d').date()
            student = self.get_student(number=number,
                                       dateOfTesting=dateOfTesting)
            student_ids.append(student.id)
        dataset.append_col(student_ids, header='student_id')

    def before_save_instance(self, instance, dry_run):
        p_values = (instance.p_bal, instance.p_shh, instance.p_sws,
                    instance.p_20m, instance.p_su, instance.p_ls,
                    instance.p_rb, instance.p_lauf, instance.p_ball)
        p_total = sum(p_values)
        if p_total <= 319:
            instance.is_frail = True

        potential_items = []
        potential_items.append(
            self.PotentialItem('badminton', instance.potential_badminton))
        potential_items.append(
            self.PotentialItem('basketball', instance.potential_basketball))
        potential_items.append(
            self.PotentialItem('soccer', instance.potential_soccer))
        potential_items.append(
            self.PotentialItem('gymnastics', instance.potential_gymnastics))
        potential_items.append(
            self.PotentialItem('canoe', instance.potential_canoe))
        potential_items.append(
            self.PotentialItem('discus', instance.potential_discus))
        potential_items.append(
            self.PotentialItem('shot_put', instance.potential_shot_put))
        potential_items.append(
            self.PotentialItem('pole_vault', instance.potential_pole_vault))
        potential_items.append(
            self.PotentialItem('high_jump', instance.potential_high_jump))
        potential_items.append(
            self.PotentialItem('javelin', instance.potential_javelin))
        potential_items.append(
            self.PotentialItem('long_jump', instance.potential_long_jump))
        potential_items.append(
            self.PotentialItem('huerdles', instance.potential_huerdles))
        potential_items.append(
            self.PotentialItem('sprint', instance.potential_sprint))
        potential_items.append(
            self.PotentialItem('rowing', instance.potential_rowing))
        potential_items.append(
            self.PotentialItem('swimming', instance.potential_swimming))
        potential_items.append(
            self.PotentialItem('tennis', instance.potential_tennis))
        potential_items.append(
            self.PotentialItem('table_tennis',
                               instance.potential_table_tennis))
        potential_items.append(
            self.PotentialItem('volleyball', instance.potential_volleyball))
        potential_items.sort(key=lambda item: item.value, reverse=True)
        temp_potential_item_names = []
        if instance.is_frail != True:
            for potential_item in potential_items[:3]:
                temp_potential_item_names.append(potential_item.name)

        certificate_template = 'ShanghaiMovementCheck2015'
        certificate_data = {
            'template': certificate_template,
            'potential_items': temp_potential_item_names
        }
        instance.certificate_data = json.dumps(certificate_data)

    def get_student(self, number, dateOfTesting):
        studentQuery = Student.objects.filter(number=number,
                                              dateOfTesting=dateOfTesting)
        if studentQuery.exists():
            student = studentQuery[0]
        else:
            student = None
        return student

    student_id = fields.Field(attribute='student_id')
    potential_badminton = fields.Field(attribute='potential_badminton',
                                       widget=widgets.DecimalWidget(),
                                       column_name='badminton')
    potential_basketball = fields.Field(attribute='potential_basketball',
                                        widget=widgets.DecimalWidget(),
                                        column_name='basketball')
    potential_soccer = fields.Field(attribute='potential_soccer',
                                    widget=widgets.DecimalWidget(),
                                    column_name='soccer')
    potential_gymnastics = fields.Field(attribute='potential_gymnastics',
                                        widget=widgets.DecimalWidget(),
                                        column_name='gymnastics')
    potential_canoe = fields.Field(attribute='potential_canoe',
                                   widget=widgets.DecimalWidget(),
                                   column_name='canoe/kayak')
    potential_discus = fields.Field(attribute='potential_discus',
                                    widget=widgets.DecimalWidget(),
                                    column_name='discus')
    potential_shot_put = fields.Field(attribute='potential_shot_put',
                                      widget=widgets.DecimalWidget(),
                                      column_name='shot put')
    potential_pole_vault = fields.Field(attribute='potential_pole_vault',
                                        widget=widgets.DecimalWidget(),
                                        column_name='pole vault')
    potential_high_jump = fields.Field(attribute='potential_high_jump',
                                       widget=widgets.DecimalWidget(),
                                       column_name='high jump')
    potential_javelin = fields.Field(attribute='potential_javelin',
                                     widget=widgets.DecimalWidget(),
                                     column_name='javelin')
    potential_long_jump = fields.Field(attribute='potential_long_jump',
                                       widget=widgets.DecimalWidget(),
                                       column_name='long jump')
    potential_huerdles = fields.Field(attribute='potential_huerdles',
                                      widget=widgets.DecimalWidget(),
                                      column_name='huerdles')
    potential_sprint = fields.Field(attribute='potential_sprint',
                                    widget=widgets.DecimalWidget(),
                                    column_name='sprint')
    potential_rowing = fields.Field(attribute='potential_rowing',
                                    widget=widgets.DecimalWidget(),
                                    column_name='rowing')
    potential_swimming = fields.Field(attribute='potential_swimming',
                                      widget=widgets.DecimalWidget(),
                                      column_name='swimming')
    potential_tennis = fields.Field(attribute='potential_tennis',
                                    widget=widgets.DecimalWidget(),
                                    column_name='tennis')
    potential_table_tennis = fields.Field(attribute='potential_table_tennis',
                                          widget=widgets.DecimalWidget(),
                                          column_name='table tennis')
    potential_volleyball = fields.Field(attribute='potential_volleyball',
                                        widget=widgets.DecimalWidget(),
                                        column_name='volleyball')

    class Meta:
        model = StudentEvaluation
        import_id_fields = ('student_id', )
        fields = ('p_bal', 'p_shh', 'p_sws', 'p_20m', 'p_su', 'p_ls', 'p_rb',
                  'p_lauf', 'p_ball', 'p_height', 'p_weight', 'p_bmi')

    class PotentialItem:
        def __init__(self, name, value):
            self.name = name
            self.value = value
示例#8
0
class ProductResource(resources.ModelResource):

    pdid = fields.Field(
        column_name='PdID',  # column name on file
        attribute='pdid',
        widget=CustomDecimalWidget())  # attribute on table
    name = fields.Field(
        column_name='Product',  # column name on file
        attribute='name',
    )  # attribute on table
    descr1 = fields.Field(
        column_name='Descr1',  # column name on file
        attribute='descr1',
    )  # attribute on table
    descr2 = fields.Field(
        column_name='Descr2',  # column name on file
        attribute='descr2',
    )  # attribute on table
    detail = fields.Field(
        column_name='Detail',  # column name on file
        attribute='detail',
    )  # attribute on table
    remarks = fields.Field(
        column_name='Remarks',  # column name on file
        attribute='remarks',
    )  # attribute on table
    status_id = fields.Field(column_name='ProductStatus',
                             attribute='status',
                             widget=widgets.ForeignKeyWidget(
                                 ProductStatus, 'name'))
    price = fields.Field(column_name='Price',
                         attribute='price',
                         widget=widgets.DecimalWidget())
    date = fields.Field(column_name='TIMESTAMP',
                        attribute='date',
                        widget=widgets.DateWidget('%Y.%m.%d'))
    Handlager = fields.Field(
        column_name='Handlager',
        attribute='handlager',
    )
    lang_id = fields.Field(
        column_name='lang_id',
        attribute='lang_id',
    )
    weight = fields.Field(
        column_name='Weigth',
        attribute='weight',
    )
    ptype = fields.Field(
        column_name='PType',
        attribute='ptype',
    )
    HarmonizedCode = fields.Field(
        column_name='HarmonizedCode',
        attribute='harmonizedcode',
    )
    eccn = fields.Field(
        column_name='ECCN',
        attribute='eccn',
    )
    lkz = fields.Field(
        column_name='LKZ',
        attribute='lkz',
    )
    ag = fields.Field(
        column_name='AG',
        attribute='ag',
    )
    imageurl = fields.Field(
        column_name='imageURL',
        attribute='imageurl',
    )

    class Meta:
        model = Product
        fields = (
            'pdid',
            'name',
            'descr1',
            'descr2',
            'detail',
            'remarks',
            'status_id',
            'price',
            'date',
            'Handlager',
            'lang_id',
            'weight',
            'ptype',
            'HarmonizedCode',
            'eccn',
            'lkz',
            'ag',
            'imageurl',
        )
        list_display = (
            'name',
            'descr1',
        )
        import_id_fields = ('pdid', )
        skip_unchanged = True  # skip unchanged records
        report_skipped = True  # whether skipped records appear in the import Result object
        exclude = ('id', )