diff options
Diffstat (limited to 'bitbake/lib')
13 files changed, 161 insertions, 73 deletions
diff --git a/bitbake/lib/toaster/toastergui/static/css/default.css b/bitbake/lib/toaster/toastergui/static/css/default.css index e33f177e95..2c283feccf 100644 --- a/bitbake/lib/toaster/toastergui/static/css/default.css +++ b/bitbake/lib/toaster/toastergui/static/css/default.css | |||
| @@ -62,6 +62,9 @@ td a:hover { color: #000000; text-decoration: underline; } | |||
| 62 | .table tbody tr.error > td { background-color: #FFFFFF; } /* override default Bootstrap behaviour */ | 62 | .table tbody tr.error > td { background-color: #FFFFFF; } /* override default Bootstrap behaviour */ |
| 63 | .table-hover tbody tr.error:hover > td { background-color: #F5F5F5;} /* override default Bootstrap behaviour */ | 63 | .table-hover tbody tr.error:hover > td { background-color: #F5F5F5;} /* override default Bootstrap behaviour */ |
| 64 | 64 | ||
| 65 | /* Right justify Bootstrap table columns for size fields */ | ||
| 66 | .table .sizecol { text-align: right; } | ||
| 67 | |||
| 65 | /* Set error, warning, success and muted styles */ | 68 | /* Set error, warning, success and muted styles */ |
| 66 | .error, .red, td.error a, tr.error a { color: #b94a48; } | 69 | .error, .red, td.error a, tr.error a { color: #b94a48; } |
| 67 | a.error:hover, a.error:focus, tr.error a:hover { color: #943A38; text-decoration: underline; } | 70 | a.error:hover, a.error:focus, tr.error a:hover { color: #943A38; text-decoration: underline; } |
| @@ -127,4 +130,3 @@ select { width: auto; } | |||
| 127 | 130 | ||
| 128 | 131 | ||
| 129 | 132 | ||
| 130 | |||
diff --git a/bitbake/lib/toaster/toastergui/templates/bpackage.html b/bitbake/lib/toaster/toastergui/templates/bpackage.html index c6ec634f83..2d4948be4b 100644 --- a/bitbake/lib/toaster/toastergui/templates/bpackage.html +++ b/bitbake/lib/toaster/toastergui/templates/bpackage.html | |||
| @@ -64,7 +64,7 @@ | |||
| 64 | <!-- Package Version --> | 64 | <!-- Package Version --> |
| 65 | <td>{%if package.version%}<a href="{% url "package_built_detail" build.pk package.pk %}">{{package.version}}-{{package.revision}}</a>{%endif%}</td> | 65 | <td>{%if package.version%}<a href="{% url "package_built_detail" build.pk package.pk %}">{{package.version}}-{{package.revision}}</a>{%endif%}</td> |
| 66 | <!-- Package Size --> | 66 | <!-- Package Size --> |
| 67 | <td class="size">{{package.size|filtered_filesizeformat}}</td> | 67 | <td class="size sizecol">{{package.size|filtered_filesizeformat}}</td> |
| 68 | <!-- License --> | 68 | <!-- License --> |
| 69 | <td class="license">{{package.license}}</td> | 69 | <td class="license">{{package.license}}</td> |
| 70 | 70 | ||
diff --git a/bitbake/lib/toaster/toastergui/templates/dirinfo.html b/bitbake/lib/toaster/toastergui/templates/dirinfo.html index 9b76a1cb8c..749ae242ea 100644 --- a/bitbake/lib/toaster/toastergui/templates/dirinfo.html +++ b/bitbake/lib/toaster/toastergui/templates/dirinfo.html | |||
| @@ -76,7 +76,7 @@ | |||
| 76 | 76 | ||
| 77 | /* setup td specific formatting */ | 77 | /* setup td specific formatting */ |
| 78 | var link_to = td(o.link_to); | 78 | var link_to = td(o.link_to); |
| 79 | var size = td(o.size); | 79 | var size = '<td class = "sizecol">' + o.size + '</td>' |
| 80 | var permission = td(o.permission); | 80 | var permission = td(o.permission); |
| 81 | var owner = td(o.owner); | 81 | var owner = td(o.owner); |
| 82 | var group = td(o.group); | 82 | var group = td(o.group); |
diff --git a/bitbake/lib/toaster/toastergui/templates/package_built_dependencies.html b/bitbake/lib/toaster/toastergui/templates/package_built_dependencies.html index 4e86da519d..a0c5a1e4f0 100644 --- a/bitbake/lib/toaster/toastergui/templates/package_built_dependencies.html +++ b/bitbake/lib/toaster/toastergui/templates/package_built_dependencies.html | |||
| @@ -31,7 +31,7 @@ | |||
| 31 | <tr> | 31 | <tr> |
| 32 | <th>Package</th> | 32 | <th>Package</th> |
| 33 | <th>Version</th> | 33 | <th>Version</th> |
| 34 | <th>Size</th> | 34 | <th class="sizecol span2">Size</th> |
| 35 | </tr> | 35 | </tr> |
| 36 | </thead> | 36 | </thead> |
| 37 | <tbody> | 37 | <tbody> |
| @@ -49,7 +49,7 @@ | |||
| 49 | </td> | 49 | </td> |
| 50 | {% endif %} | 50 | {% endif %} |
| 51 | <td>{{runtime_dep.version}}</td> | 51 | <td>{{runtime_dep.version}}</td> |
| 52 | <td>{{runtime_dep.size|filtered_filesizeformat}}</td> | 52 | <td class="sizecol">{{runtime_dep.size|filtered_filesizeformat}}</td> |
| 53 | </tr> | 53 | </tr> |
| 54 | {% endfor %} | 54 | {% endfor %} |
| 55 | </tbody> | 55 | </tbody> |
| @@ -62,7 +62,7 @@ | |||
| 62 | <tr> | 62 | <tr> |
| 63 | <th>Package</th> | 63 | <th>Package</th> |
| 64 | <th>Version</th> | 64 | <th>Version</th> |
| 65 | <th>Size</th> | 65 | <th class="sizecol span2">Size</th> |
| 66 | <th> | 66 | <th> |
| 67 | <i class="icon-question-sign get-help" title="Five relationship types exist: recommends, suggests, provides, replaces and conflicts"></i> | 67 | <i class="icon-question-sign get-help" title="Five relationship types exist: recommends, suggests, provides, replaces and conflicts"></i> |
| 68 | Relationship type | 68 | Relationship type |
| @@ -84,7 +84,7 @@ | |||
| 84 | </td> | 84 | </td> |
| 85 | {% endif %} | 85 | {% endif %} |
| 86 | <td>{{other_dep.version}}</td> | 86 | <td>{{other_dep.version}}</td> |
| 87 | <td>{{other_dep.size|filtered_filesizeformat}}</td> | 87 | <td class="sizecol">{{other_dep.size|filtered_filesizeformat}}</td> |
| 88 | <td> | 88 | <td> |
| 89 | {{other_dep.dep_type_display}} | 89 | {{other_dep.dep_type_display}} |
| 90 | <i class="icon-question-sign get-help hover-help" title="{{other_dep.dep_type_help}}" ></i> | 90 | <i class="icon-question-sign get-help hover-help" title="{{other_dep.dep_type_help}}" ></i> |
diff --git a/bitbake/lib/toaster/toastergui/templates/package_built_detail.html b/bitbake/lib/toaster/toastergui/templates/package_built_detail.html index 3aa1b2a8a7..0fe01165da 100644 --- a/bitbake/lib/toaster/toastergui/templates/package_built_detail.html +++ b/bitbake/lib/toaster/toastergui/templates/package_built_detail.html | |||
| @@ -23,18 +23,12 @@ | |||
| 23 | <div class="alert alert-info"> | 23 | <div class="alert alert-info"> |
| 24 | <strong>{{package.fullpackagespec}}</strong> is <strong>not included</strong> in any image. This page shows you the files added to an image root file system if you include <strong>{{package.fullpackagespec}}</strong> in future builds. | 24 | <strong>{{package.fullpackagespec}}</strong> is <strong>not included</strong> in any image. This page shows you the files added to an image root file system if you include <strong>{{package.fullpackagespec}}</strong> in future builds. |
| 25 | </div> | 25 | </div> |
| 26 | <table class="table table-bordered table-hover"> | 26 | {% include "tablesort.html" %} |
| 27 | <thead> | ||
| 28 | <tr> | ||
| 29 | <th>File</th> | ||
| 30 | <th>Size</th> | ||
| 31 | </tr> | ||
| 32 | </thead> | ||
| 33 | <tbody> | 27 | <tbody> |
| 34 | {% for file in package.buildfilelist_package.all|dictsort:"path" %} | 28 | {% for file in objects %} |
| 35 | <tr> | 29 | <tr> |
| 36 | <td>{{file.path}}</td> | 30 | <td class="path">{{file.path}}</td> |
| 37 | <td>{{file.size|filtered_filesizeformat}}</td> | 31 | <td class="filesize sizecol">{{file.size|filtered_filesizeformat}}</td> |
| 38 | </tr> | 32 | </tr> |
| 39 | {% endfor %} | 33 | {% endfor %} |
| 40 | </tbody> | 34 | </tbody> |
diff --git a/bitbake/lib/toaster/toastergui/templates/package_included_dependencies.html b/bitbake/lib/toaster/toastergui/templates/package_included_dependencies.html index 9169ee95d4..642ca69568 100644 --- a/bitbake/lib/toaster/toastergui/templates/package_included_dependencies.html +++ b/bitbake/lib/toaster/toastergui/templates/package_included_dependencies.html | |||
| @@ -20,7 +20,7 @@ | |||
| 20 | <tr> | 20 | <tr> |
| 21 | <th>Package</th> | 21 | <th>Package</th> |
| 22 | <th>Version</th> | 22 | <th>Version</th> |
| 23 | <th>Size</th> | 23 | <th class='sizecol span2'>Size</th> |
| 24 | </tr> | 24 | </tr> |
| 25 | </thead> | 25 | </thead> |
| 26 | <tbody> | 26 | <tbody> |
| @@ -39,7 +39,7 @@ | |||
| 39 | </td> | 39 | </td> |
| 40 | {% endif %} | 40 | {% endif %} |
| 41 | <td>{{runtime_dep.version}} </td> | 41 | <td>{{runtime_dep.version}} </td> |
| 42 | <td>{{runtime_dep.size|filtered_filesizeformat}} </td> | 42 | <td class='sizecol'>{{runtime_dep.size|filtered_filesizeformat}} </td> |
| 43 | </tr> | 43 | </tr> |
| 44 | {% endfor %} | 44 | {% endfor %} |
| 45 | </tbody> | 45 | </tbody> |
| @@ -57,7 +57,7 @@ | |||
| 57 | <tr> | 57 | <tr> |
| 58 | <th>Package</th> | 58 | <th>Package</th> |
| 59 | <th>Version</th> | 59 | <th>Version</th> |
| 60 | <th>Size</th> | 60 | <th class='sizecol span2'>Size</th> |
| 61 | <th> | 61 | <th> |
| 62 | <i class="icon-question-sign get-help" title="Five relationship types exist: recommends, suggests, provides, replaces and conflicts"></i> | 62 | <i class="icon-question-sign get-help" title="Five relationship types exist: recommends, suggests, provides, replaces and conflicts"></i> |
| 63 | Relationship type | 63 | Relationship type |
| @@ -83,7 +83,7 @@ | |||
| 83 | </td> | 83 | </td> |
| 84 | {% endif %} | 84 | {% endif %} |
| 85 | <td>{{other_dep.version}} </td> | 85 | <td>{{other_dep.version}} </td> |
| 86 | <td>{{other_dep.size|filtered_filesizeformat}} </td> | 86 | <td class='sizecol'>{{other_dep.size|filtered_filesizeformat}} </td> |
| 87 | <td> | 87 | <td> |
| 88 | {{other_dep.dep_type_display}} | 88 | {{other_dep.dep_type_display}} |
| 89 | <i class="icon-question-sign get-help hover-help" title="{{other_dep.dep_type_help}}" ></i> | 89 | <i class="icon-question-sign get-help hover-help" title="{{other_dep.dep_type_help}}" ></i> |
diff --git a/bitbake/lib/toaster/toastergui/templates/package_included_detail.html b/bitbake/lib/toaster/toastergui/templates/package_included_detail.html index e89ebdf58c..d2aa26eefa 100644 --- a/bitbake/lib/toaster/toastergui/templates/package_included_detail.html +++ b/bitbake/lib/toaster/toastergui/templates/package_included_detail.html | |||
| @@ -17,22 +17,16 @@ | |||
| 17 | <div class="tab-content"> | 17 | <div class="tab-content"> |
| 18 | <div class="tab-pane active" id="files"> | 18 | <div class="tab-pane active" id="files"> |
| 19 | {% if packageFileCount > 0 %} | 19 | {% if packageFileCount > 0 %} |
| 20 | <table class="table table-bordered table-hover"> | 20 | {% include "tablesort.html" %} |
| 21 | <thead> | ||
| 22 | <tr> | ||
| 23 | <th>File</th> | ||
| 24 | <th>Size</th> | ||
| 25 | </tr> | ||
| 26 | </thead> | ||
| 27 | <tbody> | 21 | <tbody> |
| 28 | {% for file in package.buildfilelist_package.all|dictsort:"path" %} | 22 | {% for file in objects %} |
| 29 | <tr> | 23 | <tr> |
| 30 | <td> | 24 | <td class="path"> |
| 31 | <a href="{% url 'dirinfo_filepath' build.id target.id file.path %}"> | 25 | <a href="{% url 'dirinfo_filepath' build.id target.id file.path %}"> |
| 32 | {{file.path}} | 26 | {{file.path}} |
| 33 | </a> | 27 | </a> |
| 34 | </td> | 28 | </td> |
| 35 | <td>{{file.size|filtered_filesizeformat}}</td> | 29 | <td class="filesize sizecol" >{{file.size|filtered_filesizeformat}}</td> |
| 36 | </tr> | 30 | </tr> |
| 37 | {% endfor %} | 31 | {% endfor %} |
| 38 | </tbody> | 32 | </tbody> |
diff --git a/bitbake/lib/toaster/toastergui/templates/package_included_reverse_dependencies.html b/bitbake/lib/toaster/toastergui/templates/package_included_reverse_dependencies.html index 1efcb1a610..a36464cad5 100644 --- a/bitbake/lib/toaster/toastergui/templates/package_included_reverse_dependencies.html +++ b/bitbake/lib/toaster/toastergui/templates/package_included_reverse_dependencies.html | |||
| @@ -20,21 +20,14 @@ | |||
| 20 | <strong>{{package.fullpackagespec}}</strong> has no reverse runtime dependencies. | 20 | <strong>{{package.fullpackagespec}}</strong> has no reverse runtime dependencies. |
| 21 | </div> | 21 | </div> |
| 22 | {% else %} | 22 | {% else %} |
| 23 | <table class="table table-bordered table-hover"> | 23 | {% include "tablesort.html" %} |
| 24 | <thead> | ||
| 25 | <tr> | ||
| 26 | <th>Package</th> | ||
| 27 | <th>Version</th> | ||
| 28 | <th>Size</th> | ||
| 29 | </tr> | ||
| 30 | </thead> | ||
| 31 | <tbody> | 24 | <tbody> |
| 32 | {% for reverse_dep in reverse_deps|dictsort:"name" %} | 25 | {% for reverse_dep in objects %} |
| 33 | <tr {{reverse_dep.size|format_vpackage_rowclass}} > | 26 | <tr {{reverse_dep.size|format_vpackage_rowclass}} > |
| 34 | {% if reverse_dep.size != -1 %} | 27 | {% if reverse_dep.size != -1 %} |
| 35 | <td> | 28 | <td> |
| 36 | <a href="{% url 'package_included_detail' build.id target.id reverse_dep.dependent_id %}"> | 29 | <a href="{% url 'package_included_detail' build.id target.id reverse_dep.package_id %}"> |
| 37 | {{reverse_dep.name}} | 30 | {{reverse_dep.package.name}} |
| 38 | </a> | 31 | </a> |
| 39 | <script>fmtAliasHelp("{{reverse_dep.name}}", "{{reverse_dep.alias}}", true)</script> | 32 | <script>fmtAliasHelp("{{reverse_dep.name}}", "{{reverse_dep.alias}}", true)</script> |
| 40 | </td> | 33 | </td> |
| @@ -44,8 +37,8 @@ | |||
| 44 | </td> | 37 | </td> |
| 45 | {% endif %} | 38 | {% endif %} |
| 46 | 39 | ||
| 47 | <td>{{reverse_dep.version}} </td> | 40 | <td>{{reverse_dep.package.version}} </td> |
| 48 | <td>{{reverse_dep.size|filtered_filesizeformat}} </td> | 41 | <td class='sizecol'>{{reverse_dep.package.size|filtered_filesizeformat}} </td> |
| 49 | </tr> | 42 | </tr> |
| 50 | {% endfor %} | 43 | {% endfor %} |
| 51 | </tbody> | 44 | </tbody> |
diff --git a/bitbake/lib/toaster/toastergui/templates/recipe.html b/bitbake/lib/toaster/toastergui/templates/recipe.html index c846aa9340..6e9cd23424 100644 --- a/bitbake/lib/toaster/toastergui/templates/recipe.html +++ b/bitbake/lib/toaster/toastergui/templates/recipe.html | |||
| @@ -149,7 +149,7 @@ | |||
| 149 | <th> | 149 | <th> |
| 150 | Version | 150 | Version |
| 151 | </th> | 151 | </th> |
| 152 | <th> | 152 | <th class="sizecol span2"> |
| 153 | Size | 153 | Size |
| 154 | </th> | 154 | </th> |
| 155 | </tr> | 155 | </tr> |
| @@ -161,7 +161,7 @@ | |||
| 161 | <tr> | 161 | <tr> |
| 162 | <td><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.name}}</a></td> | 162 | <td><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.name}}</a></td> |
| 163 | <td><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.version}}_{{package.revision}}</a></td> | 163 | <td><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.version}}_{{package.revision}}</a></td> |
| 164 | <td><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.size|filtered_filesizeformat}}</a></td> | 164 | <td class="sizecol"><a href="{% url "package_built_detail" build.pk package.pk %}">{{package.size|filtered_filesizeformat}}</a></td> |
| 165 | </tr> | 165 | </tr> |
| 166 | 166 | ||
| 167 | {% endfor %} | 167 | {% endfor %} |
diff --git a/bitbake/lib/toaster/toastergui/templates/tablesort.html b/bitbake/lib/toaster/toastergui/templates/tablesort.html new file mode 100644 index 0000000000..bf311b6edd --- /dev/null +++ b/bitbake/lib/toaster/toastergui/templates/tablesort.html | |||
| @@ -0,0 +1,38 @@ | |||
| 1 | {% load projecttags %} | ||
| 2 | <!-- component to display a generic table --> | ||
| 3 | {% if disable_sort %} | ||
| 4 | <table class="table table-bordered table-hover" id="detail_table"> | ||
| 5 | <thead> | ||
| 6 | <tr> | ||
| 7 | {% for tc in tablecols %} | ||
| 8 | <th class="{{tc.dclass}} {{tc.clclass}}"> | ||
| 9 | {%if tc.qhelp%}<i class="icon-question-sign get-help" title="{{tc.qhelp}}"></i>{%endif%} | ||
| 10 | {{tc.name}} | ||
| 11 | </th> | ||
| 12 | {% endfor %} | ||
| 13 | </tr> | ||
| 14 | </thead> | ||
| 15 | {% else %} | ||
| 16 | <table class="table table-bordered table-hover tablesorter" id="otable"> | ||
| 17 | <thead> | ||
| 18 | <!-- Table header row; generated from "tablecols" entry in the context dict --> | ||
| 19 | <tr> | ||
| 20 | {% for tc in tablecols %} | ||
| 21 | <th class="{{tc.dclass}} {{tc.clclass}}"> | ||
| 22 | {%if tc.qhelp%}<i class="icon-question-sign get-help" title="{{tc.qhelp}}"></i>{%endif%} | ||
| 23 | {%if tc.orderfield%} | ||
| 24 | <a {%if tc.ordericon%} class="sorted" {%endif%} | ||
| 25 | href="javascript:reload_params({'page': 1, 'orderby' : '{{tc.orderfield}}' })" > | ||
| 26 | {{tc.name}} | ||
| 27 | </a> | ||
| 28 | {%else%} | ||
| 29 | <span class="muted"> | ||
| 30 | {{tc.name}} | ||
| 31 | </span> | ||
| 32 | {%endif%} | ||
| 33 | {%if tc.ordericon%} <i class="icon-caret-{{tc.ordericon}}"></i>{%endif%} | ||
| 34 | </th> | ||
| 35 | {% endfor %} | ||
| 36 | </tr> | ||
| 37 | </thead> | ||
| 38 | {% endif %} | ||
diff --git a/bitbake/lib/toaster/toastergui/templates/target.html b/bitbake/lib/toaster/toastergui/templates/target.html index 5db0c0ccb5..3a0c4d7998 100644 --- a/bitbake/lib/toaster/toastergui/templates/target.html +++ b/bitbake/lib/toaster/toastergui/templates/target.html | |||
| @@ -79,10 +79,10 @@ | |||
| 79 | {{package.version|filtered_packageversion:package.revision}} | 79 | {{package.version|filtered_packageversion:package.revision}} |
| 80 | </a> | 80 | </a> |
| 81 | </td> | 81 | </td> |
| 82 | <td class="package_size"> | 82 | <td class="package-size sizecol"> |
| 83 | {{package.size|filtered_installedsize:package.installed_size|filtered_filesizeformat}} | 83 | {{package.size|filtered_installedsize:package.installed_size|filtered_filesizeformat}} |
| 84 | </td> | 84 | </td> |
| 85 | <td class="size_over_total"> | 85 | <td class="size_over_total sizecol"> |
| 86 | {{package|filter_sizeovertotal:packages_sum}} | 86 | {{package|filter_sizeovertotal:packages_sum}} |
| 87 | </td> | 87 | </td> |
| 88 | <td class="license"> | 88 | <td class="license"> |
diff --git a/bitbake/lib/toaster/toastergui/templatetags/projecttags.py b/bitbake/lib/toaster/toastergui/templatetags/projecttags.py index e8634574c0..be75b214ac 100644 --- a/bitbake/lib/toaster/toastergui/templatetags/projecttags.py +++ b/bitbake/lib/toaster/toastergui/templatetags/projecttags.py | |||
| @@ -118,7 +118,7 @@ def filtered_filesizeformat(value): | |||
| 118 | if value == -1: | 118 | if value == -1: |
| 119 | return '' | 119 | return '' |
| 120 | 120 | ||
| 121 | return filesizeformat(value).replace("bytes", "B").replace(".0", "") | 121 | return filesizeformat(value).replace("bytes", "B") |
| 122 | 122 | ||
| 123 | @register.filter | 123 | @register.filter |
| 124 | def filtered_packagespec(value): | 124 | def filtered_packagespec(value): |
diff --git a/bitbake/lib/toaster/toastergui/views.py b/bitbake/lib/toaster/toastergui/views.py index f5fa72e610..36eb0bf97e 100644 --- a/bitbake/lib/toaster/toastergui/views.py +++ b/bitbake/lib/toaster/toastergui/views.py | |||
| @@ -563,13 +563,13 @@ def target(request, build_id, target_id): | |||
| 563 | 'qhelp':'The size of the package', | 563 | 'qhelp':'The size of the package', |
| 564 | 'orderfield': _get_toggle_order(request, "size", True), | 564 | 'orderfield': _get_toggle_order(request, "size", True), |
| 565 | 'ordericon':_get_toggle_order_icon(request, "size"), | 565 | 'ordericon':_get_toggle_order_icon(request, "size"), |
| 566 | 'clclass': 'package_size', | 566 | 'clclass': 'package_size span2', |
| 567 | 'hidden' : 0, | 567 | 'hidden' : 0, |
| 568 | }, | 568 | }, |
| 569 | { | 569 | { |
| 570 | 'name':'Size over total (%)', | 570 | 'name':'Size over total (%)', |
| 571 | 'qhelp':'Proportion of the overall included package size represented by this package', | 571 | 'qhelp':'Proportion of the overall included package size represented by this package', |
| 572 | 'clclass': 'size_over_total', | 572 | 'clclass': 'size_over_total span2', |
| 573 | 'hidden' : 1, | 573 | 'hidden' : 1, |
| 574 | }, | 574 | }, |
| 575 | { | 575 | { |
| @@ -1254,7 +1254,7 @@ def bpackage(request, build_id): | |||
| 1254 | 'qhelp':'The size of the package', | 1254 | 'qhelp':'The size of the package', |
| 1255 | 'orderfield': _get_toggle_order(request, "size", True), | 1255 | 'orderfield': _get_toggle_order(request, "size", True), |
| 1256 | 'ordericon':_get_toggle_order_icon(request, "size"), | 1256 | 'ordericon':_get_toggle_order_icon(request, "size"), |
| 1257 | 'clclass': 'size', 'hidden': 0, | 1257 | 'clclass': 'size span2', 'hidden': 0, |
| 1258 | }, | 1258 | }, |
| 1259 | { | 1259 | { |
| 1260 | 'name':'License', | 1260 | 'name':'License', |
| @@ -1456,13 +1456,40 @@ def package_built_detail(request, build_id, package_id): | |||
| 1456 | template = "package_built_detail.html" | 1456 | template = "package_built_detail.html" |
| 1457 | if Build.objects.filter(pk=build_id).count() == 0 : | 1457 | if Build.objects.filter(pk=build_id).count() == 0 : |
| 1458 | return redirect(builds) | 1458 | return redirect(builds) |
| 1459 | |||
| 1460 | # follow convention for pagination w/ search although not used for this view | ||
| 1461 | queryset = Package_File.objects.filter(package_id__exact=package_id) | ||
| 1462 | mandatory_parameters = { 'count': 25, 'page' : 1, 'orderby':'path:+'}; | ||
| 1463 | retval = _verify_parameters( request.GET, mandatory_parameters ) | ||
| 1464 | if retval: | ||
| 1465 | return _redirect_parameters( 'package_built_detail', request.GET, mandatory_parameters, build_id = build_id, package_id = package_id) | ||
| 1466 | |||
| 1467 | (filter_string, search_term, ordering_string) = _search_tuple(request, Package_File) | ||
| 1468 | paths = _get_queryset(Package_File, queryset, filter_string, search_term, ordering_string, 'path') | ||
| 1469 | |||
| 1459 | package = Package.objects.filter(pk=package_id)[0] | 1470 | package = Package.objects.filter(pk=package_id)[0] |
| 1460 | package.fullpackagespec = _get_fullpackagespec(package) | 1471 | package.fullpackagespec = _get_fullpackagespec(package) |
| 1461 | context = { | 1472 | context = { |
| 1462 | 'build' : Build.objects.filter(pk=build_id)[0], | 1473 | 'build' : Build.objects.filter(pk=build_id)[0], |
| 1463 | 'package' : package, | 1474 | 'package' : package, |
| 1464 | 'dependency_count' : _get_package_dependency_count(package, -1, False), | 1475 | 'dependency_count' : _get_package_dependency_count(package, -1, False), |
| 1476 | 'objects' : paths, | ||
| 1477 | 'tablecols':[ | ||
| 1478 | { | ||
| 1479 | 'name':'File', | ||
| 1480 | 'orderfield': _get_toggle_order(request, "path"), | ||
| 1481 | 'ordericon':_get_toggle_order_icon(request, "path"), | ||
| 1482 | }, | ||
| 1483 | { | ||
| 1484 | 'name':'Size', | ||
| 1485 | 'orderfield': _get_toggle_order(request, "size", True), | ||
| 1486 | 'ordericon':_get_toggle_order_icon(request, "size"), | ||
| 1487 | 'dclass': 'sizecol span2', | ||
| 1488 | }, | ||
| 1489 | ] | ||
| 1465 | } | 1490 | } |
| 1491 | if paths.all().count() < 2: | ||
| 1492 | context['disable_sort'] = True; | ||
| 1466 | return render(request, template, context) | 1493 | return render(request, template, context) |
| 1467 | 1494 | ||
| 1468 | def package_built_dependencies(request, build_id, package_id): | 1495 | def package_built_dependencies(request, build_id, package_id): |
| @@ -1488,6 +1515,17 @@ def package_included_detail(request, build_id, target_id, package_id): | |||
| 1488 | if Build.objects.filter(pk=build_id).count() == 0 : | 1515 | if Build.objects.filter(pk=build_id).count() == 0 : |
| 1489 | return redirect(builds) | 1516 | return redirect(builds) |
| 1490 | 1517 | ||
| 1518 | |||
| 1519 | # follow convention for pagination w/ search although not used for this view | ||
| 1520 | mandatory_parameters = { 'count': 25, 'page' : 1, 'orderby':'path:+'}; | ||
| 1521 | retval = _verify_parameters( request.GET, mandatory_parameters ) | ||
| 1522 | if retval: | ||
| 1523 | return _redirect_parameters( 'package_included_detail', request.GET, mandatory_parameters, build_id = build_id, target_id = target_id, package_id = package_id) | ||
| 1524 | (filter_string, search_term, ordering_string) = _search_tuple(request, Package_File) | ||
| 1525 | |||
| 1526 | queryset = Package_File.objects.filter(package_id__exact=package_id) | ||
| 1527 | paths = _get_queryset(Package_File, queryset, filter_string, search_term, ordering_string, 'path') | ||
| 1528 | |||
| 1491 | package = Package.objects.filter(pk=package_id)[0] | 1529 | package = Package.objects.filter(pk=package_id)[0] |
| 1492 | package.fullpackagespec = _get_fullpackagespec(package) | 1530 | package.fullpackagespec = _get_fullpackagespec(package) |
| 1493 | package.alias = _get_package_alias(package) | 1531 | package.alias = _get_package_alias(package) |
| @@ -1497,8 +1535,24 @@ def package_included_detail(request, build_id, target_id, package_id): | |||
| 1497 | 'target' : target, | 1535 | 'target' : target, |
| 1498 | 'package' : package, | 1536 | 'package' : package, |
| 1499 | 'reverse_count' : _get_package_reverse_dep_count(package, target_id), | 1537 | 'reverse_count' : _get_package_reverse_dep_count(package, target_id), |
| 1500 | 'dependency_count' : _get_package_dependency_count(package, target_id, True) | 1538 | 'dependency_count' : _get_package_dependency_count(package, target_id, True), |
| 1539 | 'objects': paths, | ||
| 1540 | 'tablecols':[ | ||
| 1541 | { | ||
| 1542 | 'name':'File', | ||
| 1543 | 'orderfield': _get_toggle_order(request, "path"), | ||
| 1544 | 'ordericon':_get_toggle_order_icon(request, "path"), | ||
| 1545 | }, | ||
| 1546 | { | ||
| 1547 | 'name':'Size', | ||
| 1548 | 'orderfield': _get_toggle_order(request, "size", True), | ||
| 1549 | 'ordericon':_get_toggle_order_icon(request, "size"), | ||
| 1550 | 'dclass': 'sizecol span2', | ||
| 1551 | }, | ||
| 1552 | ] | ||
| 1501 | } | 1553 | } |
| 1554 | if paths.all().count() < 2: | ||
| 1555 | context['disable_sort'] = True; | ||
| 1502 | return render(request, template, context) | 1556 | return render(request, template, context) |
| 1503 | 1557 | ||
| 1504 | def package_included_dependencies(request, build_id, target_id, package_id): | 1558 | def package_included_dependencies(request, build_id, target_id, package_id): |
| @@ -1528,36 +1582,49 @@ def package_included_reverse_dependencies(request, build_id, target_id, package_ | |||
| 1528 | if Build.objects.filter(pk=build_id).count() == 0 : | 1582 | if Build.objects.filter(pk=build_id).count() == 0 : |
| 1529 | return redirect(builds) | 1583 | return redirect(builds) |
| 1530 | 1584 | ||
| 1585 | mandatory_parameters = { 'count': 25, 'page' : 1, 'orderby':'package__name:+'}; | ||
| 1586 | retval = _verify_parameters( request.GET, mandatory_parameters ) | ||
| 1587 | if retval: | ||
| 1588 | return _redirect_parameters( 'package_included_reverse_dependencies', request.GET, mandatory_parameters, build_id = build_id, target_id = target_id, package_id = package_id) | ||
| 1589 | (filter_string, search_term, ordering_string) = _search_tuple(request, Package_File) | ||
| 1590 | |||
| 1591 | queryset = Package_Dependency.objects.select_related('depends_on__name', 'depends_on__size').filter(depends_on=package_id, target_id=target_id, dep_type=Package_Dependency.TYPE_TRDEPENDS) | ||
| 1592 | objects = _get_queryset(Package_Dependency, queryset, filter_string, search_term, ordering_string, 'package__name') | ||
| 1593 | |||
| 1531 | package = Package.objects.filter(pk=package_id)[0] | 1594 | package = Package.objects.filter(pk=package_id)[0] |
| 1532 | package.fullpackagespec = _get_fullpackagespec(package) | 1595 | package.fullpackagespec = _get_fullpackagespec(package) |
| 1533 | package.alias = _get_package_alias(package) | 1596 | package.alias = _get_package_alias(package) |
| 1534 | target = Target.objects.filter(pk=target_id)[0] | 1597 | target = Target.objects.filter(pk=target_id)[0] |
| 1535 | 1598 | for o in objects: | |
| 1536 | reverse_deps = [] | 1599 | if o.package.version != '': |
| 1537 | alldeps = package.package_dependencies_target.filter(target_id__exact=target_id) | 1600 | o.package.version += '-' + o.package.revision |
| 1538 | for idep in alldeps: | 1601 | o.alias = _get_package_alias(o.package) |
| 1539 | dep_package = Package.objects.get(pk=idep.package_id) | ||
| 1540 | version = dep_package.version | ||
| 1541 | if version != '' : | ||
| 1542 | version += '-' + dep_package.revision | ||
| 1543 | dep = { | ||
| 1544 | 'name' : dep_package.name, | ||
| 1545 | 'alias' : _get_package_alias(dep_package), | ||
| 1546 | 'dependent_id' : dep_package.id, | ||
| 1547 | 'version' : version, | ||
| 1548 | 'size' : dep_package.size | ||
| 1549 | } | ||
| 1550 | if idep.dep_type == Package_Dependency.TYPE_TRDEPENDS : | ||
| 1551 | reverse_deps.append(dep) | ||
| 1552 | |||
| 1553 | context = { | 1602 | context = { |
| 1554 | 'build' : Build.objects.filter(pk=build_id)[0], | 1603 | 'build' : Build.objects.filter(pk=build_id)[0], |
| 1555 | 'package' : package, | 1604 | 'package' : package, |
| 1556 | 'target' : target, | 1605 | 'target' : target, |
| 1557 | 'reverse_deps' : reverse_deps, | 1606 | 'objects' : objects, |
| 1558 | 'reverse_count' : _get_package_reverse_dep_count(package, target_id), | 1607 | 'reverse_count' : _get_package_reverse_dep_count(package, target_id), |
| 1559 | 'dependency_count' : _get_package_dependency_count(package, target_id, True) | 1608 | 'dependency_count' : _get_package_dependency_count(package, target_id, True), |
| 1609 | 'tablecols':[ | ||
| 1610 | { | ||
| 1611 | 'name':'Package', | ||
| 1612 | 'orderfield': _get_toggle_order(request, "package__name"), | ||
| 1613 | 'ordericon': _get_toggle_order_icon(request, "package__name"), | ||
| 1614 | }, | ||
| 1615 | { | ||
| 1616 | 'name':'Version', | ||
| 1617 | }, | ||
| 1618 | { | ||
| 1619 | 'name':'Size', | ||
| 1620 | 'orderfield': _get_toggle_order(request, "package__size", True), | ||
| 1621 | 'ordericon': _get_toggle_order_icon(request, "package__size"), | ||
| 1622 | 'dclass': 'sizecol span2', | ||
| 1623 | }, | ||
| 1624 | ] | ||
| 1560 | } | 1625 | } |
| 1626 | if objects.all().count() < 2: | ||
| 1627 | context['disable_sort'] = True; | ||
| 1561 | return render(request, template, context) | 1628 | return render(request, template, context) |
| 1562 | 1629 | ||
| 1563 | def image_information_dir(request, build_id, target_id, packagefile_id): | 1630 | def image_information_dir(request, build_id, target_id, packagefile_id): |
