Exemplo n.º 1
0
class QuotationMakePurchaseOrderResource(TimelineEntryBaseResource):
    quotation_reference = base_fields.CharField(
        attribute='quotation__reference',
        help_text=HELP_TEXT['quotation_make_purchase_order']
        ['quotation_reference'],
    )
    purchase_order_reference = base_fields.CharField(
        attribute='purchase_order__reference',
        help_text=HELP_TEXT['quotation_make_purchase_order']
        ['purchase_order_reference'],
    )
    customer_display = base_fields.CharField(
        attribute='purchase_order__current_revision__get_customer_display',
        help_text=HELP_TEXT['quotation_make_purchase_order']
        ['customer_display'],
        null=True)

    quotation = fields.ReferenceField(
        to='invoicing.api.resources.DownPaymentInvoiceResource',
        attribute='quotation',
        help_text=HELP_TEXT['quotation_make_purchase_order']['quotation'])
    purchase_order = fields.ReferenceField(
        to='invoicing.api.resources.InvoiceResource',
        attribute='purchase_order',
        help_text=HELP_TEXT['quotation_make_purchase_order']['purchase_order'])

    class Meta(TimelineEntryBaseResource.Meta):
        resource_name = 'quotation_make_purchase_order'
        object_class = invoicing_entries.QuotationMakePurchaseOrder
Exemplo n.º 2
0
class QuotationMakePurchaseOrderResource(NotificationBaseResource):
    quotation = fields.ReferenceField(
        to='invoicing.api.resources.DownPaymentInvoiceResource',
        attribute='quotation',
        help_text=HELP_TEXT['quotation_make_purchase_order']['quotation'])
    purchase_order = fields.ReferenceField(
        to='invoicing.api.resources.InvoiceResource',
        attribute='purchase_order',
        help_text=HELP_TEXT['quotation_make_purchase_order']['purchase_order'])

    class Meta(NotificationBaseResource.Meta):
        resource_name = 'quotation_make_purchase_order'
        object_class = invoicing_notifications.QuotationMakePurchaseOrder
Exemplo n.º 3
0
class DownPaymentInvoiceCancelledResource(TimelineEntryBaseResource):
    down_payment_invoice = fields.ReferenceField(
        to='invoicing.api.resources.DownPaymentInvoiceResource',
        attribute='down_payment_invoice',
        help_text=HELP_TEXT['invoice_cancelled']['down_payment_invoice'])
    credit_note = fields.ReferenceField(
        to='invoicing.api.resources.CreditNoteResource',
        attribute='credit_note',
        help_text=HELP_TEXT['invoice_cancelled']['credit_note'])

    class Meta(TimelineEntryBaseResource.Meta):
        resource_name = 'down_payment_invoice_cancelled'
        object_class = invoicing_entries.DownPaymentInvoiceCancelled
Exemplo n.º 4
0
class QuotationMakeDownPaymentInvoiceResource(NotificationBaseResource):
    quotation = fields.ReferenceField(
        to='invoicing.api.resources.DownPaymentInvoiceResource',
        attribute='quotation',
        help_text=HELP_TEXT['quotation_make_invoice']['quotation'])
    down_payment_invoice = fields.ReferenceField(
        to='invoicing.api.resources.DownPaymentInvoiceResource',
        attribute='down_payment_invoice',
        help_text=HELP_TEXT['quotation_make_invoice']['down_payment_invoice'])

    class Meta(NotificationBaseResource.Meta):
        resource_name = 'quotation_make_down_payment_invoice'
        object_class = invoicing_notifications.QuotationMakeDownPaymentInvoice
Exemplo n.º 5
0
class PurchaseOrderMakeInvoiceResource(NotificationBaseResource):
    purchase_order = fields.ReferenceField(
        to='invoicing.api.resources.DownPaymentInvoiceResource',
        attribute='purchase_order',
        help_text=HELP_TEXT['purchase_order_make_invoice']['purchase_order'])
    invoice = fields.ReferenceField(
        to='invoicing.api.resources.InvoiceResource',
        attribute='invoice',
        help_text=HELP_TEXT['purchase_order_make_invoice']['invoice'])

    class Meta(NotificationBaseResource.Meta):
        resource_name = 'purchase_order_make_invoice'
        object_class = invoicing_notifications.PurchaseOrderMakeInvoice
Exemplo n.º 6
0
class InvoiceCancelledResource(NotificationBaseResource):
    invoice = fields.ReferenceField(
        to='invoicing.api.resources.InvoiceResource',
        attribute='invoice',
        help_text=HELP_TEXT['invoice_cancelled']['invoice']
    )
    credit_note = fields.ReferenceField(
        to='invoicing.api.resources.CreditNoteResource',
        attribute='credit_note',
        help_text=HELP_TEXT['invoice_cancelled']['credit_note']
    )

    class Meta(NotificationBaseResource.Meta):
        resource_name = 'invoice_cancelled'
        object_class = invoicing_notifications.InvoiceCancelled
Exemplo n.º 7
0
class LotteryResource(BaseResource):
    users = fields.ReferencedListField(of='apis.base.resources.UserResource',
                                       attribute='users',
                                       full=True,
                                       null=True)
    paper = fields.ReferenceField(to='apis.base.resources.PaperResource',
                                  attribute='paper',
                                  full=True,
                                  null=True)

    class Meta:
        queryset = Lottery.objects(is_online=True)
        allowed_methods = ('get', )
        authentication = UserAuthentication()
        authorization = Authorization()
        filtering = {'period': ALL}

    def prepend_urls(self):
        return [
            url(r"^(?P<resource_name>%s)/yesterday%s$" % (self._meta.resource_name, trailing_slash()), \
                self.wrap_view('yesterday'), name="api_yesterday"),
        ]

    def yesterday(self, request, **kwargs):
        today = datetime.utcnow().replace(hour=0,
                                          minute=0,
                                          second=0,
                                          microsecond=0)
        yesterday = today - timedelta(days=1)
        params = dict(request.GET.dict().items() + {
            'period__gte': yesterday,
            'period__lt': today
        }.items())
        return redirect(u'{}/api/v1/lottery/?{}'.format(
            SUB_DOMAIN or '', urlencode(params)))
Exemplo n.º 8
0
class TimelineEntryBaseResource(TenantResource):
    module = base_fields.CharField(
        attribute='module', help_text=HELP_TEXT['timeline_entry']['module'])
    datetime = base_fields.DateTimeField(
        attribute='datetime',
        help_text=HELP_TEXT['timeline_entry']['datetime'])
    issuer_name = base_fields.CharField(
        attribute='issuer__get_full_name',
        help_text=HELP_TEXT['entity_saved']['contact'],
        null=True,
    )

    issuer = fields.ReferenceField(
        to='core.api.resources.VosaeUserResource',
        attribute='issuer',
        blank=True,
        null=True,
        help_text=HELP_TEXT['timeline_entry']['issuer'])

    class Meta(TenantResource.Meta):
        object_class = TimelineEntry
        excludes = ('tenant', 'access_permission', 'see_permission')
        list_allowed_methods = ('get', )
        detail_allowed_methods = ('get', )

    def get_object_list(self, request):
        object_list = super(TimelineEntryBaseResource,
                            self).get_object_list(request)
        if request and getattr(request, 'vosae_user', None):
            return object_list.filter(
                access_permission__in=request.vosae_user.permissions.
                access_perms,
                see_permission__in=request.vosae_user.permissions.see_perms)
        return object_list
Exemplo n.º 9
0
class FavoriteCategoryResource(BaseResource):
    user = fields.ReferenceField(to='apis.base.resources.UserResource',
                                 attribute='user',
                                 full=False,
                                 null=True)

    class Meta:
        queryset = FavoriteCategory.objects()
        allowed_methods = ('get', 'post')
        detail_allowed_methods = ('get', )
        authentication = UserAuthentication()
        excludes = ('resource_uri', )
        filtering = {'user': ALL}

    def post_list(self, request, **kwargs):
        user = request.user
        content_type = request.META.get('CONTENT_TYPE', 'application/json')
        data = self.deserialize(request, request.body, format=content_type)
        categories = data.get('categories', None)
        success = False

        if categories or categories == []:
            FavoriteCategory.objects(user=user).update_one(
                set__categories=categories, upsert=True)
            success = True

        return self.create_response(request, {'success': success})
