Skip to content

Commit

Permalink
Merge pull request #37 from OneSila/development
Browse files Browse the repository at this point in the history
#124 complete onboarding
  • Loading branch information
BranDavidSebastian committed Jun 11, 2024
2 parents 3d7d133 + 195508c commit 9d8394e
Show file tree
Hide file tree
Showing 8 changed files with 40 additions and 20 deletions.
10 changes: 5 additions & 5 deletions OneSila/contacts/schema/types/filters.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

from core.schema.core.types.types import auto
from core.schema.core.types.filters import filter, SearchFilterMixin
from core.schema.core.types.filters import filter, SearchFilterMixin, ExcluideDemoDataFilterMixin
from contacts.models import Company, Address, Person, Supplier, \
InvoiceAddress, ShippingAddress, Customer, InternalShippingAddress

Expand All @@ -20,18 +20,18 @@ class CompanyFilter(SearchFilterMixin):


@filter(Supplier)
class SupplierFilter(SearchFilterMixin):
class SupplierFilter(SearchFilterMixin, ExcluideDemoDataFilterMixin):
search: str | None
id: auto
name: auto

exclude_demo_data: Optional[bool]

@filter(Customer)
class CustomerFilter(SearchFilterMixin):
class CustomerFilter(SearchFilterMixin, ExcluideDemoDataFilterMixin):
search: str | None
id: auto
name: auto

exclude_demo_data: Optional[bool]

@filter(Person)
class PersonFilter(SearchFilterMixin):
Expand Down
18 changes: 18 additions & 0 deletions OneSila/core/schema/core/types/filters.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from typing import Optional

from strawberry_django.filters import filter as strawberry_filter
from strawberry import UNSET
from strawberry import LazyType as lazy
Expand All @@ -12,5 +14,21 @@ def filter_search(self, queryset) -> str | None:
return queryset


class ExcluideDemoDataFilterMixin:
exclude_demo_data: Optional[bool]
def filter_exclude_demo_data(self, queryset):
from django.contrib.contenttypes.models import ContentType
from core.models import DemoDataRelation

if self.exclude_demo_data:
supplier_content_type = ContentType.objects.get_for_model(queryset.model)
queryset = queryset.exclude(
id__in=DemoDataRelation.objects.filter(
content_type=supplier_content_type
).values('object_id')
)

return queryset

def filter(*args, lookups=True, **kwargs):
return strawberry_filter(*args, **kwargs, lookups=lookups)
2 changes: 1 addition & 1 deletion OneSila/currencies/demo_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def currencies_create_currency_structure(multi_tenant_company):
iso_code="GBP",
name="British Pound",
symbol="£",
is_default_currency=True,
is_default_currency=not Currency.objects.filter(multi_tenant_company=multi_tenant_company, is_default_currency=True).exists(),
comment="Base Currency")

registry.create_demo_data_relation(base_currency)
Expand Down
7 changes: 4 additions & 3 deletions OneSila/inventory/schema/types/filters.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Self
from typing import Self, Optional

from core.schema.core.types.types import auto
from core.schema.core.types.filters import filter, SearchFilterMixin
from core.schema.core.types.filters import filter, SearchFilterMixin, ExcluideDemoDataFilterMixin

from inventory.models import Inventory, InventoryLocation
from products.schema.types.filters import SupplierProductFilter
Expand All @@ -17,8 +17,9 @@ class InventoryLocationFilter(SearchFilterMixin):


@filter(Inventory)
class InventoryFilter(SearchFilterMixin):
class InventoryFilter(SearchFilterMixin, ExcluideDemoDataFilterMixin):
search: str | None
exclude_demo_data: Optional[bool]
id: auto
stocklocation: InventoryLocationFilter | None
product: SupplierProductFilter | None
5 changes: 3 additions & 2 deletions OneSila/orders/schema/types/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,16 @@

from contacts.schema.types.filters import CustomerFilter
from core.schema.core.types.types import auto
from core.schema.core.types.filters import filter, SearchFilterMixin, lazy
from core.schema.core.types.filters import filter, SearchFilterMixin, lazy, ExcluideDemoDataFilterMixin

from orders.models import Order, OrderItem, OrderNote
from products.schema.types.filters import ProductFilter


@filter(Order)
class OrderFilter(SearchFilterMixin):
class OrderFilter(SearchFilterMixin, ExcluideDemoDataFilterMixin):
search: str | None
exclude_demo_data: Optional[bool]
id: auto
reference: auto
customer: CustomerFilter | None
Expand Down
6 changes: 3 additions & 3 deletions OneSila/products/schema/types/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from contacts.schema.types.filters import SupplierFilter
from core.schema.core.types.types import auto
from core.schema.core.types.filters import filter, SearchFilterMixin
from core.schema.core.types.filters import filter, SearchFilterMixin, ExcluideDemoDataFilterMixin

from products.models import Product, BundleProduct, UmbrellaProduct, \
SimpleProduct, ProductTranslation, UmbrellaVariation, BundleVariation, BillOfMaterial, SupplierProduct, DropshipProduct, ManufacturableProduct, \
Expand All @@ -12,14 +12,14 @@


@filter(Product)
class ProductFilter(SearchFilterMixin):
class ProductFilter(SearchFilterMixin, ExcluideDemoDataFilterMixin):
search: str | None
id: auto
sku: auto
type: auto
for_sale: auto
vat_rate: Optional[VatRateFilter]

exclude_demo_data: Optional[bool]

@filter(BundleProduct)
class BundleProductFilter(SearchFilterMixin):
Expand Down
7 changes: 3 additions & 4 deletions OneSila/purchasing/schema/types/filters.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import Optional

from core.schema.core.types.types import auto
from core.schema.core.types.filters import filter, SearchFilterMixin, lazy
from core.schema.core.types.filters import filter, SearchFilterMixin, lazy, ExcluideDemoDataFilterMixin
from products.schema.types.filters import SupplierProductFilter

from purchasing.models import PurchaseOrder, PurchaseOrderItem
Expand All @@ -10,9 +10,8 @@
ShippingAddressFilter



@filter(PurchaseOrder)
class PurchaseOrderFilter(SearchFilterMixin):
class PurchaseOrderFilter(SearchFilterMixin, ExcluideDemoDataFilterMixin):
search: str | None
id: auto
status: auto
Expand All @@ -22,7 +21,7 @@ class PurchaseOrderFilter(SearchFilterMixin):
invoice_address: InvoiceAddressFilter | None
shipping_address: ShippingAddressFilter | None
purchaseorderitem: Optional[lazy['PurchaseOrderItemFilter', "purchasing.schema.types.filters"]]

exclude_demo_data: Optional[bool]


@filter(PurchaseOrderItem)
Expand Down
5 changes: 3 additions & 2 deletions OneSila/taxes/demo_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@

@registry.register_private_app
def populate_vat_rates(multi_tenant_company):
rate = baker.make(VatRate, multi_tenant_company=multi_tenant_company, name='Standard Rate', rate=20)
registry.create_demo_data_relation(rate)
if not VatRate.objects.filter(multitenant_company=multi_tenant_company).exists():
rate = baker.make(VatRate, multi_tenant_company=multi_tenant_company, name='Standard Rate', rate=20)
registry.create_demo_data_relation(rate)

0 comments on commit 9d8394e

Please sign in to comment.