Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 14 additions & 10 deletions web/src/p2k16/core/tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,47 +16,51 @@ class DummyClient(object):

@event_management.converter_for("tool", "checkout")
class ToolCheckoutEvent(object):
def __init__(self, tool_name: str, created_at: Optional[datetime] = None, created_by: Optional[Account] = None):
def __init__(self, tool_name: str, tool_description: Optional[str] = None, created_at: Optional[datetime] = None, created_by: Optional[Account] = None):
self.tool_name = tool_name
self.tool_description = tool_description or tool_name
self.created_at = created_at
self.created_by = created_by

def to_event(self):
return {"text1": self.tool_name}
return {"text1": self.tool_name, "text2": self.tool_description}

@staticmethod
def from_event(event: Event) -> "ToolCheckoutEvent":
return ToolCheckoutEvent(event.text1, event.created_at, event.created_by)
return ToolCheckoutEvent(event.text1, event.text2, event.created_at, event.created_by)

def to_dict(self):
return {**event_management.base_dict(self), **{
"created_at": self.created_at,
"created_by": self.created_by,
"created_by_username": self.created_by.username,
"tool_name": self.tool_name
"tool_name": self.tool_name,
"tool_description": self.tool_description
}}


@event_management.converter_for("tool", "checkin")
class ToolCheckinEvent(object):
def __init__(self, tool_name: str, created_at: Optional[datetime] = None, created_by: Optional[Account] = None):
def __init__(self, tool_name: str, tool_description: Optional[str] = None, created_at: Optional[datetime] = None, created_by: Optional[Account] = None):
self.tool_name = tool_name
self.tool_description = tool_description or tool_name
self.created_at = created_at
self.created_by = created_by

def to_event(self):
return {"text1": self.tool_name}
return {"text1": self.tool_name, "text2": self.tool_description}

@staticmethod
def from_event(event: Event) -> "ToolCheckinEvent":
return ToolCheckinEvent(event.text1, event.created_at, event.created_by)
return ToolCheckinEvent(event.text1, event.text2, event.created_at, event.created_by)

def to_dict(self):
return {**event_management.base_dict(self), **{
"created_at": self.created_at,
"created_by": self.created_by,
"created_by_username": self.created_by.username,
"tool_name": self.tool_name
"tool_name": self.tool_name,
"tool_description": self.tool_description
}}


Expand Down Expand Up @@ -108,7 +112,7 @@ def checkout_tool(self, account: Account, tool: ToolDescription):
self.checkin_tool(checkout.account, checkout.tool_description)

# Make a new checkout reservation
event_management.save_event(ToolCheckoutEvent(tool.name, datetime.now(), account))
event_management.save_event(ToolCheckoutEvent(tool.name, tool.description, datetime.now(), account))
checkout = ToolCheckout(tool, account, datetime.now())
db.session.add(checkout)

Expand All @@ -129,7 +133,7 @@ def checkout_tool(self, account: Account, tool: ToolDescription):
def checkin_tool(self, account: Account, tool: ToolDescription):
logger.info('Checking in tool. username={}, tool={}'.format(account.username, tool.name))

event_management.save_event(ToolCheckinEvent(tool.name, datetime.now(), account))
event_management.save_event(ToolCheckinEvent(tool.name, tool.description, datetime.now(), account))
checkout = ToolCheckout.find_by_tool(tool)
db.session.delete(checkout)
db.session.flush()
Expand Down
6 changes: 3 additions & 3 deletions web/src/p2k16/web/static/admin-tool-detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ <h1>

<div class="form-horizontal" ng-form="ctrl.form">
<div class="form-group">
<label for="name" class="col-sm-2">
<label title="Name (unique id)" for="name" class="col-sm-2">
Name
</label>
<div class="col-sm-10">
Expand All @@ -19,8 +19,8 @@ <h1>
</div>
</div>
<div class="form-group">
<label for="description" class="col-sm-2">
Name
<label title="Description (display name)" for="description" class="col-sm-2">
Description
</label>
<div class="col-sm-10">
<input class="form-control" type="text" name="description" id="description" placeholder="Description"
Expand Down
5 changes: 2 additions & 3 deletions web/src/p2k16/web/static/tool-front-page.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ <h4 class="panel-title">Instructions</h4>
<small style="color: green">Available</small>
</button>
</td>
</div>
</table>
</form>

Expand All @@ -50,9 +49,9 @@ <h3>Recent events</h3>
<ul class="no-padding">
<li ng-repeat="e in ctrl.recent_events">
<span ng-switch="e.domain + '-' + e.name">
<span ng-switch-when="tool-checkout">{{ e.created_at | date:'short' }} - <em style="color: red">{{ e.tool_name }}</em> - <a href="#!/user/{{ e.created_by }}">{{ e.created_by_username }}</a> checked out
<span ng-switch-when="tool-checkout">{{ e.created_at | date:'short' }} - <em style="color: red">{{ e.tool_description }}</em> - <a href="#!/user/{{ e.created_by }}">{{ e.created_by_username }}</a> checked out
</span>
<span ng-switch-when="tool-checkin">{{ e.created_at | date:'short' }} - <em style="color: green">{{ e.tool_name }}</em> - <a href="#!/user/{{ e.created_by }}">{{ e.created_by_username }}</a> checked in
<span ng-switch-when="tool-checkin">{{ e.created_at | date:'short' }} - <em style="color: green">{{ e.tool_description }}</em> - <a href="#!/user/{{ e.created_by }}">{{ e.created_by_username }}</a> checked in
</span>
</span>
</li>
Expand Down