Exemplo n.º 10
0
class CustomerResource(resources.MongoEngineResource):
    person = fields.ReferenceField(to='test_project.test_app.api.resources.PersonResource', attribute='person', full=True)

    class Meta:
        queryset = documents.Customer.objects.all()
        allowed_methods = ('get', 'post', 'put', 'patch', 'delete')
        authorization = tastypie_authorization.Authorization()
Exemplo n.º 11
0
class InvoiceNoteResource(VosaeResource):
    datetime = base_fields.DateTimeField(
        attribute='datetime',
        readonly=True,
        help_text=HELP_TEXT['invoice_note']['datetime']
    )
    note = base_fields.CharField(
        attribute='note',
        help_text=HELP_TEXT['invoice_note']['note']
    )

    issuer = fields.ReferenceField(
        to='core.api.resources.VosaeUserResource',
        attribute='issuer',
        readonly=True,
        help_text=HELP_TEXT['invoice_note']['issuer']
    )

    class Meta(VosaeResource.Meta):
        object_class = InvoiceNote

    def full_hydrate(self, bundle):
        """Set issuer on POST, extracted from request"""
        bundle = super(InvoiceNoteResource, self).full_hydrate(bundle)
        if bundle.request.method.lower() == 'post':
            bundle.obj.issuer = bundle.request.vosae_user
        return bundle
Exemplo n.º 12
0
class CommentResource(resources.MongoEngineResource):
    topic = fields.ReferenceField(to='forumAPI.api.TopicResource',
                                  attribute='topic',
                                  full=False)

    #    creation = fields.()

    #     def dehydrate_topic(self, bundle):
    #             bundle.data['topic'] = documents.Topic.objects(__raw__ = {_id:bundle.data['topic']}).first()
    #             return bundle.data['topic']
    class Meta:
        queryset = documents.Comment.objects.all()
        allowed_methods = ('get', 'post', 'put', 'patch', 'delete')
        authorization = authorization.Authorization(
        )  #TODO: own-submission authorization, allow admin to put/patch
        exclude = ['topic']
        filtering = {
            "topic": [
                "exact",
            ],
            "author": [
                "exact",
            ],
        }

    def dehydrate_created(self, bundle):
        import calendar
        d2 = bundle.obj.id.generation_time
        return d2.strftime("%c")
Exemplo n.º 13
0
class CreditNoteResource(InvoiceBaseResource):
    state = base_fields.CharField(attribute='state',
                                  readonly=True,
                                  help_text=HELP_TEXT['creditnote']['state'])

    related_to = fields.ReferenceField(
        to='invoicing.api.resources.InvoiceResource',
        attribute='related_to',
        readonly=True,
        null=True,
        help_text=HELP_TEXT['creditnote']['related_to'])

    class Meta(InvoiceBaseResource.Meta):
        resource_name = 'credit_note'
        queryset = CreditNote.objects.all()
        list_allowed_methods = ('get', )
        detail_allowed_methods = ('get', )
        detail_specific_methods = ('cancel', )

    def dehydrate_related_to(self, bundle):
        from invoicing.api.resources import DownPaymentInvoiceResource, InvoiceResource
        try:
            if bundle.obj.related_to.is_down_payment_invoice():
                resource = DownPaymentInvoiceResource()
            elif bundle.obj.related_to.is_invoice():
                resource = InvoiceResource()
            resource_bundle = resource.build_bundle(obj=bundle.obj.related_to,
                                                    request=bundle.request)
            return resource.get_resource_uri(resource_bundle)
        except:
            return
