
* Added new report that shows activity for a given user * Refactored code that calculates activity log and contribution summary * Implemented punch card that shows when user is active mostly Implements blueprint review-punchcard Change-Id: I17af4edb65e49c934c503c5ab6e5d2b6212780b0
106 lines
6.0 KiB
HTML
106 lines
6.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>{% block title %}{% endblock %}</title>
|
|
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='css/style.css') }}">
|
|
|
|
<link href='http://fonts.googleapis.com/css?family=PT+Sans:400,700,400italic&subset=latin,cyrillic' rel='stylesheet' type='text/css' />
|
|
<link href='http://fonts.googleapis.com/css?family=PT+Sans+Caption&subset=latin,cyrillic' rel='stylesheet' type='text/css' />
|
|
<link href='http://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700&subset=latin,cyrillic' rel='stylesheet' type='text/css' />
|
|
|
|
<link rel="icon" href="{{ url_for('static', filename='images/favicon.png') }}" type="image/png"/>
|
|
|
|
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='css/jquery.jqplot.min.css') }}">
|
|
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='css/jquery.dataTables.css') }}">
|
|
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='css/select2.css') }}">
|
|
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='css/style.css') }}">
|
|
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jquery-1.9.1.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jquery.dataTables.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jquery.jqplot.min.js') }}"></script>
|
|
<!--[if lt IE 9]><script type="text/javascript" src="{{ url_for('static', filename='js/excanvas.min.js') }}"></script><![endif]-->
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jqplot.json2.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jqplot.pieRenderer.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jqplot.barRenderer.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jqplot.bubbleRenderer.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jqplot.categoryAxisRenderer.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jqplot.dateAxisRenderer.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jqplot.canvasTextRenderer.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jqplot.canvasAxisLabelRenderer.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jqplot.canvasAxisTickRenderer.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jqplot.cursor.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jqplot.highlighter.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/select2.min.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/jquery.tmpl.js') }}"></script>
|
|
<script type="text/javascript" src="{{ url_for('static', filename='js/stackalytics-ui.js') }}"></script>
|
|
|
|
{% block head %}{% endblock %}
|
|
|
|
</head>
|
|
<body style="margin: 2em;">
|
|
|
|
{% macro show_activity_log(activity, show_gravatar) -%}
|
|
|
|
<h2>Activity Log</h2>
|
|
|
|
{% if not activity %}
|
|
<div>No activity.</div>
|
|
{% else %}
|
|
|
|
{% for item in activity %}
|
|
<div style="margin-bottom: 1em;">
|
|
<div style='float: left; '>
|
|
{% if show_gravatar %}
|
|
<img src="{{ item.gravatar }}">
|
|
{% else %}
|
|
<img src="{{ item.record_type | gravatar(default='retro') }}">
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div style="margin-left: 80px;">
|
|
<div style="font-weight: bold;">{{ item.date_str}}</div>
|
|
<div style="font-weight: bold;">{{ item.author_name }} ({{ item.company_name }})</div>
|
|
{% if item.record_type == "commit" %}
|
|
<div style='font-weight: bold;'>Commit “{{ item.subject }}” to {{ item.module }}</div>
|
|
<div class="message">{{ item.message | safe }}</div>
|
|
<div><span style="color: green">+<span>{{ item.lines_added }}</span></span>
|
|
<span style="color: blue">- <span>{{ item.lines_deleted }}</span></span>
|
|
</div>
|
|
{% if item.correction_comment %}
|
|
<div style='font-weight: bold; color: red;'>Commit corrected:
|
|
<span>{{ item.correction_comment }}</span></div>
|
|
{% endif %}
|
|
{% elif item.record_type == "mark" %}
|
|
<div style='font-weight: bold;'>Review “{{item.subject}}” in {{ item.module }}</div>
|
|
<div>Patch submitted by <a href="{{ item.parent_user_id }}">{{ item.parent_author_name }}</a></div>
|
|
<div>Change Id: <a href="{{item.url}}">{{item.review_id}}</a></div>
|
|
<div style="color: {% if item.value > 0 %} green {% else %} blue {% endif %}">
|
|
{{item.description}}: <span class="review_mark">{{item.value}}</span></div>
|
|
{% elif item.record_type == "review" %}
|
|
<div style='font-weight: bold;'>Patch “{{item.subject}}” in {{ item.module }}</div>
|
|
<div>URL: <a href="{{item.url}}">{{item.url}}</a></div>
|
|
<div>Change Id: <a href="{{item.url}}">{{item.id}}</a></div>
|
|
{% elif item.record_type == "email" %}
|
|
<div style='font-weight: bold;'>Email “{{item.subject}}”</div>
|
|
{% if item.body %}
|
|
<div class="message">{{ item.body|safe }}</div>
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
|
|
{% endfor %}
|
|
{% endif %}
|
|
|
|
{%- endmacro %}
|
|
|
|
<div id="analytics_header" style="padding-bottom: 1em; border-bottom: 1px solid darkgrey;">
|
|
<span id="logo"><a href="/">Stackalytics</a></span>
|
|
<span id="slogan">| community heartbeat</span>
|
|
</div>
|
|
|
|
{% block body %}{% endblock %}
|
|
|
|
</body>
|
|
</html>
|