Activities of "hanakl"

Yes, I found that. I tried the master-child entity, but if I set Lesson as master, Test as child of Lesson and TestQuestion as child of Test, Suite will generate UI only for Lesson and Test. Nothing for the next level - TestQuestion. For TestQuestion it only generates the entity and endpoints not the UI. If I can use child entities for multiple levels it would be great.

  • ABP Framework version: v8.1.0
  • UI Type: Blazor Server
  • Database System: EF Core (PostgreSQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): no
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

Hello ABP Support Team,

I am working on implementing a test management system using the ABP.io framework with a commercial license, structured with hierarchical entities: Lesson - Test - Test Question - Test Answer. I have attempted to set up these relationships where Lesson acts as the master, Test as the child of Lesson, and Test Question as the child of Test.

However, I am encountering an issue where only the first child level (Test) is functioning correctly, and the nested deeper relationships (Test Question as child of Test) are not working as expected.

Could you assist me with the following:

Is there a known issue or limitation with nesting multiple levels of entities in ABP Suite that might be affecting my implementation? Could you provide guidance or best practices on configuring and managing deeply nested child entities within the ABP framework? Are there specific configurations or additional steps required to ensure that all levels of nested entities function correctly in CRUD operations? Any examples, documentation, or insights you could provide would be greatly appreciated, as they would help ensure that our educational content and assessments are managed effectively.

Thank you for your support.

Best regards, Lukáš Hanák

Hi, I see. Is there a way to change this behavior so that it is replaced with a different component?

Hi, thank you very much for explanation, it is much more understandable for me now. I can see all of the field templates except the one used for TextArea. Templates in our solution are untouched.

I also tried to manually go through most of the templates, but I have not noticed the one, which would be responsible for generation of MemoEdit component.

HI, I've read through documentation about editing templates prior to my post. I should have mentioned in there, sorry. The problem is that in my template called "Frontend.Blazor.Page.Item.razor.txt" is this block of code:

    <Validations @ref="@Editing%%entity-name%%Validations"
                Mode="ValidationMode.Auto"
                Model="@Editing%%entity-name%%"
                ValidateOnLoad="false">
         %%main-edit-tab-opener%%
        %%razor-modal-fields-edit%%
        %%main-tab-closer%%
        %%razor-modal-navigation-connection-fields-editing%%
    </Validations>%%tab-closer%%

This seems to be responsible for a generation of this code from the app:

<Validations @ref="@NewPageValidations"
            Mode="ValidationMode.Auto"
            Model="@NewPage"
            ValidateOnLoad="false"\>
     
    
    <Validation MessageLocalizer="@LH.Localize">
        <Field>
            <FieldLabel>@L["Title"] *</FieldLabel>
            <TextEdit @bind-Text="@NewPage.Title"  >
                <Feedback>
                    <ValidationError />
                </Feedback>
            </TextEdit>
        </Field>
    </Validation>


    <Validation MessageLocalizer="@LH.Localize">
        <Field>
            <FieldLabel>@L["PublishAt"]</FieldLabel>
            <DateEdit TValue="DateTime?" InputMode="DateInputMode.DateTime" @bind-Date="@NewPage.PublishAt" >
               <Feedback>
                    <ValidationError />
                </Feedback>
            </DateEdit>
        </Field>
    </Validation>


    <Validation MessageLocalizer="@LH.Localize">
        <Field>
            <FieldLabel>@L["Content"] *</FieldLabel>
            <MemoEdit @bind-Text="@NewPage.Content"  >
                <Feedback>
                    <ValidationError />
                </Feedback>
            </MemoEdit>
        </Field>
    </Validation>


    <Field>
        <FieldLabel>@L["Type"]</FieldLabel>
        <Select TValue="PageType" @bind-SelectedValue="@NewPage.Type" >
            @foreach (var itemValue in Enum.GetValues(typeof(PageType)))
            {
                <SelectItem TValue="PageType" Value="@((PageType) itemValue)">
                    @L[$"Enum:PageType.{((PageType) itemValue).ToString("d")}"]
                </SelectItem>
            }
        </Select>
    </Field>


    
    
</Validations>

What I acknowledge is that I'm able to edit the template to the point it would generate what I want, thanks to the present if branching a looping logic, but it feels like a really impractical solution to me. What I'm confused about the most are these variables:

    %%main-edit-tab-opener%%
    %%razor-modal-fields-edit%%
    %%main-tab-closer%%
    %%razor-modal-navigation-connection-fields-editing%%
  • ABP Framework version: v8.0.3
  • UI Type: Blazor Server
  • Database System: EF Core (PostgreSQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): no

I have generated basic CRUD actions for our objects using default templates. When there is a string property of an object marked for generation as a textarea, input that handles bound data to that property is generated as MemoEdit component from Blazorise library. However, I would like to have a different component in place of MemoEdit, which is RichTextEdit. Is there any way to modify or override the generation process to specify which component should be used? I know it can be done manually, but those changes will not persist when things change and also it wouldn't be applied globally.

Showing 1 to 6 of 6 entries
Made with ❤️ on ABP v9.1.0-preview. Updated on November 11, 2024, 11:11