diff --git a/src/pretix/base/models.py b/src/pretix/base/models.py index fa4d1eb21..bdf251edb 100644 --- a/src/pretix/base/models.py +++ b/src/pretix/base/models.py @@ -352,12 +352,12 @@ class Event(Versionable): presale_end = models.DateTimeField( null=True, blank=True, verbose_name=_("End of presale"), - help_text=_("No items will be sold after this date."), + help_text=_("No products will be sold after this date."), ) presale_start = models.DateTimeField( null=True, blank=True, verbose_name=_("Start of presale"), - help_text=_("No items will be sold before this date."), + help_text=_("No products will be sold before this date."), ) payment_term_days = models.PositiveIntegerField( default=14, @@ -433,7 +433,7 @@ class EventPermission(Versionable): ) can_change_items = models.BooleanField( default=True, - verbose_name=_("Can change item settings") + verbose_name=_("Can change product settings") ) class Meta: @@ -466,8 +466,8 @@ class ItemCategory(Versionable): ) class Meta: - verbose_name = _("Item category") - verbose_name_plural = _("Item categories") + verbose_name = _("Product category") + verbose_name_plural = _("Product categories") ordering = ('position', 'id') def __str__(self): @@ -507,8 +507,8 @@ class Property(Versionable): ) class Meta: - verbose_name = _("Item property") - verbose_name_plural = _("Item properties") + verbose_name = _("Product property") + verbose_name_plural = _("Product properties") def __str__(self): return self.name @@ -623,7 +623,9 @@ class Question(Versionable): class Item(Versionable): """ An item is a thing which can be sold. It belongs to an - event and may or may not belong to a category. + event and may or may not belong to a category. Items are often + also called 'products' but are named 'items' internally due to + historic reasons. It has a default price which might by overriden by restrictions. @@ -656,7 +658,7 @@ class Item(Versionable): deleted = models.BooleanField(default=False) short_description = models.TextField( verbose_name=_("Short description"), - help_text=_("This is shown below the item name in lists."), + help_text=_("This is shown below the product name in lists."), null=True, blank=True, ) long_description = models.TextField( @@ -697,15 +699,15 @@ class Item(Versionable): admission = models.BooleanField( verbose_name=_("Is an admission ticket"), help_text=_( - 'Whether or not this item allows a person to enter ' + 'Whether or not buying this product allows a person to enter ' 'your event' ), default=False ) class Meta: - verbose_name = _("Item") - verbose_name_plural = _("Items") + verbose_name = _("Product") + verbose_name_plural = _("Products") def __str__(self): return self.name @@ -909,8 +911,8 @@ class ItemVariation(Versionable): ) class Meta: - verbose_name = _("Item variation") - verbose_name_plural = _("Item variations") + verbose_name = _("Product variation") + verbose_name_plural = _("Product variations") def __str__(self): return str(self.to_variation_dict()) @@ -1412,7 +1414,7 @@ class OrderPosition(ObjectWithAnswers, Versionable): max_length=255, verbose_name=_("Attendee name"), blank=True, null=True, - help_text=_("Empty, if this item is not an admission ticket") + help_text=_("Empty, if this product is not an admission ticket") ) class Meta: @@ -1478,7 +1480,7 @@ class CartPosition(ObjectWithAnswers, Versionable): max_length=255, verbose_name=_("Attendee name"), blank=True, null=True, - help_text=_("Empty, if this item is not an admission ticket") + help_text=_("Empty, if this product is not an admission ticket") ) class Meta: diff --git a/src/pretix/control/templates/pretixcontrol/event/base.html b/src/pretix/control/templates/pretixcontrol/event/base.html index ea175c639..28e223d3a 100644 --- a/src/pretix/control/templates/pretixcontrol/event/base.html +++ b/src/pretix/control/templates/pretixcontrol/event/base.html @@ -46,7 +46,7 @@
  • - {% trans "Items" %} + {% trans "Products" %}
  • {% trans "Orders" %} - -
  • {% endblock %} diff --git a/src/pretix/control/templates/pretixcontrol/item/base.html b/src/pretix/control/templates/pretixcontrol/item/base.html index aad5d1df0..5128c9ff6 100644 --- a/src/pretix/control/templates/pretixcontrol/item/base.html +++ b/src/pretix/control/templates/pretixcontrol/item/base.html @@ -1,16 +1,16 @@ {% extends "pretixcontrol/event/base.html" %} {% load i18n %} -{% block title %}{{ item.name }} :: {% trans "Item" %}{% endblock %} +{% block title %}{{ item.name }} :: {% trans "Product" %}{% endblock %} {% block content %} {% if item.identity %} -

    {% trans "Modify item:" %} {{ item.name }}

    +

    {% trans "Modify product:" %} {{ item.name }}

    {% else %} -

    {% trans "Create item" %}

    +

    {% trans "Create product" %}

    {% blocktrans trimmed %} You will be able to adjust further settings in the next step. {% endblocktrans %}

    @@ -18,8 +18,8 @@ {% if item.identity and not item.quotas.exists %}
    {% blocktrans trimmed %} - Please note, that your item will not be available for sale until you added your item - to an existing or newly created quota. + Please note, that your product will not be available for sale until you added your + item to an existing or newly created quota. {% endblocktrans %}
    {% endif %} diff --git a/src/pretix/control/templates/pretixcontrol/item/restrictions.html b/src/pretix/control/templates/pretixcontrol/item/restrictions.html index 4da3e9c5d..83e1b536a 100644 --- a/src/pretix/control/templates/pretixcontrol/item/restrictions.html +++ b/src/pretix/control/templates/pretixcontrol/item/restrictions.html @@ -4,7 +4,7 @@ {% load formset_tags %} {% block inside %}

    {% blocktrans trimmed %} - In this area, you can choose of a set of "restriction types" to restrict the availability of your item with + In this area, you can choose of a set of "restriction types" to restrict the availability of your product with certain conditions. {% endblocktrans %}

    diff --git a/src/pretix/control/templates/pretixcontrol/items/base.html b/src/pretix/control/templates/pretixcontrol/items/base.html index 6527ecdb0..98aaa507c 100644 --- a/src/pretix/control/templates/pretixcontrol/items/base.html +++ b/src/pretix/control/templates/pretixcontrol/items/base.html @@ -1,6 +1,6 @@ {% extends "pretixcontrol/event/base.html" %} {% load i18n %} -{% block title %}{% trans "Items" %}{% endblock %} +{% block title %}{% trans "Products" %}{% endblock %} {% block content %} {% block inside %} {% endblock %} diff --git a/src/pretix/control/templates/pretixcontrol/items/categories.html b/src/pretix/control/templates/pretixcontrol/items/categories.html index 34d3436e9..d0e19ed2b 100644 --- a/src/pretix/control/templates/pretixcontrol/items/categories.html +++ b/src/pretix/control/templates/pretixcontrol/items/categories.html @@ -1,8 +1,8 @@ {% extends "pretixcontrol/items/base.html" %} {% load i18n %} -{% block title %}{% trans "Item categories" %}{% endblock %} +{% block title %}{% trans "Product categories" %}{% endblock %} {% block inside %} -

    {% trans "Item categories" %}

    +

    {% trans "Product categories" %}

    {% if "updated" in request.GET %}
    {% trans "Your changes have been saved." %} @@ -22,7 +22,7 @@ - + diff --git a/src/pretix/control/templates/pretixcontrol/items/category.html b/src/pretix/control/templates/pretixcontrol/items/category.html index ef08b5041..8d410974d 100644 --- a/src/pretix/control/templates/pretixcontrol/items/category.html +++ b/src/pretix/control/templates/pretixcontrol/items/category.html @@ -1,9 +1,9 @@ {% extends "pretixcontrol/items/base.html" %} {% load i18n %} {% load bootstrap3 %} -{% block title %}{% trans "Item category" %}{% endblock %} +{% block title %}{% trans "Product category" %}{% endblock %} {% block inside %} -

    {% trans "Item category" %}

    +

    {% trans "Product category" %}

    {% csrf_token %} {% if "success" in request.GET %} diff --git a/src/pretix/control/templates/pretixcontrol/items/category_delete.html b/src/pretix/control/templates/pretixcontrol/items/category_delete.html index f31a819f4..eed8e3b7e 100644 --- a/src/pretix/control/templates/pretixcontrol/items/category_delete.html +++ b/src/pretix/control/templates/pretixcontrol/items/category_delete.html @@ -1,12 +1,14 @@ {% extends "pretixcontrol/items/base.html" %} {% load i18n %} {% load bootstrap3 %} -{% block title %}{% trans "Delete item category" %}{% endblock %} +{% block title %}{% trans "Delete product category" %}{% endblock %} {% block inside %} -

    {% trans "Delete item category" %}

    +

    {% trans "Delete product category" %}

    {% csrf_token %} -

    {% blocktrans %}Are you sure you want to delete the category {{ category.name }}?{% endblocktrans %}

    +

    {% blocktrans trimmed with name=category.name %} + Are you sure you want to delete the category {{ name }}? + {% endblocktrans %}

    {% trans "Item categories" %}{% trans "Product categories" %}
    - + diff --git a/src/pretix/control/templates/pretixcontrol/items/properties.html b/src/pretix/control/templates/pretixcontrol/items/properties.html index c24e753bc..3a2667b4e 100644 --- a/src/pretix/control/templates/pretixcontrol/items/properties.html +++ b/src/pretix/control/templates/pretixcontrol/items/properties.html @@ -1,8 +1,8 @@ {% extends "pretixcontrol/items/base.html" %} {% load i18n %} -{% block title %}{% trans "Item properties" %}{% endblock %} +{% block title %}{% trans "Product properties" %}{% endblock %} {% block inside %} -

    {% trans "Item properties" %}

    +

    {% trans "Product properties" %}

    {% if "updated" in request.GET %}
    {% trans "Your changes have been saved." %} @@ -22,7 +22,7 @@
    {% trans "Item name" %}{% trans "Product name" %} {% trans "Category" %}
    - + diff --git a/src/pretix/control/templates/pretixcontrol/items/property.html b/src/pretix/control/templates/pretixcontrol/items/property.html index b289292ef..1de6f1ae7 100644 --- a/src/pretix/control/templates/pretixcontrol/items/property.html +++ b/src/pretix/control/templates/pretixcontrol/items/property.html @@ -2,9 +2,9 @@ {% load i18n %} {% load bootstrap3 %} {% load formset_tags %} -{% block title %}{% trans "Item property" %}{% endblock %} +{% block title %}{% trans "Product property" %}{% endblock %} {% block inside %} -

    {% trans "Item property" %}

    +

    {% trans "Product property" %}

    {% csrf_token %} {% if "success" in request.GET %} diff --git a/src/pretix/control/templates/pretixcontrol/items/property_delete.html b/src/pretix/control/templates/pretixcontrol/items/property_delete.html index b617aceab..a4c72c9cb 100644 --- a/src/pretix/control/templates/pretixcontrol/items/property_delete.html +++ b/src/pretix/control/templates/pretixcontrol/items/property_delete.html @@ -1,11 +1,11 @@ {% extends "pretixcontrol/items/base.html" %} {% load i18n %} {% load bootstrap3 %} -{% block title %}{% trans "Delete item property" %}{% endblock %} +{% block title %}{% trans "Delete product property" %}{% endblock %} {% block inside %} -

    {% trans "Delete item property" %}

    +

    {% trans "Delete product property" %}

    {% if not possible %} -

    {% blocktrans %}You can not delete the property {{ property }} as long as the following items use it:{% endblocktrans %}

    +

    {% blocktrans %}You can not delete the property {{ property }} as long as the following products use it:{% endblocktrans %}

    - + diff --git a/src/pretix/plugins/timerestriction/__init__.py b/src/pretix/plugins/timerestriction/__init__.py index 7a2830d36..6d7bdba91 100644 --- a/src/pretix/plugins/timerestriction/__init__.py +++ b/src/pretix/plugins/timerestriction/__init__.py @@ -13,7 +13,7 @@ class TimeRestrictionApp(AppConfig): author = _("the pretix team") version = '1.0.0' description = _("This plugin adds the possibility to restrict the sale " + - "of a given item or variation to a certain timeframe " + + "of a given product or variation to a certain timeframe " + "or change its price during a certain period.") def ready(self): diff --git a/src/pretix/presale/views/cart.py b/src/pretix/presale/views/cart.py index d3f427d82..d97386d22 100644 --- a/src/pretix/presale/views/cart.py +++ b/src/pretix/presale/views/cart.py @@ -55,7 +55,7 @@ class CartActionMixin: messages.error(self.request, _('Please enter numbers only.')) return [] if len(items) == 0: - messages.warning(self.request, _('You did not select any items.')) + messages.warning(self.request, _('You did not select any products.')) return [] return items @@ -84,13 +84,13 @@ class CartRemove(EventViewMixin, CartActionMixin, EventLoginRequiredMixin, View) class CartAdd(EventViewMixin, CartActionMixin, View): error_messages = { - 'unavailable': _('Some of the items you selected were no longer available. ' + 'unavailable': _('Some of the products you selected were no longer available. ' 'Please see below for details.'), - 'in_part': _('Some of the items you selected were no longer available in ' + 'in_part': _('Some of the products you selected were no longer available in ' 'the quantity you selected. Please see below for details.'), 'busy': _('We were not able to process your request completely as the ' 'server was too busy. Please try again.'), - 'not_for_sale': _('You selected an item which is not available for sale.'), + 'not_for_sale': _('You selected a product which is not available for sale.'), 'max_items': _("You cannot select more than %s items per order"), } @@ -232,6 +232,6 @@ class CartAdd(EventViewMixin, CartActionMixin, View): quota.release() if not self.msg_some_unavailable: - messages.success(self.request, _('The items have been successfully added to your cart.')) + messages.success(self.request, _('The products have been successfully added to your cart.')) return redirect(self.get_success_url()) diff --git a/src/pretix/presale/views/checkout.py b/src/pretix/presale/views/checkout.py index 4ad620482..a25d232d3 100644 --- a/src/pretix/presale/views/checkout.py +++ b/src/pretix/presale/views/checkout.py @@ -254,9 +254,9 @@ class OrderConfirm(EventViewMixin, CartDisplayMixin, EventLoginRequiredMixin, Ch template_name = "pretixpresale/event/checkout_confirm.html" error_messages = { - 'unavailable': _('Some of the items you selected were no longer available. ' + 'unavailable': _('Some of the products you selected were no longer available. ' 'Please see below for details.'), - 'in_part': _('Some of the items you selected were no longer available in ' + 'in_part': _('Some of the products you selected were no longer available in ' 'the quantity you selected. Please see below for details.'), 'price_changed': _('The price of some of the items in your cart has changed in the ' 'meantime. Please see below for details.'), diff --git a/src/tests/control/test_events.py b/src/tests/control/test_events.py index 7b49f7d02..f0e2b1a84 100644 --- a/src/tests/control/test_events.py +++ b/src/tests/control/test_events.py @@ -36,7 +36,7 @@ class EventsTest(BrowserTest): def test_event_list(self): self.driver.get('%s%s' % (self.live_server_url, '/control/events/')) - tabletext = self.driver.find_element_by_css_selector(".container .table").text + tabletext = self.driver.find_element_by_css_selector("#page-wrapper .table").text self.assertIn("30C3", tabletext) self.assertNotIn("31C3", tabletext) self.assertNotIn("MRMCD14", tabletext) diff --git a/src/tests/control/test_items.py b/src/tests/control/test_items.py index e62ba8cb6..422d15843 100644 --- a/src/tests/control/test_items.py +++ b/src/tests/control/test_items.py @@ -40,7 +40,7 @@ class CategoriesTest(ItemFormTest): self.driver.find_element_by_name("name").send_keys('Entry tickets') self.driver.find_element_by_class_name("btn-save").click() self.driver.find_element_by_class_name("alert-success") - self.assertIn("Entry tickets", self.driver.find_element_by_css_selector(".container table").text) + self.assertIn("Entry tickets", self.driver.find_element_by_css_selector("#page-wrapper table").text) def test_update(self): c = ItemCategory.objects.create(event=self.event1, name="Entry tickets") @@ -51,8 +51,8 @@ class CategoriesTest(ItemFormTest): self.driver.find_element_by_name("name").send_keys('T-Shirts') self.scroll_and_click(self.driver.find_element_by_class_name("btn-save")) self.driver.find_element_by_class_name("alert-success") - self.assertIn("T-Shirts", self.driver.find_element_by_css_selector(".container table").text) - self.assertNotIn("Entry tickets", self.driver.find_element_by_css_selector(".container table").text) + self.assertIn("T-Shirts", self.driver.find_element_by_css_selector("#page-wrapper table").text) + self.assertNotIn("Entry tickets", self.driver.find_element_by_css_selector("#page-wrapper table").text) @unittest.skipIf('TRAVIS' in os.environ, 'See docstring for details.') def test_sort(self): @@ -95,7 +95,7 @@ class CategoriesTest(ItemFormTest): )) self.driver.find_element_by_class_name("btn-danger").click() self.driver.find_element_by_class_name("alert-success") - self.assertNotIn("Entry tickets", self.driver.find_element_by_css_selector(".container table").text) + self.assertNotIn("Entry tickets", self.driver.find_element_by_css_selector("#page-wrapper table").text) class PropertiesTest(ItemFormTest): @@ -109,7 +109,7 @@ class PropertiesTest(ItemFormTest): self.driver.find_element_by_name("values-1-value").send_keys('M') self.scroll_and_click(self.driver.find_element_by_class_name("btn-save")) self.driver.find_element_by_class_name("alert-success") - self.assertIn("Size", self.driver.find_element_by_css_selector(".container table").text) + self.assertIn("Size", self.driver.find_element_by_css_selector("#page-wrapper table").text) self.driver.find_element_by_partial_link_text("Size").click() self.assertEqual("S", self.driver.find_element_by_name("values-0-value").get_attribute("value")) self.assertEqual("M", self.driver.find_element_by_name("values-1-value").get_attribute("value")) @@ -142,7 +142,7 @@ class PropertiesTest(ItemFormTest): )) self.driver.find_element_by_class_name("btn-danger").click() self.driver.find_element_by_class_name("alert-success") - self.assertNotIn("Size", self.driver.find_element_by_css_selector(".container table").text) + self.assertNotIn("Size", self.driver.find_element_by_css_selector("#page-wrapper table").text) class QuestionsTest(ItemFormTest): @@ -155,7 +155,7 @@ class QuestionsTest(ItemFormTest): Select(self.driver.find_element_by_name("type")).select_by_value('N') self.driver.find_element_by_class_name("btn-save").click() self.driver.find_element_by_class_name("alert-success") - self.assertIn("shoe size", self.driver.find_element_by_css_selector(".container table").text) + self.assertIn("shoe size", self.driver.find_element_by_css_selector("#page-wrapper table").text) def test_update(self): c = Question.objects.create(event=self.event1, question="What is your shoe size?", type="N", required=True) @@ -166,8 +166,8 @@ class QuestionsTest(ItemFormTest): self.driver.find_element_by_name("question").send_keys('How old are you?') self.scroll_and_click(self.driver.find_element_by_class_name("btn-save")) self.driver.find_element_by_class_name("alert-success") - self.assertIn("How old", self.driver.find_element_by_css_selector(".container table").text) - self.assertNotIn("shoe size", self.driver.find_element_by_css_selector(".container table").text) + self.assertIn("How old", self.driver.find_element_by_css_selector("#page-wrapper table").text) + self.assertNotIn("shoe size", self.driver.find_element_by_css_selector("#page-wrapper table").text) c = Question.objects.current.get(identity=c.identity) self.assertTrue(c.required) @@ -178,7 +178,7 @@ class QuestionsTest(ItemFormTest): )) self.driver.find_element_by_class_name("btn-danger").click() self.driver.find_element_by_class_name("alert-success") - self.assertNotIn("shoe size", self.driver.find_element_by_css_selector(".container table").text) + self.assertNotIn("shoe size", self.driver.find_element_by_css_selector("#page-wrapper table").text) class QuotaTest(ItemFormTest): @@ -191,7 +191,7 @@ class QuotaTest(ItemFormTest): self.driver.find_element_by_name("size").send_keys('500') self.driver.find_element_by_class_name("btn-save").click() self.driver.find_element_by_class_name("alert-success") - self.assertIn("Full house", self.driver.find_element_by_css_selector(".container table").text) + self.assertIn("Full house", self.driver.find_element_by_css_selector("#page-wrapper table").text) def test_update(self): c = Quota.objects.create(event=self.event1, name="Full house", size=500) @@ -206,16 +206,17 @@ class QuotaTest(ItemFormTest): )) self.driver.find_element_by_name("size").clear() self.driver.find_element_by_name("size").send_keys('350') - self.scroll_and_click(self.driver.find_element_by_css_selector('.panel-group .panel:nth-child(1) .panel-title a')) - time.sleep(1) + # self.scroll_and_click(self.driver.find_element_by_css_selector('.panel-group .panel:nth-child(1) + # .panel-title a')) + # time.sleep(1) self.scroll_and_click(self.driver.find_element_by_name("item_%s" % item1.identity)) - self.driver.find_element_by_css_selector('.panel-group .panel:nth-child(2) .panel-title a').click() - time.sleep(1) + # self.driver.find_element_by_css_selector('.panel-group .panel:nth-child(2) .panel-title a').click() + # time.sleep(1) self.scroll_and_click(self.driver.find_elements_by_css_selector("input[name=item_%s]" % item2.identity)[1]) self.scroll_and_click(self.driver.find_element_by_class_name("btn-save")) self.driver.find_element_by_class_name("alert-success") - self.assertIn("350", self.driver.find_element_by_css_selector(".container table").text) - self.assertNotIn("500", self.driver.find_element_by_css_selector(".container table").text) + self.assertIn("350", self.driver.find_element_by_css_selector("#page-wrapper table").text) + self.assertNotIn("500", self.driver.find_element_by_css_selector("#page-wrapper table").text) def test_delete(self): c = Quota.objects.create(event=self.event1, name="Full house", size=500) @@ -224,4 +225,4 @@ class QuotaTest(ItemFormTest): )) self.driver.find_element_by_class_name("btn-danger").click() self.driver.find_element_by_class_name("alert-success") - self.assertNotIn("Full house", self.driver.find_element_by_css_selector(".container table").text) + self.assertNotIn("Full house", self.driver.find_element_by_css_selector("#page-wrapper table").text) diff --git a/src/tests/presale/test_cart.py b/src/tests/presale/test_cart.py index 4781cd036..59adfe42b 100644 --- a/src/tests/presale/test_cart.py +++ b/src/tests/presale/test_cart.py @@ -193,7 +193,7 @@ class CartTest(CartTestMixin, TestCase): self.assertRedirects(response, '/%s/%s/' % (self.orga.slug, self.event.slug), target_status_code=200) doc = BeautifulSoup(response.rendered_content) - self.assertIn('did not select any items', doc.select('.alert-warning')[0].text) + self.assertIn('did not select any products', doc.select('.alert-warning')[0].text) self.assertFalse(CartPosition.objects.filter(user=self.user, event=self.event).exists()) def test_wrong_event(self):
    {% trans "Item properties" %}{% trans "Product properties" %}
    {% trans "Quota name" %}{% trans "Items" %}{% trans "Products" %} {% trans "Total capacity" %} {% trans "Capacity left" %}