►
From YouTube: TTEOT Training Video - S1E3 - Slip Logic
Description
This frightening episode highlights the magical code that can add logic to your slips, making them smarter, powerful, and maybe even a little more attractive - much like the hosts.
Referenced code: https://koha-us.org/2020/09/09/slip-logic/
Additional Resource: https://kohathings.hopperdietzel.org/2017/08/modifying-holdslip-receipt-in-koha.html
Music: https://www.bensound.com
B
Yeah,
our
offices
are
closed
for
the
next
couple
of
months
for
some
work,
some
remodeling,
but
I
like
my
office.
So
this
is
a
picture
of
my
office
cast.
Is
the
green
screen
background
in
zoom,
so.
A
You're
awesome:
I
love
this
all
right,
so
today
we're
going
to
talk
about
something
other
than
jquery.
Today
we're
going
to
be
actually
talking
about
modifying
slips.
This
is
something
that
we
did
early
on.
I
don't
know
about
you,
but
it
was
something
that
we
decided.
We
were
going
to
play
around
with
and
found
that
you
not
only
can
change
the
content
of
the
slips,
but
you
can
add
some
logic
to
the
slips
to
do
some
pretty
interesting
things.
B
Yes-
and
I
know
that
you
used
some
well,
you
are
using
some
jquery
or
some
javascript
for
this
right.
A
B
Awesome-
and
I
know
that
with
template
toolkit
there's
some
even
cooler
things
you
can
do
with
there's
some
other
cool
ways.
You
can
do
this
with
template.
Toolkit
too.
B
A
You
know
I
did
this
a
while
back
and
I'm
sure
there
are
ways
to
make
this
code
a
lot
cleaner,
but
this
is
simply
an
example,
a
launching
pad
to
help
inspire
people
to
do
more
with
their
slips.
A
So
if
you
find
mistakes,
if
you
find
something
that
wasn't
coded
very
well
feel
free
to
improve
on
it,
but
I'm
gonna
show
you
an
example
of
what
we
did
and
walk
walk
everybody
through
this
a
little
bit
so
that
you
have
a
an
understanding
of
how
this
is
structured
and
works,
and
maybe
you
can
do
something
better
or
do
something
different
in
a
different
slip.
A
So
cool
to
begin
with,
my
example-
is
going
to
be
on
the
hold
slip.
One
of
the
reasons
that
we
modified
the
whole
slip
was
because
the
hold
slip
looked
like
this.
It
was
just
kind
of
basic,
vanilla
out
of
the
box.
A
You
know
people
are
processing,
books,
left
and
right
and
not
paying
attention
as
much
as
they
would
like
to,
and
these
slips
look
almost
identical
and
if
you're
just
doing
a
transfer,
if
an
item
is
just
going
back
home,
that
slip
looks
completely
different.
I
didn't
I
didn't
print
up
an
example
of
this,
but
we
wanted
our
transfers
to
look
very
different
from
things
that
are
staying
in
house.
A
A
A
So
we
wanted
to
make
sure
that
they
knew
these
weren't
checked
out
yet
so
we
put
those
that
terminology
there
and
the
slip
is
long
because
we
wanted
it
to
stay
in
the
book.
We
didn't
want
it
to
fall
out
easily.
So
that's
why
we
added
some
length
and
we
were
doing
some
problematic
checking
at
one
point
and
so
at
the
bottom.
I
always
put
where
this
book
was
coming
from.
This
really
helped
us
to
track.
A
You
know
if
a
book
showed
up
at
the
wrong
place,
we
could
track
down
easily
by
looking
at
the
slip
where
it
came
from.
So
that's
the
explanation
of
this.
This
is
very
different
from
our
transfers.
If
we
have
a
hold,
not
just
not
just
something,
that's
going
back
home
but
a
hold
that
is
being
transferred
to
another
library
instead
of
it.
Looking
like
this,
it's
going
to
look
like
this.
This
is
what
we
also
model
our
for
our
transfer
slips,
so
our
transfer
slip
and
our
holds
that
are
being
transferred.
A
Those
slips
look
almost
identical.
The
thing
is,
the
transfer
is
being
transferred
from
one
of
two
different
slips:
it's
either
being
transferred
from
the
transfer
slip
or
it's
being
transferred
from
the
hold
slip,
and
so
the
whole
slip
is
doing
a
dual
function,
so
we
had
to
give
some
more
logic
so
that
slip
looked
differently.
We
wanted
it
to
look
more
like
the
transfer.
B
A
B
A
Perfect
sense,
anyways
we're
going
to
go
into
our
slip,
so
I
went
into
the
the
tools,
notices
and
slips
modify
notice,
I'm
actually
modifying
the
slip
called
hold
slip,
so
hold
slip
will
handle
the
slips
for
holds
and
it
will
also
handle
the
slips
for
holds
that
are
being
transferred.
A
A
So
here
is
the
first
part
of
what
I
put
in
there.
First
of
all,
I
put
everything
within
a
a
font
face
of
veranda.
We
wanted
to
change
the
the
font
to
be
more
readable,
so
I
just
put
a
font
in
there.
So
I'm
doing
this
in
sections.
This
first
section
is
going
to
be
the
structure,
the
basic
layout
for
the
for
an
item
that
is
on
hold
at
your
library.
It's
not
going
anywhere,
it's
just
on
hold,
and
so
this
is
I'm
adding
divs
to
define
these
sections.
A
A
Sections
like
this
is
an
empty
header,
for
the
patron
id
up
here
is
the
the
div
with
an
id
of
expiration.
This
is
where
the
expiration
is
going
to
be
placed.
A
A
Then
I
have
our
information
that
says
it's
not
checked
out.
Please
check
out
this
item
before
leaving
and
then
another
section.
Oh
I've
got
another
section
in
there
that
I
didn't
want
to
put
in
there
that
early,
but
this
section
is
for
the
homebound
if,
if
we
have
patrons
that
are
that
are
homebound.
A
If,
if
we
choose
to
use
this,
I
have
a
little
variable
that
I
can
turn
on
to
match
our
homebound
category
and
it
would
make
the
slip.
Look
a
little
bit
different,
have
a
bunch
of
information
on
it
that
our
outreach
coordinator
would
want
on
the
slip
and
we
can
easily
see.
Oh,
this
is
for
the
outreach
coordinator
to
handle
and
they
would
they
would
take
that
from
there.
So
we
can
identify
that
type
of
hold
for
homebound
patrons
from
regular
patrons.
A
This
section
I
call
transfer
hold
so
any
hold
that
is
going
to
another
library,
is
going
to
be
laid
out
in
this
style.
So
I
have
it
say
it's
going
to
be
transferred
to
and
it's
going
to
have
the
branch
name
right
at
the
top.
So,
instead
of
an
expiration
and
the
patron
name,
it's
going
to
have
the
branch
name
up
there
and
saying
that
it's
being
transferred
and
then
all
the
basic
information
about
the
book,
you'll
notice.
I
didn't
have
book
information
on
the
hold
section
right.
A
So
this
is
more
about
the
item
that's
being
transferred
and
if
the
slip
kit
gets
pulled
out,
we
know
what
book
it
goes
to
and
we
have
other
information
on
there
that
that
we
want
to
see.
Oh
one
thing
that
I
did
not
point
out
in
both
sections
I
have
at
the
very
bottom.
I
have
a
header
or
heading
of
three
and
it
has
a
margin
set.
This
is
this
is
what
gives
the
the
slip
the
length
so
the
400
px?
A
A
A
This
was
a
section
that
I
added
recently
and
this
one
I
won't
have
a
demo
slip
for
because
I
can't
mimic
an
expired
hold
on
the
fly,
but
this
section
was
an
idea
that
I
had
a
while
back
when
we
noticed
that,
because
we
have
our
holds
out
on
a
publicly
accessible
shelf,
people
will
grab
their
holds
and
usually
they'll
check
them
out,
sometimes
not
always
not
always
sometimes
you'll
get
a
patron.
A
So
we've
modified
the
the
check-in
screen
to
to
get
our
staff's
attention.
So
they
know
that
this
is
an
expired
hold.
This
is
this
has
already
been
triggered
once,
but
if
they,
for
some
reason,
are
too
busy
and
miss
that
information
on
the
screen,
the
whole
slip
is
not
going
to
print
out.
Normally,
it's
going
to
say
that
this
is
a
an
expired
hold
it'll
put
book
information
in
there.
A
A
A
That
defines
all
of
your
information
now
I
am
not
going
to
go
through
in
great
detail
about
this,
because
there's
a
lot
to
it,
it's
it
can
get
overwhelming.
Plus.
You
know
your
logic.
What
you're
gonna
do
can
be
something
completely
different,
but
I
will
break
down
some
of
the
the
basic
parts
of
this
so
that
we
have
some
basic
understanding
of
what's
going
on
here.
A
I
start
off
my
script
with
that
some
variables,
I
need
to
define
some
variables
by
the
way.
I'll
tell
you
one
thing
about
setting
up
a
script.
If
you
don't
get
an
element
right
in
the
script.
What's
going
to
happen,
is
it's
going
to
show
all
of
your
html?
A
It's
very
easy
to
break
if
you
don't
code,
something
right
in
the
script,
so
you
want
to
make
sure
that
you
test
it
before
you
throw
it
out
there,
because
otherwise
you're
going
to
get
this
weird
slip
with
all
of
the
different
sections
that
are
not
filled
in
and
people
are
going
to
be
wondering
what's
going
on.
So
this
is
where
the
it
gets
tricky
and
you
have
to
make
sure
that
you
do
it
right.
A
A
I
define
a
variable
for
the
last
name.
I
also
in
fact
this.
I
don't
know
why
I
do
that.
A
little
old
coding
there
I
have
a
variable
for
the
variable
for
first
name-
is
going
to
equal
that
particular
field.
So
the
the
bar
up
here,
it's
the
borrower's
surname
and
we
define
a
variable
for
the
card
number,
and
this
was
important
here,
because
I
would
get
some.
A
Some
patrons
that
didn't
have
a
card
number,
yet
you
know
if
they
were
of
each
name.
That's
in
the
first
name
field.
You
know
we
put
our
first
name
and
middle
in
that
first
name
field,
and
so
this
does
very
good
at
being
just
the
first
letter
of
each
name
in
that
field.
A
So
you
know
if
they
had
passed
the
date
information
here,
the
transformation
I'm
checking
where
this
item
is
going.
If
it
matches
the
current
bar,
it's
really
important.
It's
going
to
find
out
whether
this
is
being
this
is
a
local
hole
or
if
this
is
a
hole,
that's
being
transferred
to
another
branch.
A
A
A
Let
me
get
my
highlight
here,
so
this
section
right
here
is
everything
except
for
the
last
two
numbers
in
the
in
the
card.
So
if
you
want
the
last
three,
you
would
just
so
it's
it's
basically
replacing
a
thing
until
the
last
two
or
three
or
however
many
you
set
there,
it's
replacing
that
with
that
asterisk
and
then
this
is
where
you
add,
on
the
last
two
or
three
or
however,.
B
A
Well,
if
they
don't
match,
I
mean
I'm
a
stickler.
I
I
wanted.
You
know
the
card
number
and
the
masking
to
be
the
exact
amount.
So
that's
why
I
did
that.
I
mean
you
put
five
asterisks
in
there
and
then
tacked
on.
However
many
you
wanted
yeah,
you
don't
have
to
be
that
much
of
a
stickler
on
that.
I
just
wanted
it
to
be
accurate.
So
that's
why
I
did
it
that
way.
A
Okay,
I
do
have
a
section
in
here
that
looks
at
patron
category.
This
is
where
it's
going
to
look
at
that
local
hold
and
find
out.
If
this
is
a
homebound
patron
or
not
right
now
I
have
a
category
that
does
not
exist
in
there
called
not
home.
We
don't
use
this
currently,
but
if
we
did,
I
would
change
this
to
match
the
category
that
that's
our
homebound
patron.
A
So
I
would
do
this
and
if
the
patron
that
I'm,
if
I'm
checking
in
an
item-
and
if
this
hold
is
for
a
homebound
patron,
that
is
going
to
make
a
slip
that
looks
like
this,
so
here
it
has
its
expiration
date,
but
it
says
homebound
patron
hole,
and
it
gives
me
more
information
than
I
would
have
in
a
normal
slip
that
was
going
in
on
the
the
whole
shelf
for
a
patron,
so
makes
it
very
different
makes
it
it's
very
different
from
our
transfer
very
different
from
right
hold.
A
A
B
A
A
To
format
the
the
expiration
date,
the
way
I
wanted
it
to
be,
so
that's
why
it's
broken
up
into
pieces
separated
by
slashes
rather
than
hyphens,
and
it
will
display
that
ex
that
expired
section
with
the
expiration
date.
A
This
slip,
in
a
nutshell,
cool
I
did
want
to
show
one
section,
one
one
other
section
I
I
did
talk
about.
You
could
do
your
patron
names
differently.
Here
is
the
area
that
that
you
can
modify
this
partial
name.
B
A
This
is
slightly
different,
where
it's
taking
it's
not
just
putting
and
throwing
in
the
whole
last
name
in
this
case
it's
doing
the
first
three
letters
of
the
last
name
and
then
it's
masking
the
rest.
It's
a
little
bit
different.
I
don't
use
a.
I
don't
use
a
slice
for
this
because
I'm
doing
the
first
set
part
of
the
the
name,
not
the
last
part,
with
those
slicing
off
the
last
few
letters
I
use
slice.
If
I'm
doing
the
first
few
letters
of
a
string,
then
I'm
using
the
sub
string
instead
easier.
A
So
I'm
doing
a
mask
of
part
of
the
last
name
and
then
if
the
first
name
exists,
I'm
adding
on
a
mask
to
that
as
well.
I'm
doing
the
first
three
letters
in
this
case
and
then
masking
the
rest,
and
in
that
case,
that
would
give
you
a
result
like
this
right,
and
so
you
can
do
this
all
different
ways
if
you
wanted
to
kind
of
mash
it
together.
If
you
just
wanted
letters
and
you
didn't
want
any
masking,
you
could
do
the
first
three
letters
of
the
first
or
the
last
name.
A
B
B
Yeah
and
I've
I've
encountered
quite
a
few
libraries
now
with
self-service
for
pick
up
and
everybody
seems
to
have
a
different
way
of
deciding
how
they're
going
to
do
it
at
the
library.
I
go
to
it's
alphabetized
by
the
first
three
letters
in
your
last
name
and
then
by
the
last
four
digits,
your
card
number,
that's
how
you
find
your
stuff
on
the
shelf.
So
it's
a
little
bit
different
everywhere.
A
We've
come
a
long
way
with
coho
in
in
doing
this,
because
before
coha
we
didn't
have
the
luxury
of
this.
We
were
handwriting
slips
to
put
in
books
on
the
hold
shelf,
and
when
we
got
our
hands
on
coho,
it's
like
wow,
we
can
do
so
much
more
and
we
were
able
to
create
these
slips.
So
this
was
this
was
my
attempt
at
replacing
that
so
staff
didn't
have
to
hand
write
slips
for
each
hole
that
was
going
out
on
the
whole
shelf.
B
For
me,
it
was
important
at
the
first
library
I
worked
out
with
quahog,
where
we
got
the
patron
names
off
of
the
slips,
because
we
ship
things
through
a
courier
system
and
we
didn't
want
to
be
shipping
patron
information
through
the
courier
system.
We
wanted
to
make
sure
that
you
know
all
we're
sending
essentially
we're
giving
this
driver
the
names
and
addresses
and
phone
numbers
of
hundreds
of
people
throughout
our
area.
So
we
didn't.
We
trusted
our
drivers,
but
you
know
it's
it's
better,
not
to
have
to
trust
people.
B
It's
better
to
just
you
know,
come
up
with
a
system
that
doesn't
require
trust
to
be
honest,
yeah
yeah.
It
keeps
everybody
honest
when
they
don't
have
a
chips.
A
Well,
that
that
is
it
for
this
example
of
modifying
slips
again,
you
can
do
this.
You
can
modify
lots
of
your
a
lot
of
your
slips.
Your
heart's
content,
it's
just
a
matter
of
you,
know
fulfilling
the
need
of
your
library.
B
One
so
when
you
were
talking,
let
me
say
this:
when
you
were
talking,
I
looked
up
the
schedule
for
the
coha
online
together
2020
conference
and
on
tuesday,
the
22nd
at
9,
30
pacific
daylight
time.
Joe
sickowitz
from
the
fenway
library
organization
is
going
to
be
talking
about.
The
title
of
this
presentation
is
making
slips
your
own
and
it's
from
9
30
to
10
pacific
time.
A
So
we
had
a
little
bit
of
a
malfunction
at
the
end
of
our
recording.
We
chopped
off
the
end,
but
the
part
you
missed,
george
was
talking
about
his
presentation
that
he
did
a
couple
years
back
on
same
topic.
He
had
a
little
bit
different
approach
in
his
modifications,
but
along
the
same
lines,
we're
gonna
put
a
link
to
that
on
the
quahog
us
website
next
to
the
video
link.
A
So
if
you
go
to
our
video
link,
if
you
aren't
there
already
under
the
learn,
section,
get
the
right
one
here
and
next
to
videos.
When
we
add
this
video
you'll
see
our
video
we'll
put
a
link
to
that
example,
and
to
the
example
that
you
saw
in
the
video
today
there
as
well.
So
you
have
a
place
to
refer
to.
A
Our
next
video
is
going
to
be
presented
by
george
and
he
is
going
to
be
talking
about
enhancing
the
notes
in
reports
with
html.
So
we'll
see
you
next
time,
thank
you
for
joining.