summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty')
-rw-r--r--macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty149
1 files changed, 88 insertions, 61 deletions
diff --git a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
index 612a5885c8..109029231e 100644
--- a/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
+++ b/macros/latex/contrib/ufrgscca/latex/ufrgscca-coord.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {2.3} {2023/12/05}
+%% This is version {2.4a} {2024/02/19}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/ufrgscca
@@ -27,8 +27,8 @@
\ProvidesExplPackage
{ufrgscca-coord}
- {2023/12/05}
- {2.3}
+ {2024/02/19}
+ {2.4a}
{UFRGS/CCA coord commands}
@@ -42,24 +42,16 @@
{
name .code:n = {ufrgscca-coord} ,
prefix .code:n = {ufrgscca} ,
- date .code:n = {2023/12/05},
- version .code:n = {2.3} ,
+ date .code:n = {2024/02/19},
+ version .code:n = {2.4a} ,
description .code:n = {UFRGS/CCA~ coordination~ report~ commands}
}
-\cs_if_exist:NF \__codedesc_pkg_info:nn
+\cs_if_exist:NF \PkgInfo
{
- \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
- { \keys_set:nn {#1 / pkg info}{#2} }
- }
-\cs_if_exist:NF \PkgInfo
- { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
- {
+ \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} }
\NewDocumentCommand \PkgDescription {m}
- {
- \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par
- }
- }
+ { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par }
+ }
%%%%%%%
%%% End of cut-n-paste
%%%%%%%
@@ -134,9 +126,9 @@
\starray_new:n {prof}
\starray_def_from_keyval:nn {prof}
{
- last = ,
- first = ,
- gender = ,
+ last = {},
+ first = {},
+ gender = {},
}
\NewDocumentCommand{\professor}{O{}mmmmO{}}
@@ -144,10 +136,10 @@
\starray_new_term:nn {prof}{#1}
\starray_set_from_keyval:nn {prof}
{
- last = {#2},
- first = {#3},
- email = {#4},
- phone = {#5},
+ last = {#2},
+ first = {#3},
+ email = {#4},
+ phone = {#5},
gender = {#6},
}
}
@@ -229,57 +221,77 @@
%
\NewDocumentCommand{\studentfate}{O{}}{%%
- \str_case:nnF {#1}
+ \tl_if_blank:nTF {#1}
{
- {C}
+ \emptytermifnone[3]{student.reviewer}[\starray_gset_prop:nnn {student}{flag-null}{\c_true_bool}]
+ \__ufrgscca_studentgrade:
+ }
+ {
+ \str_case:nnF {#1}
{
- \starray_gset_from_keyval:nn {student}
+ {C}
{
- grade = C ,
- flag-exam = \c_true_bool ,
- flag-graded = \c_true_bool ,
- flag-approved = \c_true_bool ,
+ \starray_gset_from_keyval:nn {student}
+ {
+ grade = C ,
+ flag-exam = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ flag-approved = \c_true_bool ,
+ }
}
- }
- {D}
- {
- \starray_gset_from_keyval:nn {student}
+ {D}
{
- grade = D ,
- flag-exam = \c_true_bool ,
- flag-graded = \c_true_bool ,
+ \starray_gset_from_keyval:nn {student}
+ {
+ grade = D ,
+ flag-exam = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ }
}
- }
- {FF}
- {
- \starray_gset_from_keyval:nn {student}
+ {exam}
{
- grade = FF ,
- flag-ff = \c_true_bool ,
- flag-graded = \c_true_bool ,
+ \starray_gset_from_keyval:nn {student}
+ {
+ grade = {\textcolor{red}{exame}} ,
+ flag-exam = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ }
}
- }
- {dismiss}
- {
- \starray_gset_from_keyval:nn {student}
+ {FF}
{
- flag-dismiss = \c_true_bool ,
- flag-graded = \c_true_bool ,
+ \starray_gset_from_keyval:nn {student}
+ {
+ grade = FF ,
+ flag-ff = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ }
+ }
+ {dismiss}
+ {
+ \starray_gset_from_keyval:nn {student}
+ {
+ flag-dismiss = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ }
+ }
+ {none}
+ {
+ \starray_gset_from_keyval:nn {student}
+ {
+ flag-dismiss = \c_true_bool ,
+ flag-graded = \c_true_bool ,
+ }
}
}
- {none}
- {
+ { %% in case of none of above...
\starray_gset_from_keyval:nn {student}
{
- flag-dismiss = \c_true_bool ,
+ grade = {\textcolor{red}{\textbf{#1}}} ,
+ flag-exam = \c_true_bool ,
flag-graded = \c_true_bool ,
- }
+ }
}
}
- { %% in case of none of above...
- \emptytermifnone[3]{student.reviewer}[\starray_gset_prop:nnn {student}{flag-null}{\c_true_bool}]
- \__ufrgscca_studentgrade:
- }
}%%
%
\tl_new:N \l__ufrgscca_tmpa_tl
@@ -464,6 +476,13 @@
}
}
+\NewDocumentCommand{\studentReviewerCase}{mmm}{
+ \starray_term_syntax:n{student.reviewer[#1]}
+ \bool_if:nTF {\starray_parsed_get_prop:n{flag-examreview}}
+ {#2}
+ {#3}
+}
+
\NewDocumentCommand{\studentDismissCase}{mm}{
\starray_term_syntax:n{student}
@@ -554,7 +573,7 @@
\cs_generate_variant:Nn \starray_gset_prop:nnn {nne}
-\NewDocumentCommand{\examinergrades}{mmmO{}}{
+\NewDocumentCommand{\examinergrades}{mmmO{}s}{
\tl_if_blank:nTF {#1}
{
\starray_gset_prop:nnn {student.reviewer}{grade}{0}
@@ -589,6 +608,8 @@
\fpeval{round((#1 * \UseConst{TCC-I.weightA} + #2 * \UseConst{TCC-I.weightB} + #3 * \UseConst{TCC-I.weightC} + #4 * \UseConst{TCC-I.weightD}) / ( \UseConst{TCC-I.weightA} + \UseConst{TCC-I.weightB} + \UseConst{TCC-I.weightC} + \UseConst{TCC-I.weightD}) , 2 , 1) }
}
}
+ \bool_if:nT {#5}
+ {\starray_gset_prop:nnn {student.reviewer}{flag-examreview}{\c_true_bool}}
}
}
@@ -840,8 +861,14 @@
\studentselect{##1}
&\\[-2ex]
~\multicolumn{#1}{l}{\textbf{\color{#4}\DataFields{student}{name}}}\\*
- \__ufrgscca_checktable_lines:nn {L1,L2,L3,L4,L5}{C1,C2,C3,C4,C5}\hline
+ \__ufrgscca_checktable_lines:nn {L1,L2,L3}{C1,C2,C3,C4,C5,C6}\hline
}
}
}
+
+\bool_new:N \l__ufrgscca_checklist_bool
+\bool_set_true:N \l__ufrgscca_checklist_bool
+\NewDocumentCommand{\suppresschecklist}{}{
+ \bool_set_false:N \l__ufrgscca_checklist_bool
+}