Пример #1
0
class AbsenteeResource(resources.ModelResource):
    governorate = fields.Field(column_name='governorate',
                               attribute='school',
                               widget=widgets.ForeignKeyWidget(
                                   School, 'location_parent_name'))
    district = fields.Field(column_name='district',
                            attribute='school',
                            widget=widgets.ForeignKeyWidget(
                                School, 'location_name'))

    class Meta:
        model = Absentee
        fields = (
            'school__number',
            'school__name',
            'governorate',
            'district',
            'student__number',
            'student__first_name',
            'student__father_name',
            'student__last_name',
            'student__mother_fullname',
            'student__sex',
            'last_attendance_date',
            'absent_days',
            'reattend_date',
            'validation_status',
            'dropout_status',
        )
        export_order = fields
Пример #2
0
class CurriculumCourseResource(ModelResource):
    class Meta:
        model = CurriculumCourse
        exclude = ('created_at', 'reg_number', 'inner_id')

    id = Field(attribute='id', column_name='id', widget=UUIDWidget())
    semester_number = Field(column_name='semester',
                            attribute='semester_number')
    curriculum = fields.Field(column_name='kurikulum',
                              attribute='curriculum',
                              widget=widgets.ForeignKeyWidget(
                                  Curriculum, 'code'))
    course = fields.Field(column_name='mata_kuliah',
                          attribute='course',
                          widget=widgets.ForeignKeyWidget(Course, 'old_code'))
    name = Field(column_name='nama_mk', readonly=True)
    concentration = fields.Field(column_name='konsentrasi',
                                 attribute='concentration',
                                 widget=widgets.ManyToManyWidget(Concentration,
                                                                 separator=',',
                                                                 field='code'))
    sks_graduate = Field(column_name='min_sks_lulus', attribute='sks_graduate')

    def dehydrate_name(self, obj):
        course = getattr(obj, 'course', None)
        return '%s' % '' if not course else str(course.name)
Пример #3
0
class TicketResource(resources.ModelResource):
    trans_id = fields.Field(column_name='Trans ID', attribute='payment',
                            widget=widgets.ForeignKeyWidget(Payment, 'trans_id'))
    issuer = fields.Field(column_name='Issuer', attribute='issuer',
                          widget=widgets.ForeignKeyWidget(CompanyUser, 'user__username'))
    region = fields.Field(column_name='Region', attribute='region',
                          widget=widgets.ForeignKeyWidget(Region, 'name'))
    issue_date = fields.Field(column_name='Issue Date', attribute='issue_date',
                              widget=widgets.DateTimeWidget(format='%d/%m/%Y %H:%M'))
    unit_price = fields.Field(column_name='Unit Price', attribute='unit_price')
    ticket_value = fields.Field(column_name='Amount', attribute='ticket_value')
    ticket_count = fields.Field(
        column_name='Ticket Count', attribute='ticket_count')
    balance = fields.Field(column_name='Balance', attribute='balance')

    def __init__(self, user):
        self.user = user

    class Meta:
        model = Ticket
        fields = ['trans_id', 'region', 'issue_date', 'ticket_value',
                  'unit_price', 'ticket_count', 'balance', 'issuer']

    def get_queryset(self):
        if self.user:
            role = self.user.profile.role
            print(f'User: {self.user}, Role: {role}')
            if role:
                if role.is_internal:
                    return Ticket.objects.all().order_by('-issue_date')
                else:
                    region = self.user.companyuser.region
                    return Ticket.objects.filter(region=region).order_by('-issue_date')
        print('Not allowed to export!')
        return []
