def __init__(self, *args, **kwargs): self.request = kwargs.pop("request") super(ContactGroupPriceDisplayForm, self).__init__(*args, **kwargs) shop = get_shop(self.request) if self.instance.pk: self.fields["group"].choices = [(self.instance.group.id, self.instance.group.name)] self.fields["group"].initial = self.instance.group else: self.fields["group"].choices = [ (group.id, group.name) for group in get_groups_for_price_display_create(shop) ] self.fields["shop"] = forms.ModelChoiceField( queryset=Shop.objects.filter(pk=shop.id), initial=shop, widget=HiddenInput(), label=_("shop"), required=False, ) self.fields["price_display_mode"] = forms.ChoiceField( choices=PriceDisplayChoices.choices(), label=_("Price display mode"), initial=get_price_display_mode(self.request, self.instance), help_text=_("Set how prices are displayed to contacts in this group."), )
def test_display_queryset(regular_user): shop = get_default_shop() anonymous_group = AnonymousContact().get_default_group() PersonContact().get_default_group() CompanyContact().get_default_group() assert get_groups_for_price_display_create(shop).count() == 3 assert get_price_displays_for_shop(None).count() == 3 assert get_price_displays_for_shop(shop).count() == 3 get_person_contact(regular_user) assert get_price_displays_for_shop(shop).count() == 3 # create new group display (from admin usually) ContactGroupPriceDisplay.objects.create(group=anonymous_group, shop=shop) for_create = get_groups_for_price_display_create(shop) assert for_create.count() == 2 assert anonymous_group not in for_create items = get_price_displays_for_shop(shop) assert items.count() == 3 for item in items: if item.group == anonymous_group: assert item.shop else: assert not item.shop assert item.group.identifier in PROTECTED_CONTACT_GROUP_IDENTIFIERS new_group = ContactGroup.objects.create(identifier="test", shop=shop) items = get_price_displays_for_shop(shop) assert items.count() == 4 for item in items: if item.group in [new_group, anonymous_group]: assert item.shop else: assert not item.shop if item.group != new_group: assert item.group.identifier in PROTECTED_CONTACT_GROUP_IDENTIFIERS else: assert item.group.identifier == "test"
def get_context_data(self, **kwargs): context = super(ContactGroupPriceDisplayListView, self).get_context_data(**kwargs) if self.request.user.is_superuser: settings_button = SettingsActionButton.for_model( ContactGroupPriceDisplay, return_url="contact_group_price_display") else: settings_button = None shop = get_shop(self.request) can_create = len(get_groups_for_price_display_create(shop)) context["toolbar"] = Toolbar([ NewActionButton("shuup_admin:contact_group_price_display.new") if can_create else None, settings_button ], view=self) return context
def __init__(self, *args, **kwargs): self.request = kwargs.pop("request") super(ContactGroupPriceDisplayForm, self).__init__(*args, **kwargs) shop = get_shop(self.request) if self.instance.pk: self.fields["group"].choices = [(self.instance.group.id, self.instance.group.name)] self.fields["group"].initial = self.instance.group else: self.fields["group"].choices = [ (group.id, group.name) for group in get_groups_for_price_display_create(shop)] self.fields["shop"] = forms.ModelChoiceField( queryset=Shop.objects.filter(pk=shop.id), initial=shop, widget=HiddenInput(), label=_('shop'), required=False) self.fields['price_display_mode'] = forms.ChoiceField( choices=PriceDisplayChoices.choices(), label=_("Price display mode"), initial=get_price_display_mode(self.request, self.instance), help_text=_("Set how prices are displayed to contacts in this group."))