def edit(request, context_name, document_name): doc = Document.objects.get(context__name__iexact=context_name, name__iexact=document_name) document_version = doc.versions.all().order_by('-pk')[0] # TODO: # - on save, validate that no one has edited in the meantime return Form.create( auto__model=DocumentVersion, auto__exclude=['changed_time'], title=f'Edit {doc}', fields=dict( document=dict( initial=doc, editable=False, call_target__attribute='hidden', ), name__initial=document_version.name, content=dict( initial=document_version.content, attrs__style=dict( height='40rem', width='50rem', ), ), custom_data__initial=document_version.custom_data, version=dict( initial=document_version.version + 1, editable=False, call_target=Field.hidden, ), ), actions__submit__display_name='Save', )
class BusyPage(Page): tfoo = Table(auto__model=TFoo, page_size=5, columns__name__filter=dict(include=True, field__include=True)) tbar = Table(auto__model=TBar, page_size=5, columns__b__filter=dict(include=True, field__include=True)) create_tbar = Form.create(auto__model=TBar)
def create(request): return Form.create(auto__model=Entry, fields=dict( creator__initial=request.user, use_count__include=False, approver__include=False, created_at=dict(editable=False, initial=datetime.now()), valid_to__initial=timezone.now() + timedelta(days=30), ))
def create_issue(request, project_name): project = Project.objects.get(name=project_name) def post_handler(form, **kwargs): result = create_object__post_handler(form=form, **kwargs) if form.is_valid(): form.instance.comments = Room.objects.create( name=f'Issue comments {project}/{form.instance}', custom_data=f'issues/{project.pk}/{form.instance.pk}') form.instance.save() return result return Form.create( auto__model=Issue, auto__exclude=['time_created', 'last_changed_time', 'comments'], fields__project=Field.hidden(editable=False, initial=project), fields__last_changed_by=Field.hidden(editable=False, initial=request.user), actions__submit__post_handler=post_handler, )
def edit_album(request, artist, album): album = get_object_or_404(Album, name=album, artist__name=artist) return Form.edit(auto__instance=album) def delete_album(request, artist, album): album = get_object_or_404(Album, name=album, artist__name=artist) return Form.delete(auto__instance=album) # URLs ----------------------------- urlpatterns = [ path('', IndexPage().as_view()), path( 'albums/', AlbumTable(auto__model=Album, columns__year__bulk__include=True).as_view()), path('albums/create/', Form.create(auto__model=Album).as_view()), path('artists/', ArtistTable(auto__model=Artist).as_view()), path('tracks/', TrackTable(auto__model=Track).as_view()), path('artist/<artist>/', artist_page), path('artist/<artist>/<album>/', album_page), path('artist/<artist>/<album>/edit/', edit_album), path('artist/<artist>/<album>/delete/', delete_album), ]
def test_get_wrapped_view_function(): assert get_wrapped_view(view) is view assert get_wrapped_view(csrf_exempt(view)) is view get_wrapped_view(Form.create(auto__model=TFoo).as_view())
Table, Form, ) from examples.models import ( TFoo, Foo, ) from iommi.admin import Admin urlpatterns = [ path('', views.index, name='index'), path('form_example_1/', views.form_example_1, name='example_1'), path('form_example_2/', views.form_example_2, name='example_2'), path('form_example_2b/', Form.create(auto__model=Foo).as_view(), name='example_2b'), path('form_example_3/', views.form_example_3, name='example_3'), path('form_example_4/', views.form_example_4, name='example_4'), path('form_example_5/', views.form_example_5, name='example_5'), path('form_kitchen/', views.form_kitchen), path('table_readme_example_1/', views.table_readme_example_1, name='readme_example_1'), path('table_readme_example_2/', views.table_readme_example_2, name='readme_example_2'), path('table_auto_example_1/', views.table_auto_example_1, name='readme_example_1'), path('table_auto_example_2/', views.table_auto_example_2, name='readme_example_2'), path('table_kitchen_sink/', views.table_kitchen_sink, name='kitchen_sink'), path('table_as_view/', Table( auto__model=TFoo, columns__a__bulk__include=True, bulk__actions__delete__include=True, extra_evaluated__report_name='example_download',
def form_example_4(request): return Form.create(auto__model=Artist)
from django.urls import path from iommi import Form from . import views from .models import ( Project, ) urlpatterns = [ path('', views.view_project_list), path('create/', Form.create(auto__model=Project).as_view()), path('projects/<str:project_name>/', views.view_project), path('projects/<str:project_name>/create/', views.create_issue), path('projects/<str:project_name>/issues/<int:issue_pk>/', views.view_issue), ]
) from examples.models import ( TFoo, Foo, ) from iommi.admin import Admin urlpatterns = [ path('', views.index, name='index'), path('log_in/', views.log_in), path('log_out/', views.log_out), path('form_example_1/', views.form_example_1, name='example_1'), path('form_example_2/', views.form_example_2, name='example_2'), path('form_example_2b/', Form.create(auto__model=Foo).as_view(), name='example_2b'), path('form_example_3/', views.form_example_3, name='example_3'), path('form_example_4/', views.form_example_4, name='example_4'), path('form_example_5/', views.form_example_5, name='example_5'), path('form_kitchen/', views.form_kitchen), path('table_readme_example_1/', views.table_readme_example_1, name='readme_example_1'), path('table_readme_example_2/', views.table_readme_example_2, name='readme_example_2'), path('table_auto_example_1/', views.table_auto_example_1, name='readme_example_1'), path('table_auto_example_2/',