Exemplo n.º 14
0
class InvoicingSettingsResource(VosaeResource):
    fy_start_month = base_fields.IntegerField(
        attribute='fy_start_month',
        null=True,
        blank=True,
        help_text=HELP_TEXT['invoicing_settings']['fy_start_month'])
    inv_taxes_application = base_fields.CharField(
        attribute='inv_taxes_application',
        help_text=HELP_TEXT['invoicing_settings']['inv_taxes_application'])
    quotation_validity = base_fields.CharField(
        attribute='quotation_validity',
        help_text=HELP_TEXT['invoicing_settings']['quotation_validity'])
    payment_conditions = base_fields.CharField(
        attribute='payment_conditions',
        help_text=HELP_TEXT['invoicing_settings']['payment_conditions'])
    custom_payment_conditions = base_fields.CharField(
        attribute='custom_payment_conditions',
        null=True,
        blank=True,
        help_text=HELP_TEXT['invoicing_settings']['custom_payment_conditions'])
    late_fee_rate = base_fields.DecimalField(
        attribute='late_fee_rate',
        null=True,
        blank=True,
        help_text=HELP_TEXT['invoicing_settings']['late_fee_rate'])
    accepted_payment_types = base_fields.ListField(
        attribute='accepted_payment_types',
        help_text=HELP_TEXT['invoicing_settings']['accepted_payment_types'])
    down_payment_percent = base_fields.DecimalField(
        attribute='down_payment_percent',
        help_text=HELP_TEXT['invoicing_settings']['down_payment_percent'])
    automatic_reminders = base_fields.BooleanField(
        attribute='automatic_reminders',
        help_text=HELP_TEXT['invoicing_settings']['automatic_reminders'])
    automatic_reminders_text = base_fields.CharField(
        attribute='automatic_reminders_text',
        null=True,
        blank=True,
        help_text=HELP_TEXT['invoicing_settings']['automatic_reminders_text'])
    automatic_reminders_send_copy = base_fields.BooleanField(
        attribute='automatic_reminders_send_copy',
        help_text=HELP_TEXT['invoicing_settings']
        ['automatic_reminders_send_copy'])

    supported_currencies = SupportedCurrenciesListField(
        of='invoicing.api.resources.CurrencyResource',
        attribute='supported_currencies',
        help_text=HELP_TEXT['invoicing_settings']['supported_currencies'])
    default_currency = fields.ReferenceField(
        to='invoicing.api.resources.CurrencyResource',
        attribute='default_currency',
        help_text=HELP_TEXT['invoicing_settings']['default_currency'])
    numbering = fields.EmbeddedDocumentField(
        embedded=
        'vosae_settings.api.resources.invoicing_settings.InvoicingNumberingSettingsResource',
        attribute='numbering',
        help_text=HELP_TEXT['invoicing_settings']['numbering'])

    class Meta:
        object_class = InvoicingSettings
Exemplo n.º 15
0
class NotificationBaseResource(TenantResource):
    sent_at = base_fields.DateTimeField(
        attribute='sent_at',
        readonly=True,
        help_text=HELP_TEXT['notification_base']['sent_at']
    )
    read = base_fields.BooleanField(
        attribute='read',
        readonly=True,
        help_text=HELP_TEXT['notification_base']['read']
    )

    issuer = fields.ReferenceField(
        to='core.api.resources.VosaeUserResource',
        attribute='issuer',
        readonly=True,
        null=True,
        help_text=HELP_TEXT['notification_base']['issuer']
    )

    class Meta(TenantResource.Meta):
        object_class = Notification
        excludes = ('tenant', 'recipient')
        list_allowed_methods = ('get',)
        detail_allowed_methods = ('get',)

    def get_object_list(self, request):
        """Filters the notifications list on the recipient (extracted from request)"""
        return super(NotificationBaseResource, self).get_object_list(request).filter(recipient=request.vosae_user)
class EmbeddedExporterListResource(resources.MongoEngineResource):
    exporter = fields.ReferenceField(
        to='test_project.test_app.api.resources.ExporterResource',
        attribute='exporter',
        full=True)

    class Meta(object):
        object_class = documents.PipeExporterEmbedded
