Files
soneta-erp-skills/soneta-form-xml/evals/evals.json
T
2026-03-05 15:31:31 +01:00

50 lines
3.9 KiB
JSON

{
"skill_name": "soneta-form-xml",
"evals": [
{
"id": 1,
"prompt": "Utwórz plik Zamowienie.Szczegoly.pageform.xml dla platformy enova365. Zakładka powinna zawierać:\n- Grupę 'Dane podstawowe' z polami: Numer (szerokość 20), DataZlozenia (szerokość 15), Kontrahent (szerokość *), Status (szerokość 15)\n- Grupę 'Warunki' z układem dwukolumnowym (Row > Stack): lewa kolumna ma SposobDostawy (20) i TerminDostawy (15), prawa kolumna ma SposobZaplaty (20) i TerminZaplaty (15)\n- Grupę 'Pozycje' z Grid (IsToolbarVisible, EditInPlace, NewInPlace) i kolumnami: Lp (5), Towar (*), Ilosc (10) z Footer=Sum, CenaJednostkowa (18), Wartosc (15) z Footer=Sum\nPriority zakładki: 10.",
"expected_output": "Poprawny plik XML pageform.xml z deklaracją XML, elementem DataForm z atrybutami xmlns i Priority=10, elementem Page z DataContext={DataSource}, trzema grupami z odpowiednimi polami i gridem. Plik powinien być gotowy do użycia w projekcie enova365.",
"files": [],
"assertions": [
"Plik zaczyna się od <?xml version=\"1.0\" encoding=\"utf-8\"?>",
"Element DataForm ma atrybut Priority=\"10\"",
"Element Page ma atrybut DataContext=\"{DataSource}\"",
"Są trzy elementy Group: 'Dane podstawowe', 'Warunki', 'Pozycje'",
"Układ dwukolumnowy w grupie Warunki używa Row zawierającego Stack",
"Element Grid ma atrybuty IsToolbarVisible=\"true\", EditInPlace=\"true\", NewInPlace=\"true\"",
"Pola Ilosc i Wartosc w Grid mają atrybut Footer=\"Sum\"",
"Binding pól używa składni {NazwaPola} w cudzysłowie"
]
},
{
"id": 2,
"prompt": "Stwórz plik Pracownicy.viewform.xml dla widoku listy pracowników w enova365. Widok listy powinien zawierać kolumny: Kod (8), NazwiskoImie (30), NumerPracownika (20), Dzial (*), Stanowisko (20), DataZatrudnienia (15). Domyślne sortowanie po NazwiskoImie. Dodaj IsToolbarVisible i IsFilterRowVisible. Zachowaj właściwą strukturę pliku viewform.xml.",
"expected_output": "Poprawny plik viewform.xml z elementem DataForm (bez Page), elementem Grid z kolumnami i sortowaniem OrderBy=\"NazwiskoImie\". Plik zgodny ze standardem enova365.",
"files": [],
"assertions": [
"Plik ma poprawną deklarację XML",
"Element DataForm ma xmlns=\"http://www.enova.pl/schema/form.xsd\"",
"Jest element Grid z EditValue lub bez (dla widoku listy)",
"Grid ma atrybut OrderBy=\"NazwiskoImie\"",
"Grid ma IsToolbarVisible=\"true\" i IsFilterRowVisible=\"true\"",
"Są kolumny Field dla: Kod, NazwiskoImie, NumerPracownika, Dzial, Stanowisko, DataZatrudnienia",
"Pole Dzial ma Width=\"*\""
]
},
{
"id": 3,
"prompt": "Pokaż jak w pageform.xml enova365 zastosować warunkową widoczność pól używając wyrażeń RowCondition. Stwórz przykładowy plik Kontrahent.Kredyt.pageform.xml z następującymi wzorcami:\n1. Pole 'LimitKredytu' widoczne tylko gdy TypKlienta='Korporacyjny'\n2. Pole 'WarunkiSpecjalne' widoczne gdy Status='Premium' LUB Status='VIP'\n3. Pole 'OstrzezenieBranze' widoczne gdy NIE Status='Aktywny'\n4. Przycisk Command widoczny gdy ObrotyRoczne > 0 (użyj WorkCondition lub własność bool)\n5. Cała Grupa 'Dane zaawansowane' zwijalna (Collapsable) z Renderable uzależnionym od licencji",
"expected_output": "Plik pageform.xml demonstrujący różne wzorce warunkowej widoczności: Visibility=\"{?TypKlienta=Korporacyjny}\", Visibility=\"{?Status=Premium or Status=VIP}\", Visibility=\"{?!Status=Aktywny}\", użycie klasy Collapsable dla grupy.",
"files": [],
"assertions": [
"Użyto składni Visibility=\"{?Pole=Wartość}\" dla warunku równości",
"Użyto składni OR dla wielu wartości: {?Status=Premium or Status=VIP}",
"Użyto negacji: {?!Status=Aktywny}",
"Klasa Collapsable jest zastosowana do grupy",
"Atrybut Renderable jest użyty dla warunku licencji"
]
}
]
}