Пример #4
0
class SequenceResource(resources.ModelResource):
    project = fields.Field(column_name='project',
                           attribute='project',
                           widget=widgets.ForeignKeyWidget(
                               Project, 'project_name'))
    package = fields.Field(column_name='package',
                           attribute='package',
                           widget=widgets.ForeignKeyWidget(
                               Package, 'package_name'))
    folder = fields.Field(column_name='folder',
                          attribute='folder',
                          widget=widgets.ForeignKeyWidget(
                              Folder, 'folder_name'))

    class Meta:
        model = Sequence
        #exclude = ('label_by',)
        fields = ('id', 'total_image', 'sequence_name', 'sequence_date',
                  'project', 'package', 'folder', 'sequence_status',
                  'completed_date', 'created_at', 'uploaded_date',
                  'created_by', 'updated_by')
        export_order = ('id', 'total_image', 'sequence_name', 'sequence_date',
                        'project', 'package', 'folder', 'sequence_status',
                        'completed_date', 'created_at', 'uploaded_date',
                        'created_by', 'updated_by')
Пример #5
0
class DomainResource(RalphModelResource):
    business_segment = fields.Field(
        column_name='business_segment',
        attribute='business_segment',
        widget=widgets.ForeignKeyWidget(
            assets.BusinessSegment,
            'name',
        ),
    )
    business_owner = fields.Field(
        column_name='business_owner',
        attribute='business_owner',
        widget=UserWidget(get_user_model()),
    )
    technical_owner = fields.Field(
        column_name='technical_owner',
        attribute='technical_owner',
        widget=UserWidget(get_user_model()),
    )
    domain_holder = fields.Field(
        column_name='domain_holder',
        attribute='domain_holder',
        widget=widgets.ForeignKeyWidget(assets.AssetHolder),
    )
    service_env = fields.Field(
        column_name='service_env',
        attribute='service_env',
        widget=AssetServiceEnvWidget(assets.ServiceEnvironment),
    )

    class Meta:
        model = Domain
        exclude = ('baseobject_ptr', )
Пример #6
0
class MenuItemResource(resources.ModelResource):
    name = fields.Field(column_name='Name', attribute='name')
    menu_item_type = fields.Field(column_name='Menu Item Type',
                                  attribute='menu_item_type',
                                  widget=widgets.ForeignKeyWidget(
                                      MenuItemType, 'name'))
    menu = fields.Field(column_name='Menu',
                        attribute='menu',
                        widget=widgets.ForeignKeyWidget(Menu, 'name'))
    restaurant = fields.Field(column_name='Restaurant',
                              attribute='restaurant',
                              widget=widgets.ForeignKeyWidget(
                                  Restaurant, 'name'))
    description = fields.Field(column_name='Description',
                               attribute='description')
    price = fields.Field(column_name='Price', attribute='price')
    type = fields.Field(column_name='Cuisine Type', attribute='type')

    class Meta:
        model = MenuItem

    def before_import(self, dataset, using_transactions, dry_run, **kwargs):
        # for row in dataset:
        # add validations
        pass
Пример #7
0
class BomItemResource(ModelResource):
    """ Class for managing BomItem data import/export """

    level = Field(attribute='level', readonly=True)

    bom_id = Field(attribute='pk')

    parent_part_id = Field(attribute='part',
                           widget=widgets.ForeignKeyWidget(Part))

    parent_part_name = Field(attribute='part__full_name', readonly=True)

    sub_part_id = Field(attribute='sub_part',
                        widget=widgets.ForeignKeyWidget(Part))

    sub_part_name = Field(attribute='sub_part__full_name', readonly=True)

    sub_assembly = Field(attribute='sub_part__assembly', readonly=True)

    class Meta:
        model = BomItem
        skip_unchanged = True
        report_skipped = False
        clean_model_instances = True

        exclude = [
            'checksum',
            'id',
            'part',
            'sub_part',
        ]
