Commit 75b8fb63 authored by Robin Sonnabend's avatar Robin Sonnabend
Browse files

Do not create protocols if the type already has one on that day

/close #97
/close #187
parent 8b64f92d
......@@ -105,6 +105,12 @@ class ProtocolType(DatabaseModel):
return None
return candidates[0]
def get_protocols_on_date(self, protocol_date):
return [
protocol for protocol in self.protocols
if protocol.date == protocol_date
]
def has_public_view_right(self, user, check_networks=True):
return (
self.has_public_anonymous_view_right(check_networks=check_networks)
......@@ -423,7 +429,12 @@ class Protocol(DatabaseModel):
tzinfo=tz.tzlocal())
@staticmethod
def create_new_protocol(protocoltype, date, start_time=None):
def create_new_protocol(
protocoltype, date, start_time=None, allow_duplicate=False):
if not allow_duplicate:
duplicate_candidates = protocoltype.get_protocols_on_date(date)
if duplicate_candidates:
return duplicate_candidates[0]
if start_time is None:
start_time = protocoltype.usual_time
protocol = Protocol(
......
......@@ -492,8 +492,9 @@ def parse_protocol_async_inner(protocol):
if len(protocol_tag.values) > 1:
new_protocol_time = datetime.strptime(
protocol_tag.values[1], "%H:%M")
Protocol.create_new_protocol(
protocol.protocoltype, new_protocol_date, new_protocol_time)
if not protocol.protocoltype.get_protocols_on_date(new_protocol_date):
Protocol.create_new_protocol(
protocol.protocoltype, new_protocol_date, new_protocol_time)
# TOPs
old_tops = list(protocol.tops)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment