diff options
Diffstat (limited to 'python-django-nonrelated-inlines.spec')
-rw-r--r-- | python-django-nonrelated-inlines.spec | 217 |
1 files changed, 217 insertions, 0 deletions
diff --git a/python-django-nonrelated-inlines.spec b/python-django-nonrelated-inlines.spec new file mode 100644 index 0000000..ed73c6f --- /dev/null +++ b/python-django-nonrelated-inlines.spec @@ -0,0 +1,217 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-nonrelated-inlines +Version: 0.2 +Release: 1 +Summary: Django admin inlines for unrelated models +License: MIT +URL: https://github.com/bhomnick/django-nonrelated-inlines +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/a9/63/4287295cdbd9e0c8b9e4b1e7c488c99f1a3553cab22040ffae7cd9329a5e/django-nonrelated-inlines-0.2.tar.gz +BuildArch: noarch + +Requires: python3-Django + +%description +# django-nonrelated-inlines + +Django admin inlines for unrelated models + + + + +## Getting started + +This app allows you to create admin inlines for models that don't have an +explicit foreign key relationship. + +To use, subclass your inline from either `NonrelatedStackedInline` or +`NonrelatedTabularInline` and add `get_form_queryset` and `save_new_instance` +methods. + +* `get_form_queryset(self, obj)` returns all objects that should be shown in + the inline formset. +* `save_new_instance(self, parent, instance)` given a parent object and a new + child object instance should associate the child object with the parent. + +For example, let's assume we have `Customer` and `Invoice` models. `Invoice` +objects are associated with a `Customer` if they share the same email address. + +```python +from nonrelated_inlines.admin import NonrelatedStackedInline + + +class CustomerInvoiceStackedInline(NonrelatedStackedInline): + model = Invoice + fields = [ + 'id', + 'amount' + ] + + def get_form_queryset(self, obj): + return self.model.objects.filter(email=obj.email) + + def save_new_instance(self, parent, instance): + instance.email = parent.email +``` + +When viewing an `Customer` instance, we fetch a queryset of all `Invoice` +instances sharing the same email address. Similarly, when saving a new `Invoice` +instance we make sure to set its email attribute to the same value as its parent +`Customer`. + + + + +%package -n python3-django-nonrelated-inlines +Summary: Django admin inlines for unrelated models +Provides: python-django-nonrelated-inlines +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-nonrelated-inlines +# django-nonrelated-inlines + +Django admin inlines for unrelated models + + + + +## Getting started + +This app allows you to create admin inlines for models that don't have an +explicit foreign key relationship. + +To use, subclass your inline from either `NonrelatedStackedInline` or +`NonrelatedTabularInline` and add `get_form_queryset` and `save_new_instance` +methods. + +* `get_form_queryset(self, obj)` returns all objects that should be shown in + the inline formset. +* `save_new_instance(self, parent, instance)` given a parent object and a new + child object instance should associate the child object with the parent. + +For example, let's assume we have `Customer` and `Invoice` models. `Invoice` +objects are associated with a `Customer` if they share the same email address. + +```python +from nonrelated_inlines.admin import NonrelatedStackedInline + + +class CustomerInvoiceStackedInline(NonrelatedStackedInline): + model = Invoice + fields = [ + 'id', + 'amount' + ] + + def get_form_queryset(self, obj): + return self.model.objects.filter(email=obj.email) + + def save_new_instance(self, parent, instance): + instance.email = parent.email +``` + +When viewing an `Customer` instance, we fetch a queryset of all `Invoice` +instances sharing the same email address. Similarly, when saving a new `Invoice` +instance we make sure to set its email attribute to the same value as its parent +`Customer`. + + + + +%package help +Summary: Development documents and examples for django-nonrelated-inlines +Provides: python3-django-nonrelated-inlines-doc +%description help +# django-nonrelated-inlines + +Django admin inlines for unrelated models + + + + +## Getting started + +This app allows you to create admin inlines for models that don't have an +explicit foreign key relationship. + +To use, subclass your inline from either `NonrelatedStackedInline` or +`NonrelatedTabularInline` and add `get_form_queryset` and `save_new_instance` +methods. + +* `get_form_queryset(self, obj)` returns all objects that should be shown in + the inline formset. +* `save_new_instance(self, parent, instance)` given a parent object and a new + child object instance should associate the child object with the parent. + +For example, let's assume we have `Customer` and `Invoice` models. `Invoice` +objects are associated with a `Customer` if they share the same email address. + +```python +from nonrelated_inlines.admin import NonrelatedStackedInline + + +class CustomerInvoiceStackedInline(NonrelatedStackedInline): + model = Invoice + fields = [ + 'id', + 'amount' + ] + + def get_form_queryset(self, obj): + return self.model.objects.filter(email=obj.email) + + def save_new_instance(self, parent, instance): + instance.email = parent.email +``` + +When viewing an `Customer` instance, we fetch a queryset of all `Invoice` +instances sharing the same email address. Similarly, when saving a new `Invoice` +instance we make sure to set its email attribute to the same value as its parent +`Customer`. + + + + +%prep +%autosetup -n django-nonrelated-inlines-0.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-django-nonrelated-inlines -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 0.2-1 +- Package Spec generated |