Пример #8
0
class StudentResource(ModelResource):
    class Meta:
        model = Student
        fields = ('id', 'account', 'student_id', 'registration_id',
                  'registration', 'year_of_force', 'coach', 'rmu',
                  'curriculum', 'semester', 'primary', 'status', 'status_note')

    id = Field(attribute='id', column_name='id', widget=UUIDWidget())
    name = Field(column_name='name', readonly=True)
    student_id = Field(column_name='npm', attribute='student_id')
    account = fields.Field(column_name='email_account',
                           attribute='account',
                           widget=widgets.ForeignKeyWidget(
                               get_user_model(), 'email'))
    year_of_force = fields.Field(column_name='angkatan',
                                 attribute='year_of_force',
                                 widget=widgets.ForeignKeyWidget(
                                     SchoolYear, 'code'))
    coach = fields.Field(column_name='pembimbing_akademik',
                         attribute='coach',
                         widget=widgets.ForeignKeyWidget(Teacher, 'tid'))
    rmu = fields.Field(column_name='program_studi',
                       attribute='rmu',
                       widget=widgets.ForeignKeyWidget(ManagementUnit, 'code'))
    curriculum = fields.Field(column_name='kurikulum',
                              attribute='curriculum',
                              widget=widgets.ForeignKeyWidget(
                                  Curriculum, 'code'))

    def dehydrate_name(self, obj):
        account = getattr(obj, 'account', None)
        return '%s' % account
Пример #9
0
class AbsenteeResource(resources.ModelResource):
    governorate = fields.Field(column_name='governorate',
                               attribute='school',
                               widget=widgets.ForeignKeyWidget(
                                   School, 'location_parent_name'))
    district = fields.Field(column_name='district',
                            attribute='school',
                            widget=widgets.ForeignKeyWidget(
                                School, 'location_name'))

    class Meta:
        model = Absentee
        fields = ('school__number', 'school__name', 'governorate', 'district',
                  'education_year', 'alp_round', 'level_name', 'section_name',
                  'student__number', 'student__first_name',
                  'student__father_name', 'student__last_name',
                  'student__mother_fullname', 'student__sex',
                  'last_attendance_date', 'attended_days',
                  'total_attended_days', 'last_absent_date', 'absent_days',
                  'total_absent_days', 'last_modification_date')
        export_order = ('school_id', 'student_id', 'last_attendance_date',
                        'attended_days', 'total_attended_days',
                        'last_absent_date', 'absent_days', 'total_absent_days',
                        'last_modification_date', 'education_year_id',
                        'alp_round', 'level', 'level_name', 'section',
                        'section_name')
Пример #10
0
class BaseImportExportResource(resources.ModelResource):
    project_code = fields.Field(
        attribute='project_code',
        widget=widgets.ForeignKeyWidget(ProjectCode, 'code'),
    )
    collab_id = fields.Field(
        attribute='collab_id',
        widget=widgets.CharWidget(),
    )
    sample_type = fields.Field(
        attribute='sample_type',
        widget=widgets.ForeignKeyWidget(SampleType, 'code'),
    )
    nucleic_acid_type = fields.Field(
        attribute='nucleic_acid_type',
        widget=widgets.ForeignKeyWidget(NucleicAcidType, 'code'),
    )
    sequencing_type = fields.Field(
        attribute='sequencing_type',
        widget=widgets.ForeignKeyWidget(SequencingType, 'code'),
    )
    notes = fields.Field(
        attribute='notes',
        widget=widgets.CharWidget(),
    )

    raise_errors = True
    skip_unchanged = True
    report_skipped = True

    class Meta:
        abstract = True
Пример #11
0
class BySchoolResource(resources.ModelResource):
    governorate = fields.Field(column_name='governorate',
                               attribute='school',
                               widget=widgets.ForeignKeyWidget(
                                   School, 'location_parent_name'))
    district = fields.Field(column_name='district',
                            attribute='school',
                            widget=widgets.ForeignKeyWidget(
                                School, 'location_name'))

    class Meta:
        model = BySchoolByDay
        fields = (
            'school__number',
            'school__name',
            'governorate',
            'district',
            'attendance_date',
            'total_enrolled',
            'total_attended',
            'total_attended_male',
            'total_attended_female',
            'total_absent_male',
            'total_absent_female',
            'validation_date',
        )
