Files
@ 260a7a01b054
Branch filter:
Location: kallithea/rhodecode/templates/admin/admin_log.html - annotation
260a7a01b054
1.8 KiB
text/html
follow Python conventions for boolean values
True and False might be singletons and the "default" values for "boolean"
expressions, but "all" values in Python has a boolean value and should be
evaluated as such. Checking with 'is True' and 'is False' is thus confusing,
error prone and unnessarily complex.
If we anywhere rely and nullable boolean fields from the database layer and
don't want the null value to be treated as False then we should check
explicitly for null with 'is None'.
True and False might be singletons and the "default" values for "boolean"
expressions, but "all" values in Python has a boolean value and should be
evaluated as such. Checking with 'is True' and 'is False' is thus confusing,
error prone and unnessarily complex.
If we anywhere rely and nullable boolean fields from the database layer and
don't want the null value to be treated as False then we should check
explicitly for null with 'is None'.
1e757ac98988 1e757ac98988 1e757ac98988 b4f401524060 b4f401524060 b4f401524060 b4f401524060 b4f401524060 b4f401524060 b4f401524060 1e757ac98988 b4f401524060 b4f401524060 b4f401524060 ca2b21819dfd ca2b21819dfd ca2b21819dfd ca2b21819dfd 68f9c216377d ca2b21819dfd b4f401524060 c20adbaf16af c20adbaf16af c20adbaf16af b4f401524060 b4f401524060 c20adbaf16af c20adbaf16af c20adbaf16af c20adbaf16af c20adbaf16af b4f401524060 f91d3f9b7230 b4f401524060 b4f401524060 b4f401524060 b4f401524060 1e757ac98988 1e757ac98988 1e757ac98988 1af15d66838f 9dca99ffd495 9dca99ffd495 9dca99ffd495 9dca99ffd495 9dca99ffd495 9dca99ffd495 9dca99ffd495 9dca99ffd495 f91d3f9b7230 9dca99ffd495 9dca99ffd495 9dca99ffd495 9dca99ffd495 9dca99ffd495 1af15d66838f 1e757ac98988 c6b811f11c94 1e757ac98988 c6b811f11c94 1e757ac98988 f91d3f9b7230 b4f401524060 f91d3f9b7230 | ## -*- coding: utf-8 -*-
%if c.users_log:
<table>
<tr>
<th class="left">${_('Username')}</th>
<th class="left">${_('Action')}</th>
<th class="left">${_('Repository')}</th>
<th class="left">${_('Date')}</th>
<th class="left">${_('From IP')}</th>
</tr>
%for cnt,l in enumerate(c.users_log):
<tr class="parity${cnt%2}">
<td>
%if l.user is not None:
${h.link_to(l.user.username,h.url('edit_user', id=l.user.user_id))}
%else:
${l.username}
%endif
</td>
<td>${h.action_parser(l)[0]()}
<div class="journal_action_params">
${h.literal(h.action_parser(l)[1]())}
</div>
</td>
<td>
%if l.repository is not None:
${h.link_to(l.repository.repo_name,h.url('summary_home',repo_name=l.repository.repo_name))}
%else:
${l.repository_name}
%endif
</td>
<td>${h.fmt_date(l.action_date)}</td>
<td>${l.user_ip}</td>
</tr>
%endfor
</table>
<script type="text/javascript">
YUE.onDOMReady(function(){
YUE.delegate("user_log","click",function(e, matchedEl, container){
ypjax(e.target.href,"user_log",function(){
show_more_event();
tooltip_activate();
show_changeset_tooltip();
});
YUE.preventDefault(e);
},'.pager_link');
YUE.delegate("user_log","click",function(e,matchedEl,container){
var el = e.target;
YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
YUD.setStyle(el.parentNode,'display','none');
},'.show_more');
});
</script>
<div class="pagination-wh pagination-left">
${c.users_log.pager('$link_previous ~2~ $link_next')}
</div>
%else:
${_('No actions yet')}
%endif
|