Exemplo n.º 17
0
class ShareResource(BaseResource):
    user = fields.ReferenceField(to='apis.base.resources.UserResource',
                                 attribute='user',
                                 full=False,
                                 null=True)
    product = fields.ReferenceField(to='apis.base.resources.ProductResource',
                                    attribute='product',
                                    full=False,
                                    null=True)

    class Meta:
        queryset = Share.objects()
        allowed_methods = ('post', )
        # authentication = UserAuthentication()
        excludes = ('resource_uri', )
        filtering = {'user': ALL, 'product': ALL}

    def post_list(self, request, **kwargs):
        # if not request.user.is_authenticated():
        #     return self.create_response(request, {}, HttpUnauthorized)

        data = self.deserialize(request,
                                request.body,
                                format=request.META.get(
                                    'CONTENT_TYPE', 'application/json'))
        product_id = data.get('product_id')
        num = data.get('num', 0)

        if not product_id:
            return self.create_response(
                request, {'product_id': 'post param is required'},
                HttpBadRequest)

        product = Product.objects(id=product_id).first()
        if not product:
            return self.create_response(
                request, {'product_id': 'post param is not correct'},
                HttpBadRequest)

        # Share.objects.get_or_create(user=request.user, product=product)
        # shared_count = Share.objects(product=product).count()
        # product.shared = shared_count
        shared_count = product.shared + num
        Product.objects(id=product_id).update_one(set__shared=shared_count)

        return self.create_response(request, {'shared': shared_count})
Exemplo n.º 18
0
class ContactResource(EntityResource, VosaeIMEXMixinResource):
    name = base_fields.CharField(attribute='name',
                                 help_text=HELP_TEXT['contact']['name'])
    firstname = base_fields.CharField(
        attribute='firstname', help_text=HELP_TEXT['contact']['firstname'])
    additional_names = base_fields.CharField(
        attribute='additional_names',
        null=True,
        blank=True,
        help_text=HELP_TEXT['contact']['additional_names'])
    civility = base_fields.CharField(
        attribute='civility',
        null=True,
        blank=True,
        help_text=HELP_TEXT['contact']['civility'])
    birthday = base_fields.DateField(
        attribute='birthday',
        null=True,
        blank=True,
        help_text=HELP_TEXT['contact']['birthday'])
    role = base_fields.CharField(attribute='role',
                                 null=True,
                                 blank=True,
                                 help_text=HELP_TEXT['contact']['role'])

    organization = fields.ReferenceField(
        to='contacts.api.resources.OrganizationResource',
        attribute='organization',
        null=True,
        blank=True,
        full=False,
        help_text=HELP_TEXT['contact']['organization'])

    class Meta(EntityResource.Meta):
        queryset = Contact.objects.all()

    def prepend_urls(self):
        """Add urls for resources import/export."""
        urls = super(ContactResource, self).prepend_urls()
        urls.extend(VosaeIMEXMixinResource.prepend_urls(self))
        return urls

    def do_import(self, request, serializer, import_buffer):
        """Contacts import"""
        try:
            return serializer.deserialize(import_buffer,
                                          self._meta.object_class,
                                          request.tenant)
        except:
            pass

    def do_export(self, request, serializer, export_objects):
        """Contacts export"""
        if len(export_objects) == 1:
            filename = export_objects[0].get_full_name()
        else:
            filename = _('Contacts')
        return serializer.serialize(export_objects), filename
Exemplo n.º 19
0
class WidgetResource(mongoresources.MongoEngineResource):
    plugin = fields.ReferenceField(
        to='lisa.server.web.manageplugins.api.PluginResource',
        attribute='plugin')

    class Meta:
        queryset = Widget.objects.all()
        allowed_methods = ('get', 'post')
        authorization = authorization.Authorization()
Exemplo n.º 20
0
class QuotationChangedStateResource(NotificationBaseResource):
    quotation = fields.ReferenceField(
        to='invoicing.api.resources.QuotationResource',
        attribute='quotation',
        help_text=HELP_TEXT['invoicebase_changed_state']['quotation'])

    class Meta(NotificationBaseResource.Meta):
        resource_name = 'quotation_changed_state'
        object_class = invoicing_notifications.QuotationChangedState