Пример #12
0
class AddaResource(resources.ModelResource):
    published = fields.Field(column_name='published', attribute='published')
    is_sbi_approved = fields.Field(column_name='is_sbi_approved', attribute='is_sbi_approved')
    location = fields.Field(column_name='location', attribute='location', widget=widgets.ForeignKeyWidget(Location, 'name'))
    brand = fields.Field(column_name='brand', attribute='brand', widget=widgets.ForeignKeyWidget(Brand, 'name'))
    category = fields.Field(column_name='category', attribute='category', widget=widgets.ForeignKeyWidget(Category, 'name'))
    possession = fields.Field(column_name='possession', attribute='possession', widget=widgets.ForeignKeyWidget(Possession, 'name'))
    configuration = fields.Field(column_name='configuration', attribute='configuration', widget=widgets.ManyToManyWidget(Configuration, ',', 'name'))
    fuel_type = fields.Field(column_name='fuel_type', attribute='fuel_type', widget=widgets.ForeignKeyWidget(FuelType, 'name'))
    two_wheeler_categories = fields.Field(column_name='two_wheeler_categories', attribute='two_wheeler_categories', widget=widgets.ForeignKeyWidget(TwoWheelerCategory, 'name'))
    two_wheeler_transmission = fields.Field(column_name='two_wheeler_transmission', attribute='two_wheeler_transmission', widget=widgets.ForeignKeyWidget(TwoWheelerTransmission, 'name'))
    four_wheeler_type = fields.Field(column_name='four_wheeler_type', attribute='four_wheeler_type', widget=widgets.ForeignKeyWidget(FourWheelerCategory, 'name'))
    four_wheeler_transmission = fields.Field(column_name='four_wheeler_transmission', attribute='four_wheeler_transmission', widget=widgets.ForeignKeyWidget(FourWheelerTransmission, 'name'))
    tags = fields.Field(column_name='tags', attribute='tags', widget=widgets.ManyToManyWidget(Tag, ',', 'name'))
    
    class Meta:
        model = Adda
        skip_unchanged = True
        report_skipped = False
        fields = ('id', 'title', 'published', 'is_sbi_approved', 'short_description', 'rich_text_description', 'featured_image',
                  'address', 'location', 'state', 'country', 'virtual_tour_link', 'brochure_link', 'price_sheet_link', 'market_price',
                  'brand', 'category', 'joined_users', 'favorited_users', 'possession', 'possession_date', 'configuration', 'ex_showroom_price', 'fuel_type', 'two_wheeler_categories', 'two_wheeler_transmission',
                  'two_wheeler_max_power', 'four_wheeler_type', 'four_wheeler_transmission', 'four_wheeler_bhp', 'mileage', 'tags')
        export_order = ('id', 'title', 'published', 'is_sbi_approved', 'short_description', 'rich_text_description', 'featured_image',
                        'address', 'location', 'state', 'country', 'virtual_tour_link', 'brochure_link', 'price_sheet_link', 'market_price',
                        'brand', 'category', 'joined_users', 'favorited_users', 'possession', 'possession_date', 'configuration', 'ex_showroom_price', 'fuel_type', 'two_wheeler_categories', 'two_wheeler_transmission',
                        'two_wheeler_max_power', 'four_wheeler_type', 'four_wheeler_transmission', 'four_wheeler_bhp', 'mileage', 'tags')
Пример #13
0
class PartCategoryResource(ModelResource):
    """ Class for managing PartCategory data import/export """

    parent = Field(attribute='parent',
                   widget=widgets.ForeignKeyWidget(PartCategory))

    parent_name = Field(attribute='parent__name', readonly=True)

    default_location = Field(attribute='default_location',
                             widget=widgets.ForeignKeyWidget(StockLocation))

    class Meta:
        model = PartCategory
        skip_unchanged = True
        report_skipped = False
        clean_model_instances = True

        exclude = [
            # Exclude MPTT internal model fields
            'lft',
            'rght',
            'tree_id',
            'level',
        ]

    def after_import(self, dataset, result, using_transactions, dry_run,
                     **kwargs):

        super().after_import(dataset, result, using_transactions, dry_run,
                             **kwargs)

        # Rebuild the PartCategory tree(s)
        PartCategory.objects.rebuild()
Пример #14
0
class ManifestListManifestResource(QueryModelResource):
    """
    Resource for import/export of manifest_list manifest m2m entries
    """

    manifest_list = fields.Field(
        column_name="manifest_list",
        attribute="manifest_list",
        widget=widgets.ForeignKeyWidget(Manifest, field="digest"),
    )
    image_manifest = fields.Field(
        column_name="image_manifest",
        attribute="image_manifest",
        widget=widgets.ForeignKeyWidget(Manifest, field="digest"),
    )

    def set_up_queryset(self):
        """
        :return: Manifests specific to a specified repo-version.
        """
        return ManifestListManifest.objects.filter(
            manifest_list__pk__in=self.repo_version.content).order_by("id")

    class Meta:
        model = ManifestListManifest
Пример #15
0
class PartResource(ModelResource):
    """ Class for managing Part data import/export """

    # ForeignKey fields
    category = Field(attribute='category',
                     widget=widgets.ForeignKeyWidget(PartCategory))

    default_location = Field(attribute='default_location',
                             widget=widgets.ForeignKeyWidget(StockLocation))

    default_supplier = Field(attribute='default_supplier',
                             widget=widgets.ForeignKeyWidget(SupplierPart))

    category_name = Field(attribute='category__name', readonly=True)

    variant_of = Field(attribute='variant_of',
                       widget=widgets.ForeignKeyWidget(Part))

    suppliers = Field(attribute='supplier_count', readonly=True)

    # Extra calculated meta-data (readonly)
    in_stock = Field(attribute='total_stock',
                     readonly=True,
                     widget=widgets.IntegerWidget())

    on_order = Field(attribute='on_order',
                     readonly=True,
                     widget=widgets.IntegerWidget())

    used_in = Field(attribute='used_in_count',
                    readonly=True,
                    widget=widgets.IntegerWidget())

    allocated = Field(attribute='allocation_count',
                      readonly=True,
                      widget=widgets.IntegerWidget())

    building = Field(attribute='quantity_being_built',
                     readonly=True,
                     widget=widgets.IntegerWidget())

    class Meta:
        model = Part
        skip_unchanged = True
        report_skipped = False
        clean_model_instances = True
        exclude = ['bom_checksum', 'bom_checked_by', 'bom_checked_date']

    def get_queryset(self):
        """ Prefetch related data for quicker access """

        query = super().get_queryset()
        query = query.prefetch_related(
            'category', 'used_in', 'builds',
            'supplier_parts__purchase_order_line_items',
            'stock_items__allocations')

        return query
Пример #16
0
class ExportUserResource(resources.ModelResource):
    first_name = fields.Field(
        column_name='Nombre',
        attribute='first_name',
    )
    last_name = fields.Field(
        column_name='Apellido',
        attribute='last_name',
    )
    email = fields.Field(
        column_name='Correo',
        attribute='email',
    )
    charge = fields.Field(
        column_name='Cargo',
        attribute='charge',
    )
    region = fields.Field(column_name=u'Región',
                          attribute='region',
                          widget=widgets.ForeignKeyWidget(User, 'region'))
    institution = fields.Field(column_name=u'Institución',
                               attribute='institution',
                               widget=widgets.ForeignKeyWidget(
                                   User, 'institution'))

    class Meta:
        model = User
        fields = (
            'first_name',
            'last_name',
            'email',
            'institution',
            'region',
            'charge',
        )
        export_order = ('first_name', 'last_name', 'email', 'institution',
                        'region', 'charge')

    def dehydrate_institution(self, obj):
        """
        Representation of institution at the time of export
        """
        if obj.id:
            institution = obj.institution
            if institution:
                return u"{}".format(institution.name)
            return u''

    def dehydrate_region(self, obj):
        """
        Representation of region at the time of export
        """
        if obj.id:
            region = obj.region
            if region:
                return u"{}".format(region.name)
            return u''
Пример #17
0
class DataResource(resources.ModelResource):
    groupname = fields.Field(widget=widgets.ForeignKeyWidget(Addgroup, 'name'))
    system_name = fields.Field(column_name='system_name',
                               attribute='system_name',
                               widget=widgets.ForeignKeyWidget(
                                   Addsystemname, 'name'))
    I6000 = fields.Field(column_name='I6000', attribute='I6000')

    class Meta:
        fields = ('groupname', 'system_name', 'I6000')
class ProgressResource(resources.ModelResource):
    language = fields.Field("language", "language", widgets.ForeignKeyWidget(Language, "code"), None)
    type = fields.Field("type", "type", widgets.ForeignKeyWidget(Document, "code"), None)
    methods = fields.Field("methods", "methods", widgets.ManyToManyWidget(Method, ",", "name"), None)
    partners = fields.Field("partners", "partners", widgets.ManyToManyWidget(Partner, ",", "name"), None)

    class Meta:
        model = Progress
        fields = ("id", "language", "type", "is_online", "methods", "completion_rate", "completion_date", "qa_level",
                  "in_door43", "in_uw", "partners", "notes", "is_done")
Пример #19
0
class EventJoinedUsersResource(resources.ModelResource):
    event = fields.Field(column_name='event', attribute='event', widget=widgets.ForeignKeyWidget(Event, 'title'))
    user = fields.Field(column_name='user', attribute='user', widget=widgets.ForeignKeyWidget(User, 'username'))

    class Meta:
        model = EventJoinedUsers
        skip_unchanged = True
        report_skipped = False
        fields = ('id', 'event', 'user', 'joined_date')
        export_order = ('id', 'event', 'user', 'joined_date')
Пример #20
0
class BomItemResource(ModelResource):
    """ Class for managing BomItem data import/export """

    part = Field(attribute='part', widget=widgets.ForeignKeyWidget(Part))

    sub_part = Field(attribute='part', widget=widgets.ForeignKeyWidget(Part))

    class Meta:
        model = BomItem
        skip_unchanged = True
        report_skipped = False
Пример #21
0
class ItemAdminResource(JSONResourceMixin, resources.ModelResource):
    category = fields.Field(column_name='category',
                            attribute='category',
                            widget=widgets.ForeignKeyWidget(
                                ItemCategory, 'name'))
    manufacturer = fields.Field(column_name='manufacturer',
                                attribute='manufacturer',
                                widget=widgets.ForeignKeyWidget(
                                    ItemManufacturer, 'name'))

    class Meta:
        model = Item
Пример #22
0
class StockItemResource(InvenTreeResource):
    """Class for managing StockItem data import/export."""

    # Custom managers for ForeignKey fields
    part = Field(attribute='part', widget=widgets.ForeignKeyWidget(Part))

    part_name = Field(attribute='part__full_name', readonly=True)

    supplier_part = Field(attribute='supplier_part', widget=widgets.ForeignKeyWidget(SupplierPart))

    supplier = Field(attribute='supplier_part__supplier__id', readonly=True)

    customer = Field(attribute='customer', widget=widgets.ForeignKeyWidget(Company))

    supplier_name = Field(attribute='supplier_part__supplier__name', readonly=True)

    status_label = Field(attribute='status_label', readonly=True)

    location = Field(attribute='location', widget=widgets.ForeignKeyWidget(StockLocation))

    location_name = Field(attribute='location__name', readonly=True)

    belongs_to = Field(attribute='belongs_to', widget=widgets.ForeignKeyWidget(StockItem))

    build = Field(attribute='build', widget=widgets.ForeignKeyWidget(Build))

    parent = Field(attribute='parent', widget=widgets.ForeignKeyWidget(StockItem))

    sales_order = Field(attribute='sales_order', widget=widgets.ForeignKeyWidget(SalesOrder))

    purchase_order = Field(attribute='purchase_order', widget=widgets.ForeignKeyWidget(PurchaseOrder))

    # Date management
    updated = Field(attribute='updated', widget=widgets.DateWidget())

    stocktake_date = Field(attribute='stocktake_date', widget=widgets.DateWidget())

    def after_import(self, dataset, result, using_transactions, dry_run, **kwargs):
        """Rebuild after import to keep tree intact."""
        super().after_import(dataset, result, using_transactions, dry_run, **kwargs)

        # Rebuild the StockItem tree(s)
        StockItem.objects.rebuild()

    class Meta:
        """Metaclass options."""

        model = StockItem
        skip_unchanged = True
        report_skipped = False
        clean_model_instance = True

        exclude = [
            # Exclude MPTT internal model fields
            'lft', 'rght', 'tree_id', 'level',
            # Exclude internal fields
            'serial_int', 'metadata',
        ]
