Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
No related merge requests found
...@@ -105,6 +105,12 @@ class ProtocolType(DatabaseModel): ...@@ -105,6 +105,12 @@ class ProtocolType(DatabaseModel):
return None return None
return candidates[0] 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): def has_public_view_right(self, user, check_networks=True):
return ( return (
self.has_public_anonymous_view_right(check_networks=check_networks) self.has_public_anonymous_view_right(check_networks=check_networks)
...@@ -423,7 +429,12 @@ class Protocol(DatabaseModel): ...@@ -423,7 +429,12 @@ class Protocol(DatabaseModel):
tzinfo=tz.tzlocal()) tzinfo=tz.tzlocal())
@staticmethod @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: if start_time is None:
start_time = protocoltype.usual_time start_time = protocoltype.usual_time
protocol = Protocol( protocol = Protocol(
......
...@@ -492,6 +492,7 @@ def parse_protocol_async_inner(protocol): ...@@ -492,6 +492,7 @@ def parse_protocol_async_inner(protocol):
if len(protocol_tag.values) > 1: if len(protocol_tag.values) > 1:
new_protocol_time = datetime.strptime( new_protocol_time = datetime.strptime(
protocol_tag.values[1], "%H:%M") protocol_tag.values[1], "%H:%M")
if not protocol.protocoltype.get_protocols_on_date(new_protocol_date):
Protocol.create_new_protocol( Protocol.create_new_protocol(
protocol.protocoltype, new_protocol_date, new_protocol_time) protocol.protocoltype, new_protocol_date, new_protocol_time)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment