Beispiel #1
0
class ProductResource(resources.ModelResource):
    group = resources.Field(attribute='group',
                            column_name='group',
                            widget=ForeignKeyWidget(Group, 'code'))
    operator = resources.Field(attribute='operator',
                               column_name='operator',
                               widget=ForeignKeyWidget(Operator, 'code'))

    class Meta:
        model = Product
        fields = [
            'code',
            'product_name',
            'type_product',
            'operator',
            'group',
            'nominal',
            'price',
            'commision',
        ]
        export_order = [
            'code',
            'product_name',
            'type_product',
            'operator',
            'group',
            'nominal',
            'price',
            'commision',
        ]
        import_id_fields = ['code']
        skip_unchanged = True
        report_skipped = False
Beispiel #2
0
class PartnerExport(resources.ModelResource):
    risk_rating = resources.Field()
    agreement_count = resources.Field()
    intervention_count = resources.Field()
    active_staff_members = resources.Field()

    class Meta:
        model = PartnerOrganization
        # TODO add missing fields:
        #   Blocked Flag (new property)
        #   Bank Info (just the number of accounts synced from VISION)
        fields = ('vendor_number', 'vision_synced', 'deleted_flag', 'name', 'short_name', 'alternate_id',
                  'alternate_name', 'partner_type', 'cso_type', 'address', 'email', 'phone_number',
                  'risk_rating', 'type_of_assessment', 'last_assessment_date', 'total_ct_cp', 'total_ct_cy',
                  'agreement_count', 'intervention_count', 'active_staff_members')
        export_order = fields

    def dehydrate_risk_rating(self, partner_organization):
        return partner_organization.rating

    def dehydrate_agreement_count(self, partner_organization):
        return partner_organization.agreements.count()

    def dehydrate_intervention_count(self, partner_organization):
        if partner_organization.partner_type == PartnerType.GOVERNMENT:
            return partner_organization.work_plans.count()
        intervention_count = 0
        # TODO: Nik revisit this... move this into a single query
        for agr in partner_organization.agreements.all():
            intervention_count += agr.interventions.count()
        return intervention_count

    def dehydrate_active_staff_members(self, partner_organization):
        return ', '.join([sm.get_full_name() for sm in partner_organization.staff_members.all()])
class PhraseResource(resources.ModelResource):
    english = resources.Field(attribute='content', column_name='ENGLISH')
    translated_text = resources.Field(column_name='TRANSLATED_TEXT',
                                      default='')
    audio_url = resources.Field(column_name='AUDIO_URL', default='')

    class Meta:
        model = Phrase
        fields = ['english', 'translated_text', 'audio_url']
Beispiel #4
0
class TicketSaleResource(resources.ModelResource):
    ticket_type = resources.Field()
    email = resources.Field()

    class Meta:
        model = TicketSale
        fields = ('the_ticket_id', 'full_name', 'diet', 'tagline', 'ticket')

    def dehydrate_ticket_type(self, obj):
        return obj.ticket.ticket_type

    def dehydrate_email(self, obj):
        return obj.user.email
Beispiel #5
0
class DeliveryBatchResource(resources.ModelResource):
    box_count = resources.Field()
    tshirt_sizes = resources.Field()

    class Meta:
        model = models.DeliveryBatch
        fields = ('note', 'created', 'campaign__name', 'dispatched')
        export_order = ('note', 'created', 'campaign__name', 'dispatched',
                        'box_count', 'tshirt_sizes')

    def dehydrate_box_count(self, db):
        return db.box_count()

    def dehydrate_tshirt_sizes(self, db):
        t_shirts = db.t_shirt_size_counts()
        return ';'.join('%s;%i' % (k, v) for k, v in t_shirts)
Beispiel #6
0
class GovernmentExport(resources.ModelResource):
    sectors = resources.Field()
    cash_transfer = resources.Field()
    year = resources.Field()

    class Meta:
        model = GovernmentIntervention
        fields = ('number', 'partner__name', 'result_structure__name', 'sectors', 'cash_transfer',
                  'year')
        export_order = fields

    def dehydrate_sectors(self, government):
        return ''

    def dehydrate_cash_transfer(self, government):
        return sum([r.planned_amount for r in government.results.all()])

    def dehydrate_year(self, government):
        return government.result_structure.to_date.year
Beispiel #7
0
class InstitutionResource(resources.ModelResource):
    tags = resources.Field(
        attribute="tags",
        column_name="tags",
        widget=widgets.ManyToManyWidget(Tag, field="name"),
    )

    class Meta:
        model = Institution
        fields = ["name", "comment", "id"]
Beispiel #8
0
class ConfigurationResource(resources.ModelResource):
    name = resources.Field()
    # measure = resources.Field(column_name='measure') # column name represent the name of column in exported data
    # dimension = resources.Field(column_name='dimension')
    # full_title = resources.Field()

    class Meta:
        model = Configuration
        fields = ('name',)

    def dehydrate_name(self,Configuration):
        return '%s' %(Configuration.user_defined_name)
Beispiel #9
0
class OperatorResource(resources.ModelResource):
    group = resources.Field(attribute='group',
                            column_name='group',
                            widget=ManyToManyWidget(model=Group, field='slug'))

    class Meta:
        model = Operator
        fields = ['slug', 'operator_name', 'group']
        export_order = ['slug', 'operator_name', 'group']
        import_id_fields = ['slug']
        skip_unchanged = True
        report_skipped = False
Beispiel #10
0
class AgRegistrationResource(resources.ModelResource):
    assembly = resources.Field(attribute='assembly__name',
                               column_name=_('Assembly'))

    registration_date = resources.Field(attribute='date',
                                        column_name=_('Registration date'))

    member_fullname = resources.Field(attribute='member__full_name',
                                      column_name=_('Member name'))

    member_number = resources.Field(attribute='member__www_soci',
                                    column_name=_('Membership number'))

    member_vat = resources.Field(attribute='member__username',
                                 column_name=_('DNI/NIF/NIE'))

    member_email = resources.Field(attribute='member__email',
                                   column_name=_('Email'))

    class Meta:
        model = AgRegistration
        fields = ('member_name', 'member_number', 'member_vat',
                  'registration_date', 'member_email')
        import_id_fields = (
            'registration_date',
            'member_vat',
        )
Beispiel #11
0
class AlumnoResource(resources.ModelResource):
    campus = resources.Field()
    grupo = resources.Field()
    proyecto = resources.Field()
    institucion = resources.Field()

    class Meta:
        model = Alumno
        fields = ('matricula', 'nombre', 'email', 'campus', 'nivel', 'grupo',
                  'proyecto', 'institucion')
        export_order = ('matricula', 'nombre', 'email', 'campus', 'nivel',
                        'grupo', 'proyecto', 'institucion')

    def dehydrate_campus(self, obj):
        grupo = obj.get_grupo()
        if grupo:
            return grupo.campus
        else:
            return "N/A"

    def dehydrate_grupo(self, obj):
        grupo = obj.get_grupo()
        if grupo:
            return "{}-{}".format(grupo.nivel, grupo.grupo)
        else:
            return "N/A"

    def dehydrate_proyecto(self, obj):
        proyecto = obj.proyecto_set.last()
        if proyecto:
            return proyecto.nombre
        else:
            return "N/A"

    def dehydrate_institucion(self, obj):
        proyecto = obj.proyecto_set.last()
        if proyecto:
            return proyecto.institucion.nombre
        else:
            return "N/A"
Beispiel #12
0
class DeliveryBatchResource(resources.ModelResource):
    box_count = resources.Field()
    tshirt_sizes = resources.Field()

    class Meta:
        model = models.DeliveryBatch
        fields = ("note", "created", "campaign__name", "dispatched")
        export_order = (
            "note",
            "created",
            "campaign__name",
            "dispatched",
            "box_count",
            "tshirt_sizes",
        )

    def dehydrate_box_count(self, db):
        return db.box_count()

    def dehydrate_tshirt_sizes(self, db):
        t_shirts = db.t_shirt_size_counts()
        return ";".join("%s;%i" % (k, v) for k, v in t_shirts)
Beispiel #13
0
class TwitterProposalResource(resources.ModelResource):
    talk_title = resources.Field()
    speaker = resources.Field()
    photo = resources.Field()

    class Meta:
        model = ProposalResult
        fields = ("talk_title", "speaker","proposal__speaker__twitter_username", "photo", )

    def dehydrate_talk_title(self, book):
        return book.proposal.title

    def get_speaker(self, obj):
        return obj.proposal.speaker

    def dehydrate_speaker(self, book):
        speaker = self.get_speaker(book)
        return speaker.name

    def dehydrate_photo(self, book):
        speaker = self.get_speaker(book)
        if speaker.photo:
            return speaker.photo.url
Beispiel #14
0
class ParticipateGameListResource(resources.ModelResource):
    class Meta:
        model = ParticipateGameListAdminProxy
        fields = [
            'research', 'participant', 'game', 'finished_dt', 'response_time',
            'score', 'result'
        ]
        export_order = [
            'research', 'participant', 'game', 'finished_dt', 'response_time',
            'score', 'result'
        ]

    research = resources.Field(column_name='연구')
    participant = resources.Field(column_name='피험자(아이디)')
    game = resources.Field(column_name='game')
    finished_dt = resources.Field(attribute='finished_dt', column_name='참여일시')
    response_time = resources.Field(column_name='평균응답시간(초)')
    score = resources.Field(column_name='정답률')
    result = resources.Field(attribute='result', column_name='응답원본')

    def dehydrate_research(self, obj):
        return obj.participate.research.project_title

    def dehydrate_participant(self, obj):
        return obj.participate.participant.__str__()

    def dehydrate_game(self, obj):
        return obj.game.game_title

    def dehydrate_finished_dt(self, obj):
        local_tz = pytz.timezone('Asia/Seoul')
        return obj.finished_dt.replace(tzinfo=pytz.utc).astimezone(local_tz)

    def dehydrate_response_time(self, obj):
        result = obj.calculate_score()
        return round(result['avg_rt'], 2)

    def dehydrate_score(self, obj):
        result = obj.calculate_score()
        try:
            score = result['score']['correct'] / result['score']['count']
        except:
            score = 0
        return round(score * 100, 2)
Beispiel #15
0
class AgreementExport(resources.ModelResource):
    reference_number = resources.Field()
    signed_by_partner = resources.Field()
    signed_by_unicef = resources.Field()
    authorized_officers = resources.Field()
    start_date = resources.Field()
    end_date = resources.Field()

    class Meta:
        model = Agreement
        # TODO add missing fields:
        #   Attached Signed Agreement Link
        #   Amendments (comma separated list of amended fields)
        fields = ('reference_number', 'partner__vendor_number', 'partner__name', 'partner__short_name',
                  'start_date', 'end_date', 'signed_by_partner', 'signed_by_partner_date',
                  'signed_by_unicef', 'signed_by_unicef_date', 'authorized_officers')
        export_order = fields

    def dehydrate_reference_number(self, agreement):
        return agreement.reference_number

    def dehydrate_signed_by_partner(self, agreement):
        if agreement.partner_manager:
            return agreement.partner_manager.get_full_name()
        return None

    def dehydrate_signed_by_unicef(self, agreement):
        if agreement.signed_by:
            return agreement.signed_by.get_full_name()
        return ''

    def dehydrate_authorized_officers(self, agreement):
        names = [ao.officer.get_full_name() for ao in agreement.authorized_officers.all()]
        return ', '.join(names)

    def dehydrate_start_date(self, agreement):
        return agreement.start

    def dehydrate_end_date(self, agreement):
        return agreement.end
Beispiel #16
0
class LocalGroupsResource(resources.ModelResource):
    name = resources.Field(attribute='name')

    data = resources.Field(attribute='data', )

    full_name = resources.Field(attribute='full_name')

    alias = resources.Field(attribute='alias')

    email = resources.Field(attribute='email')

    logo = resources.Field(attribute='logo')

    class Meta:
        model = LocalGroups
        fields = ('name', 'data', 'full_name', 'alias', 'email', 'logo')
        import_id_fields = ('name', )

    def import_data(self,
                    dataset,
                    dry_run=False,
                    raise_errors=False,
                    use_transactions=None,
                    collect_failed_rows=False,
                    **kwargs):
        new_data = [{
            'name': header,
            'data': dataset[header][0]
        } for header in dataset.headers]
        new_dataset = tablib.Dataset()
        new_dataset.dict = new_data

        return super().import_data(new_dataset,
                                   dry_run=dry_run,
                                   raise_errors=raise_errors,
                                   use_transactions=use_transactions,
                                   collect_failed_rows=collect_failed_rows,
                                   **kwargs)
Beispiel #17
0
class ParticipateResource(resources.ModelResource):
    class Meta:
        model = ParticipateAdminProxy
        fields = [
            'research', 'participate_at', 'participant', 'agree_name', 'agree',
            'poll'
        ]
        export_order = [
            'research', 'participate_at', 'participant', 'agree_name', 'agree',
            'poll'
        ]

    research = resources.Field(attribute='research', column_name='연구')
    participate_at = resources.Field(attribute='participate_at',
                                     column_name='연구참여일시')
    participant = resources.Field(attribute='participant',
                                  column_name='피험자(아이디)')
    agree_name = resources.Field(attribute='agree_name', column_name='동의자명')
    agree = resources.Field(attribute='agree', column_name='동의여부')
    poll = resources.Field(attribute='poll', column_name='설문')

    def dehydrate_research(self, obj):
        return obj.research.project_title

    def dehydrate_participate_at(self, obj):
        local_tz = pytz.timezone('Asia/Seoul')
        return obj.participate_at.replace(tzinfo=pytz.utc).astimezone(local_tz)

    def dehydrate_participant(self, obj):
        return obj.participant.__str__()

    def dehydrate_agree(self, obj):
        if obj.agree:
            return '동의'
        else:
            return '미동의'
Beispiel #18
0
class LocalityResource(resources.ModelResource):
    id = resources.Field(attribute="id", widget=LocalityWidget())
    class Meta:
        model = Locality
        exclude = ("state", "updated")
Beispiel #19
0
class InterventionExport(resources.ModelResource):
    reference_number = resources.Field()
    locations = resources.Field()
    sectors = resources.Field()
    partner_manager_name = resources.Field()
    unicef_manager_name = resources.Field()
    supplies = resources.Field()
    days_from_submission_to_signed = resources.Field()
    days_from_review_to_signed = resources.Field()
    total_unicef_cash = resources.Field()
    total_budget = resources.Field()

    class Meta:
        model = PCA
        # TODO add missin fields:
        #   UNICEF Office (new property)
        #   Completed Visits (# of completed trips)
        #   FR Numbers (comma separated)
        #   Number of Active Action Points
        fields = ('title', 'reference_number', 'status', 'partner__name', 'partnership_type', 'sectors', 'start_date',
                  'end_date', 'result_structure__name', 'locations', 'initiation_date', 'submission_date',
                  'review_date', 'days_from_submission_to_signed', 'days_from_review_to_signed',
                  'signed_by_partner_date', 'partner_manager_name', 'signed_by_unicef_date', 'unicef_manager_name',
                  'total_unicef_cash', 'supplies', 'total_budget', 'planned_visits')
        export_order = fields

    def dehydrate_reference_number(self, intervention):
        return intervention.reference_number

    def dehydrate_locations(self, intervention):
        location_names = [l.location.name for l in intervention.locations.all() if l.location]
        return ', '.join(location_names)

    def dehydrate_sectors(self, intervention):
        return intervention.sector_names

    def dehydrate_partner_manager_name(self, intervention):
        if intervention.partner_manager:
            return intervention.partner_manager.get_full_name()
        return ''

    def dehydrate_unicef_manager_name(self, intervention):
        if intervention.unicef_manager:
            return intervention.unicef_manager.get_full_name()
        return ''

    def dehydrate_supplies(self, intervention):
        supply_names = [sp.item.name for sp in intervention.supply_plans.all()]
        return ', '.join(supply_names)

    def dehydrate_days_from_submission_to_signed(self, intervention):
        return intervention.days_from_submission_to_signed

    def dehydrate_days_from_review_to_signed(self, intervention):
        return intervention.days_from_review_to_signed

    def dehydrate_total_unicef_cash(self, intervention):
        return intervention.total_unicef_cash

    def dehydrate_total_budget(self, intervention):
        return intervention.total_budget
Beispiel #20
0
class ProvinceResource(resources.ModelResource):
    id = resources.Field(attribute="id", widget=ProvinceWidget())

    class Meta:
        model = Province
Beispiel #21
0
class DistrictResource(resources.ModelResource):
    id = resources.Field(attribute="id", widget=DistrictWidget())

    class Meta:
        model = District