Пример #23
0
class CommunityTrackEventResource(resources.ModelResource):
    talk = fields.Field(column_name='talk', attribute='talk', widget=widgets.ForeignKeyWidget(TalkProposal, 'id'))
    venue = fields.Field(column_name='venue', attribute='venue', widget=widgets.ForeignKeyWidget(Venue, 'name'))

    class Meta:
        model = CommunityTrackEvent
        fields = (
            'id', 'venue', 'order', 'talk', 'talk__title',
        )
        export_order = (
            'id', 'venue', 'order', 'talk', 'talk__title',
        )
Пример #24
0
class SupplierPartResource(ModelResource):
    """ Class for managing SupplierPart data import/export """

    part = Field(attribute='part', widget=widgets.ForeignKeyWidget(Part))

    supplier = Field(attribute='supplier',
                     widget=widgets.ForeignKeyWidget(Company))

    class Meta:
        model = SupplierPart
        skip_unchanged = True
        report_skipped = False
Пример #25
0
class EntityAttrResource(AironeModelResource):
    _IMPORT_INFO = {
        'header': [
            'id', 'name', 'type', 'refer', 'entity', 'created_user',
            'is_mandatory'
        ],
        'mandatory_keys': ['name', 'type', 'entity', 'created_user'],
        'resource_module':
        'entity.admin',
        'resource_model_name':
        'EntityAttrResource',
    }

    COMPARING_KEYS = [
        'name', 'is_mandatory', 'referral', 'parent_entity', 'created_user'
    ]
    DISALLOW_UPDATE_KEYS = ['parent_entity', 'created_user']

    user = fields.Field(column_name='created_user',
                        attribute='created_user',
                        widget=widgets.ForeignKeyWidget(User, 'username'))
    refer = fields.Field(column_name='refer',
                         attribute='referral',
                         widget=widgets.ManyToManyWidget(model=ACLBase,
                                                         field='name'))
    entity = fields.Field(column_name='entity',
                          attribute='parent_entity',
                          widget=widgets.ForeignKeyWidget(model=Entity,
                                                          field='name'))

    class Meta:
        model = EntityAttr
        fields = ('id', 'name', 'type', 'is_mandatory')

    def after_save_instance(self, instance, using_transactions, dry_run):
        # If a new EntityAttr object is created,
        # this processing append it to the associated Entity object.
        if not dry_run:
            entity = instance.parent_entity

            if not entity.attrs.filter(id=instance.id).exists():
                entity.attrs.add(instance)

    def import_obj(self, instance, data, dry_run):
        if not Entity.objects.filter(name=data['entity']).exists():
            raise RuntimeError('failed to identify entity object')

        if data['refer'] and not Entity.objects.filter(
                name=data['refer']).exists():
            raise RuntimeError('refer to invalid entity object')

        super(EntityAttrResource, self).import_obj(instance, data, dry_run)
Пример #26
0
class RosterResource(resources.ModelResource):
    user_name = fields.Field(column_name='User Name',
                             attribute='user',
                             widget=widgets.ForeignKeyWidget(
                                 auth.models.User, 'username'))
    semester_name = fields.Field(column_name='Semester Name',
                                 attribute='semester',
                                 widget=widgets.ForeignKeyWidget(
                                     core.models.Semester, 'name'))
    unit_list = fields.Field(column_name='Unit List',
                             attribute='curriculum',
                             widget=widgets.ManyToManyWidget(core.models.Unit,
                                                             separator=';'))