Exemplo n.º 21
0
class PurchaseOrderChangedStateResource(NotificationBaseResource):
    purchase_order = fields.ReferenceField(
        to='invoicing.api.resources.PurchaseOrderResource',
        attribute='purchase_order',
        help_text=HELP_TEXT['invoicebase_changed_state']['purchase_order'])

    class Meta(NotificationBaseResource.Meta):
        resource_name = 'purchase_order_changed_state'
        object_class = invoicing_notifications.PurchaseOrderChangedState
Exemplo n.º 22
0
class CreditNoteChangedStateResource(NotificationBaseResource):
    credit_note = fields.ReferenceField(
        to='invoicing.api.resources.CreditNoteResource',
        attribute='credit_note',
        help_text=HELP_TEXT['invoicebase_changed_state']['credit_note'])

    class Meta(NotificationBaseResource.Meta):
        resource_name = 'credit_note_changed_state'
        object_class = invoicing_notifications.CreditNoteChangedState
Exemplo n.º 23
0
class DownPaymentInvoicePaymentResource(PaymentBaseResource):
    related_to = fields.ReferenceField(
        to='invoicing.api.resources.DownPaymentInvoiceResource',
        attribute='related_to',
        help_text=HELP_TEXT['payment']['down_payment_invoice']
    )

    class Meta(PaymentBaseResource.Meta):
        queryset = DownPaymentInvoicePayment.objects.all()
Exemplo n.º 24
0
class InvoiceBaseGroupResource(TenantResource):
    quotation = fields.ReferenceField(
        to='invoicing.api.resources.QuotationResource',
        attribute='quotation',
        readonly=True,
        null=True,
        help_text=HELP_TEXT['invoice_base_group']['quotation'])
    purchase_order = fields.ReferenceField(
        to='invoicing.api.resources.PurchaseOrderResource',
        attribute='purchase_order',
        readonly=True,
        null=True,
        help_text=HELP_TEXT['invoice_base_group']['purchase_order'])
    down_payment_invoices = fields.ReferencedListField(
        of='invoicing.api.resources.DownPaymentInvoiceResource',
        attribute='down_payment_invoices',
        readonly=True,
        null=True,
        help_text=HELP_TEXT['invoice_base_group']['down_payment_invoices'])
    invoice = fields.ReferenceField(
        to='invoicing.api.resources.InvoiceResource',
        attribute='invoice',
        readonly=True,
        null=True,
        help_text=HELP_TEXT['invoice_base_group']['invoice'])
    invoices_cancelled = fields.ReferencedListField(
        of='invoicing.api.resources.InvoiceResource',
        attribute='invoices_cancelled',
        readonly=True,
        null=True,
        help_text=HELP_TEXT['invoice_base_group']['invoices_cancelled'])
    credit_notes = fields.ReferencedListField(
        of='invoicing.api.resources.CreditNoteResource',
        attribute='credit_notes',
        readonly=True,
        null=True,
        help_text=HELP_TEXT['invoice_base_group']['credit_notes'])

    class Meta(TenantResource.Meta):
        resource_name = 'invoice_base_group'
        object_class = InvoiceBaseGroup
        list_allowed_methods = ('get', )
        detail_allowed_methods = ('get', )
        excludes = ('tenant', )
Exemplo n.º 25
0
class IntentResource(resources.MongoEngineResource):
    plugin = fields.ReferenceField(
        to='lisa.server.web.manageplugins.api.PluginResource',
        attribute='plugin',
        null=True)

    class Meta:
        object_class = Intent
        authorization = authorization.Authorization()
        authentication = MultiAuthentication(CustomApiKeyAuthentication())
Exemplo n.º 26
0
class DownPaymentInvoiceChangedStateResource(NotificationBaseResource):
    down_payment_invoice = fields.ReferenceField(
        to='invoicing.api.resources.DownPaymentInvoiceResource',
        attribute='down_payment_invoice',
        help_text=HELP_TEXT['invoicebase_changed_state']
        ['down_payment_invoice'])

    class Meta(NotificationBaseResource.Meta):
        resource_name = 'down_payment_invoice_changed_state'
        object_class = invoicing_notifications.DownPaymentInvoiceChangedState
