-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TASK-304 Another iteration over drawer for managing workers #279
TASK-304 Another iteration over drawer for managing workers #279
Conversation
Test summaryRun details
View run in Cypress Dashboard ➡️ This comment has been generated by cypress-bot as a result of this project's GitHub integration settings. You can manage this integration in this project's settings in the Cypress Dashboard |
src/components/namestable/worker-edit/worker-edit.component.tsx
Outdated
Show resolved
Hide resolved
/> | ||
<FormFieldErrorLabel | ||
condition={!isTimeValid()} | ||
message={`Ilość godzin powinna być mniejsza od ${maximumWorkHoursForMonth}`} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Liczba godzin. Godziny są policzalne 😝
src/components/namestable/worker-edit/worker-contract-type-selector.component.tsx
Outdated
Show resolved
Hide resolved
/> | ||
<FormFieldErrorLabel | ||
condition={!isEmployementTimeValid(employementTime)} | ||
message="Etat powinien być mniejszy lub równy jeden" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
src/components/namestable/worker-edit/worker-name-edit-field.components.tsx
Outdated
Show resolved
Hide resolved
src/components/namestable/worker-edit/worker-position-selector.component.tsx
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- liczba godzin (skoro godziny liczymy, to są policzalne) 😛 ilość czasu (niepoliczalne)
- zda RZ ały się nawet rozprawy sądowe dotyczące tego, co znaczy
powinien
w określonych dokumentach! Językowopowinien
wyraża imperatyw trochę innego rodzaju niżmusi
i według niektórych interpretacji nie jest równie nakazujący. https://sjp.pl/powinien
Kategorycznie nie dopuszczamy etatu ≥ 1. To możePracownik nie może być zatrudniony na więcej niż jeden etat
? - "Nie zdefiniowano X" brzmi w tym przypadku naturalniej niż "X musi być zdefiniowane", ale wtedy tracimy podkreślenie wokół X. Może by je uwydatnić w jakiś sposób wizualny (np. boldem)?
Dzięki za szybkie review 👍
to mi się wydaje, że raczej nie ma takiej potrzeby, ponieważ te komunikaty i tak pojawiają się w pod konkretnymi polami, więc i tak wiadomo o co chodzi |
{ | ||
condition: isWorkerWithSameNameExists(), | ||
message: `Pracownik o imieniu ${workerName} już istnieje`, | ||
}, | ||
{ | ||
condition: isWorkerNameEmpty(), | ||
message: "Nie zdefiniowano imienia pracownika", | ||
}, | ||
]; | ||
|
||
return ( | ||
<> | ||
<Grid item xs={6}> | ||
<Typography className={classes.label}>Imię i nazwisko</Typography> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Właściwie to nie wiem, czy użycie synekdochy (pars pro toto) w tym przypadku jest poprawne. Nie chodzi nam przecież o imię jako samo imię, tylko bardziej o jednoznaczny identyfikator pracownika. To chyba nie jest jakaś niedopuszczalna sytuacja, że w danym miejscu pracują dwie osoby o takich samych imionach.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Masz rację.
Ale nie wiem jak to zamienić: jedyne co przychodzi do głowy - Identyfikator pracownika, ale to brzmi słabo.
Natomiast ta sytuacja o której ty mówisz raczej jest rzadka.
Moim zdaniem lepiej zostać przy tym co jest teraz .
@prenc, co ty o tym myślisz?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Żeby być spójnym można by to nazwać nazwa pracownika (bo zawiera imię i nazwisko, ew. coś jeszcze), ale może to średnio brzmieć.
Co do tego co mówi Agata, to niewiele rozumiem, albo używasz pojęcie imienia wymiennie z nazwą pracownika. Już dopuszczamy kilku pracowników o tym samym imieniu i w teorii, również o tej samej nazwie (case ze zmianą typu umowy).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Ehevi
Chyba poprawiłem synekdochy xd (jeśli chodziło o to nazwa pola - to Imię i nazwisko, a w komunikacie piszemy tylko o imieniu)
Co do tego, żeby zamienić Imię i nazwisko na coś innego, to tego już nie robiłem.
Myśle, że one i tak to zrozumieją w razie czego.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To może Taki pracownik już istnieje? Skoro zakładamy, że będziemy ich jednoznacznie określać za pomocą imion i nazwisk (co nadal jest synekdochą).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Co do tego co mówi Agata, to niewiele rozumiem, albo używasz pojęcie imienia wymiennie z nazwą pracownika. Już dopuszczamy kilku pracowników o tym samym imieniu i w teorii, również o tej samej nazwie (case ze zmianą typu umowy).
To może w takim przypadku wystarczyłoby |
Powiem szczerze, e mi bardziej się podoba aktualna wersja komunikatów. |
|
Byłbym raczej za czymś typu, wybierz typ umowy, wpisz nazwę pracownika, wybierz wymiar etatu |
4e657d4
to
2dac106
Compare
Ma sens. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ogólnie super praca, mam tylko kilka drobnych uwag i pytań. Request changes z powodu literówek, wszystkie inne moje wątpliwości do twojej dyspozycji :)
import { WorkerEmployementContractWorkNormSelector } from "./worker-employement-contract-work-norm-selector.component"; | ||
import { WorkerCivilContractWorkNormSelector } from "./worker-civil-contract-work-norm-selector.component"; | ||
|
||
export interface WorkerContractTypeDependentWorkTimeSelectorOptions extends FormFieldOptions { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Starałbym się unikać na tyle długich nazw, ponieważ poźniejsze ich wykorzystanie jest słabo czytelne, tym bardziej kiedy jest ich wiele. Może coś w stylu 'SelectorByContractTypeOptions'? Jendak jest to drobna uwaga, a nie request changes :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Racja
Trochę mnie poniosło xd
Zmieniłem na CombinedWorkNormSelector
const classes = useFormFieldStyles(); | ||
|
||
const contractOptions = useMemo( | ||
() => |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tego pewien nie jestem, ale czy tu nie musi być (): typ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Słuszna uwaga, dodałem
workerInfo.previousWorkerName = name; | ||
} | ||
}, [mode, workerInfo, name]); | ||
//#region event handlers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
komentarze regionów w tym pliku są potrzebne?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
); | ||
|
||
const contractTimeDropdownOptions = useMemo( | ||
() => |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(): typ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ide proponuje (): { dataCy: string; action: () => void; label: any }[]
nwm czy ma to sens
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mamy zdefiniowany interfejs ButtonData
, więc użyłem go
import { ShiftCode } from "../../common-models/shift-info.model"; | ||
import { ContractType, WorkersInfoModel, WorkerType } from "../../common-models/worker-info.model"; | ||
import { ApplicationStateModel } from "../../state/models/application-state.model"; | ||
import { WorkerInfoExtendedInterface } from "./worker-edit/worker-edit.models"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
może być krótszy
import { WorkerInfoExtendedInterface } from "./worker-edit";
src/components/namestable/worker-edit/worker-civil-contract-work-norm-selector.component.tsx
Outdated
Show resolved
Hide resolved
...onents/namestable/worker-edit/worker-contract-type-dependent-worknorm-selector.component.tsx
Outdated
Show resolved
Hide resolved
); | ||
|
||
const isWorkerWithSameNameExists = useCallback((): boolean => { | ||
const isWorkerNameInvalid = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
myślę że ta zmienna nie jest potrzebna
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Preferuję wynosić wyniki operacji do zmiennych nawet jeśli ta zmienna będzie w następnej linii zwrócona w returnie.
Główna zaleta tego - to łatwiejsze debugowanie, bo czasami chcesz zobaczyć co zwraca funkcja będą w tej funkcji i wtedy taka zmienna na to pozwala.
src/components/namestable/worker-edit/worker-position-selector.component.tsx
Outdated
Show resolved
Hide resolved
<Typography className={classes.label}>Ilość godzin</Typography> | ||
<TextField | ||
fullWidth | ||
name="civilTime" | ||
data-cy="input-civil-time" | ||
value={convertToNormalHours(employementTime)} | ||
type="number" | ||
style={{ | ||
width: 100, | ||
}} | ||
className={classes.formInput} | ||
onBlur={(event): void => setWorkerTime(toWorkerNorm(event.target.value))} | ||
color="primary" | ||
/> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
u mnie też nie działa
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dzięki za uwagę.
Poprawiłem, teraz działa dobrze
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, ale nie podoba mi się to, że otwierasz drawer i od razu wszystko na czerwono się świeci. Raczej powinno być tak, że przycisk do zapisywania pracownika jest cały czas aktywny, a przy jego naciśnięciu pola są sprawdzane i jak coś jest nie tak to wyświetla się czerwona informacja.
Reszta dla mnie git. + to co Agata już powiedziała
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, ale nie podoba mi się to, że otwierasz drawer i od razu wszystko na czerwono się świeci. Raczej powinno być tak, że przycisk do zapisywania pracownika jest cały czas aktywny, a przy jego naciśnięciu pola są sprawdzane i jak coś jest nie tak to wyświetla się czerwona informacja.
Zrobiłem tak, żeby komunikaty pojawiały się nie wcześniej niż po wprowadzeniu jakiejś informacji do odpowiednich pół
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
af33ad5
to
b82c730
Compare
* TASK-338 Enable database clear when error appears (#249) * Save file with proper name, save all db docs when error button clicked * Modify database export and export all schedules in zip * Set proper zip name * Fix and extend filehelper test * Move handle dummp to file helper, remove comments * Fix file helper test * Add custom types instead of inline dicts * Save correct timestamp * TASK-343 Handle rendering crushes at schedule level (#257) * TASK-323 Add min char number indication in report issue modal (#262) * Task 348 Enable undo on corrupted schedule page (#265) * TASK-345 Improve descriptions of found schedule's issues (#263) * TASK-371 Bug: wrong errors when 31-day month (#271) * export workers (#267) Co-authored-by: Tomasz Pęcak <[email protected]> Co-authored-by: Paweł Renc <[email protected]> * TASK-324 Reduce hour number based on previously scheduled shifts for L4 (#259) * TASK-319 Export number of daytime employees information (#260) * Task 291 Copy month to full schedule (including next month) (#272) * Fixes bad key setting (#275) * TASK-322 Bug: fix missing colors in Excel export for employees having no shifts (#258) * TASK-333 && TASK-335 Asking about unsaved changes when exiting edit mode && disabling undo/redo/save buttons (#270) * TASK-370 Fix restoring state on corrupted schedule page (#276) * TASK-362 Parse workers info from excel (#269) * TASK-375 Bug: app crashes when copying from month ending on sunday (#280) * TASK-314 Another iteration over excel layout of exported schedule (#278) * bugfixes * implements function to decide font color * added links * small fixes Co-authored-by: Tomasz Pęcak <[email protected]> * TASK-389 Close issue drawer when exiting edit mode (#285) * Bug fixed. Cypress passing. * Added isEditMode watcher for auto drawer closing. * TASK-376 Error modal doesn't appear on app error (#286) * Handle error on higher tree level * Add error message for testing purposes * TASK-350 Keep shifts scheduled in next month's days (#283) * Add corrupted info to schedule state * Stash branch changes * Restore prev storage initialization * Do not replace free shifts in first week * TASK-387 Sort shifts in dropdown (#282) * TASK-361 autocomplete component rendering fix (#284) * TASK-304 Another iteration over drawer for managing workers (#279) * TASK-388 Now edit state is properly false after leaving edit mode. BUGFIXED (#290) * TASK-256 Add exporting employees' small calendar to pdf (#277) * TASK-379 Add worker to single month (#289) * TASK-339 & TASK-382 fix all console errors & increase folding performance (#288) * TASK-391 fixed calculation of worker norm when added during the month with parttime contract. (#295) * TASK-390 Stick footer to bottom of page, not viewport (#294) * Change footer to be the end of the content, rather than sticked to the bottom of the screen. Remove electron block * Footer always on the bottom of the page * Repair jira like drawer after footer changes. Repair zarzadzanie tab Co-authored-by: Tomasz Pęcak <[email protected]> Co-authored-by: Ehevi <[email protected]> Co-authored-by: Paulina <[email protected]> Co-authored-by: Bohdan <[email protected]> Co-authored-by: Vyacheslav Trushkov <[email protected]> Co-authored-by: kopcion <[email protected]> Co-authored-by: Jan Ślażyński <[email protected]> Co-authored-by: Maciej Bielech <[email protected]>
Poprawiłem drawer do edycji/dodawania pracownika w taki sposób, żeby działała konwersja godzin oraz dodałem komunikaty o błędach.
@Ehevi zerknij proszę na komunikaty które pojawiają się przy błędach i powiedz czy masz jakiś uwagi
@VVlovsky , @maciekb05 zerknijcie proszę od strony kodu