Пример #27
0
class SupplierPriceBreakResource(ModelResource):
    """ Class for managing SupplierPriceBreak data import/export """

    part = Field(attribute='part',
                 widget=widgets.ForeignKeyWidget(SupplierPart))

    currency = Field(attribute='currency',
                     widget=widgets.ForeignKeyWidget(Currency))

    class Meta:
        model = SupplierPriceBreak
        skip_unchanged = True
        report_skipped = False
Пример #28
0
class ImageResource(resources.ModelResource):
    User = get_user_model()
    project = fields.Field(column_name='project',
                           attribute='project',
                           widget=widgets.ForeignKeyWidget(
                               Project, 'project_name'))
    package = fields.Field(column_name='package',
                           attribute='package',
                           widget=widgets.ForeignKeyWidget(
                               Package, 'package_name'))
    folder = fields.Field(column_name='folder',
                          attribute='folder',
                          widget=widgets.ForeignKeyWidget(
                              Folder, 'folder_name'))
    set = fields.Field(column_name='set',
                       attribute='set',
                       widget=widgets.ForeignKeyWidget(Set, 'set_name'))
    sequence = fields.Field(column_name='sequence',
                            attribute='sequence',
                            widget=widgets.ForeignKeyWidget(
                                Sequence, 'sequence_name'))
    # assign_to__username = fields.Field(column_name='assign_to',attribute='assign_to',widget=widgets.ForeignKeyWidget(User,'id'))

    # assign_to__username = fields.Field(
    #     column_name='assign_to__username',
    #     attribute='assign_to',
    #     widget=ForeignKeyWidget(model=User, field='username'))
    assign_to = fields.Field(column_name='assign_to',
                             attribute='assign_to',
                             widget=ForeignKeyWidget(model=User,
                                                     field='first_name'))

    class Meta:
        model = Image
        #exclude = ('label_by',)
        fields = ('id', 'project', 'package', 'sequence', 'folder', 'set',
                  'image_name', 'image_type', 'status', 'assign_to',
                  'assign_at', 'label_time', 'label_date', 'correction_time',
                  'corrected_date', 'label_by', 'corrected_by',
                  'total_objects', 'layer_issues', 'border_issues',
                  'missing_objects', 'loop_on_image', 'approved_by',
                  'approved_date', 'remark', 'file_type', 'created_at',
                  'created_by')
        export_order = ('id', 'project', 'package', 'sequence', 'folder',
                        'set', 'image_name', 'image_type', 'status',
                        'assign_to', 'assign_at', 'label_time', 'label_date',
                        'correction_time', 'corrected_date', 'label_by',
                        'corrected_by', 'total_objects', 'layer_issues',
                        'border_issues', 'missing_objects', 'loop_on_image',
                        'approved_by', 'approved_date', 'remark', 'file_type',
                        'created_at', 'created_by')
Пример #29
0
class StudentConversionItemResource(ModelResource):
    class Meta:
        model = StudentConversionItem
        exclude = ('created_at', 'studentscore_ptr', 'polymorphic_ctype',
                   'is_trash', 'trashed_by', 'trashed_at')

    id = Field(attribute='id', column_name='id', widget=UUIDWidget())
    conversion = fields.Field(column_name='conversion',
                              attribute='conversion',
                              widget=widgets.ForeignKeyWidget(
                                  StudentConversion, 'inner_id'))
    course = fields.Field(column_name='mata_kuliah',
                          attribute='course',
                          widget=widgets.ForeignKeyWidget(Course, 'old_code'))
Пример #30
0
class WorkcenterProposalResource(resources.ModelResource):
  name = Field(attribute='name', column_name='workcenter')
  warehouse_id = Field(attribute='warehouse_id', column_name='warehouse', widget=widgets.ForeignKeyWidget(Warehouse, 'name'))
  subgroup_id = Field(attribute='subgroup_id', column_name='subgroup', widget=widgets.ForeignKeyWidget(Subgroup, 'name'))

  class Meta:
    model = WorkCenter
    skip_unchanged = True
    report_skipped = True
  
  def save_instance(self, instance, using_transactions=True, dry_run=False):
    try:
      super().save_instance(instance, using_transactions, dry_run)
    except IntegrityError:
      pass