Exemplo n.º 27
0
class WidgetByUserResource(mongoresources.MongoEngineResource):
    user = fields.ReferenceField(to='lisa.server.web.weblisa.api.UserResource',
                                 attribute='user')
    widget = fields.ReferenceField(
        to='lisa.server.web.interface.api.WidgetResource',
        attribute='widget',
        full=True)

    class Meta:
        queryset = WidgetUser.objects.all()
        allowed_methods = ('get', 'post', 'put', 'patch')
        authorization = authorization.Authorization()

    def obj_create(self, bundle, **kwargs):
        return super(WidgetByUserResource,
                     self).obj_create(bundle, user=bundle.request.user)

    def apply_authorization_limits(self, request, object_list):
        return object_list.filter(user=request.user)
Exemplo n.º 28
0
class ExportResource(TenantResource):
    created_at = base_fields.DateTimeField(
        attribute='created_at',
        readonly=True,
        help_text=HELP_TEXT['export']['created_at'])
    language = base_fields.CharField(attribute='language',
                                     help_text=HELP_TEXT['export']['language'])
    documents_types = base_fields.ListField(
        attribute='documents_types',
        help_text=HELP_TEXT['export']['documents_types'])
    from_date = base_fields.DateField(
        attribute='from_date',
        null=True,
        blank=True,
        help_text=HELP_TEXT['export']['from_date'])
    to_date = base_fields.DateField(attribute='to_date',
                                    null=True,
                                    blank=True,
                                    help_text=HELP_TEXT['export']['to_date'])

    issuer = fields.ReferenceField(to='core.api.resources.VosaeUserResource',
                                   attribute='issuer',
                                   readonly=True,
                                   help_text=HELP_TEXT['export']['issuer'])
    zipfile = fields.ReferenceField(to='core.api.resources.VosaeFileResource',
                                    attribute='zipfile',
                                    readonly=True,
                                    null=True,
                                    help_text=HELP_TEXT['export']['zipfile'])

    class Meta(TenantResource.Meta):
        resource_name = 'export'
        queryset = Export.objects.all()
        list_allowed_methods = ('get', 'post', 'delete')
        detail_allowed_methods = ('get', 'delete')
        excludes = ('tenant', )

    def hydrate(self, bundle):
        """Set issuer on POST, extracted from request"""
        bundle = super(ExportResource, self).hydrate(bundle)
        bundle.obj.issuer = bundle.request.vosae_user
        return bundle
Exemplo n.º 29
0
class PaymentBaseResource(TenantResource):
    issued_at = base_fields.DateTimeField(
        attribute='issued_at',
        readonly=True,
        help_text=HELP_TEXT['payment']['issued_at']
    )
    date = base_fields.DateField(
        attribute='date',
        help_text=HELP_TEXT['payment']['date']
    )
    amount = base_fields.DecimalField(
        attribute='amount',
        help_text=HELP_TEXT['payment']['amount']
    )
    type = base_fields.CharField(
        attribute='type',
        blank=True,
        help_text=HELP_TEXT['payment']['type']
    )
    note = base_fields.CharField(
        attribute='note',
        null=True,
        blank=True,
        help_text=HELP_TEXT['payment']['note']
    )

    issuer = fields.ReferenceField(
        to='core.api.resources.VosaeUserResource',
        attribute='issuer',
        readonly=True,
        help_text=HELP_TEXT['payment']['issuer']
    )
    currency = fields.ReferenceField(
        to='invoicing.api.resources.CurrencyResource',
        attribute='currency',
        help_text=HELP_TEXT['payment']['currency']
    )

    class Meta(TenantResource.Meta):
        excludes = ('tenant',)
        list_allowed_methods = ('post')
        detail_allowed_methods = ('get', 'delete',)
Exemplo n.º 30
0
class ImageAttachmentResource(AuthoredResource):
    image_file = fields.ReferenceField(
        to='piplmesh.api.resources.UploadedFileResource',
        attribute='image_file',
        null=False,
        full=True)
    image_description = tastypie_fields.CharField(
        attribute='image_description', default='', null=False, blank=True)

    class Meta:
        object_class = api_models.ImageAttachment