Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
protokollsystem
proto3
Commits
a56530e0
Commit
a56530e0
authored
Apr 12, 2017
by
Robin Sonnabend
Browse files
Do not accept broken Tag-like structures
e.g. [todo:who:what] e.g. [todo;who] /close
#95
parent
2d22bca3
Changes
5
Hide whitespace changes
Inline
Side-by-side
models/database.py
View file @
a56530e0
...
...
@@ -170,7 +170,7 @@ class Protocol(DatabaseModel):
def
create_localtops
(
self
):
local_tops
=
[]
for
default_top
in
self
.
protocoltype
.
default_tops
:
local_tops
.
append
(
LocalTOP
(
defaulttop_id
=
defaul_top
.
id
,
local_tops
.
append
(
LocalTOP
(
defaulttop_id
=
defaul
t
_top
.
id
,
protocol_id
=
self
.
id
,
description
=
""
))
return
local_tops
...
...
parser.py
View file @
a56530e0
...
...
@@ -251,7 +251,11 @@ class Tag:
# v1: matches [text without semicolons]
#PATTERN = r"\[(?<content>(?:[^;\]]*;)*(?:[^;\]]*))\]"
# v2: needs at least two parts separated by a semicolon
PATTERN
=
r
"\[(?<content>(?:[^;\]]*;)+(?:[^;\]]*))\]"
#PATTERN = r"\[(?<content>(?:[^;\]]*;)+(?:[^;\]]*))\]"
# v3: also match [] without semicolons inbetween, as there is not other use for that
PATTERN
=
r
"\[(?<content>[^\]]*)\]"
KNOWN_TAGS
=
[
"todo"
,
"url"
,
"beschluss"
]
class
Empty
(
Element
):
...
...
@@ -514,7 +518,7 @@ def main(test_file_name=None):
source
=
f
.
read
()
try
:
tree
=
parse
(
source
)
tree
.
dump
()
print
(
tree
.
dump
()
)
except
ParserException
as
e
:
print
(
e
)
else
:
...
...
server.py
View file @
a56530e0
...
...
@@ -477,7 +477,7 @@ def new_protocol():
form
.
populate_obj
(
protocol
)
db
.
session
.
add
(
protocol
)
db
.
session
.
commit
()
for
local_top
in
protocol
.
create_localtops
:
for
local_top
in
protocol
.
create_localtops
()
:
db
.
session
.
add
(
local_top
)
db
.
session
.
commit
()
tasks
.
push_tops_to_calendar
(
protocol
)
...
...
shared.py
View file @
a56530e0
...
...
@@ -18,8 +18,8 @@ latex_chars = [
(
'_'
,
'
\\
_'
),
(
'{'
,
'
\\
{'
),
(
'}'
,
'
\\
}'
),
#
('[', '\\['),
#
(']', '\\]'),
(
'['
,
'
\\
['
),
(
']'
,
'
\\
]'
),
#('"', '"\''),
(
'~'
,
r
'$\sim{}$'
),
(
'^'
,
r
'\textasciicircum{}'
),
...
...
tasks.py
View file @
a56530e0
...
...
@@ -148,6 +148,17 @@ def parse_protocol_async_inner(protocol, encoded_kwargs):
db
.
session
.
add
(
error
)
db
.
session
.
commit
()
return
# tags
tags
=
tree
.
get_tags
()
for
tag
in
tags
:
if
tag
.
name
not
in
Tag
.
KNOWN_TAGS
:
error
=
protocol
.
create_error
(
"Parsing"
,
"Invalid tag"
,
"The tag in line {} has the kind '{}', which is "
"not defined. This is probably an error mit a missing "
"semicolon."
.
format
(
tag
.
linenumber
,
tag
.
name
))
db
.
session
.
add
(
error
)
db
.
session
.
commit
()
return
# todos
old_todo_number_map
=
{}
for
todo
in
protocol
.
todos
:
...
...
@@ -158,14 +169,14 @@ def parse_protocol_async_inner(protocol, encoded_kwargs):
for
todo
in
old_todos
:
protocol
.
todos
.
remove
(
todo
)
db
.
session
.
commit
()
tags
=
tree
.
get_tags
()
todo_tags
=
[
tag
for
tag
in
tags
if
tag
.
name
==
"todo"
]
for
todo_tag
in
todo_tags
:
if
len
(
todo_tag
.
values
)
<
2
:
error
=
protocol
.
create_error
(
"Parsing"
,
"Invalid todo-tag"
,
"The todo tag in line {} needs at least "
"information on who and what, "
"but has less than that."
.
format
(
todo_tag
.
linenumber
))
"but has less than that. This is probably "
"a missing semicolon."
.
format
(
todo_tag
.
linenumber
))
db
.
session
.
add
(
error
)
db
.
session
.
commit
()
return
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment