Exemplo n.º 1
0
 def get_csv_rows(self, queryset, type, model):
     data = [self.get_csv_header()]
     total = queryset.count()
     processed = 0
     job = get_current_job()
     for asset in queryset:
         row = [
             'part',
         ] if asset.part_info else [
             'device',
         ]
         for item in self.columns:
             field = item.field
             if field:
                 nested_field_name = item.foreign_field_name
                 if nested_field_name == type:
                     cell = self.get_cell(getattr(asset, type), field,
                                          model)
                 elif nested_field_name == 'part_info':
                     cell = self.get_cell(asset.part_info, field, PartInfo)
                 elif nested_field_name == 'venture':
                     cell = self.get_cell(asset.venture, field, Venture)
                 elif nested_field_name == 'is_discovered':
                     cell = unicode(asset.is_discovered)
                 else:
                     cell = self.get_cell(asset, field, Asset)
                 row.append(unicode(cell))
         data.append(row)
         processed += 1
         set_progress(job, processed / total)
     set_progress(job, 1)
     return data
Exemplo n.º 2
0
 def get_csv_rows(self, queryset, type, model):
     data = [self.get_csv_header()]
     total = queryset.count()
     processed = 0
     job = get_current_job()
     for asset in queryset:
         row = ['part'] if asset.part_info else ['device']
         for item in self.columns:
             field = item.field
             if field:
                 nested_field_name = item.foreign_field_name
                 if nested_field_name == type:
                     cell = self.get_cell(
                         getattr(asset, type), field, model
                     )
                 elif nested_field_name == 'part_info':
                     cell = self.get_cell(asset.part_info, field, PartInfo)
                 elif nested_field_name == 'venture':
                     cell = self.get_cell(asset.venture, field, Venture)
                 elif nested_field_name == 'is_discovered':
                     cell = unicode(asset.is_discovered)
                 else:
                     cell = self.get_cell(asset, field, Asset)
                 row.append(unicode(cell))
         data.append(row)
         processed += 1
         set_progress(job, processed / total)
     set_progress(job, 1)
     return data
Exemplo n.º 3
0
 def get_result(self, request, *args, **kwargs):
     self.kwargs = kwargs
     if not self.user_allowed():
         messages.error(
             self.request,
             _("You don't have permission to view this."),
         )
         return HttpResponseRedirect('..')
     query = self.get_queryset()
     rows = [
         [
             'Id', 'Name', 'Venture', 'Role', 'Model', 'Data Center',
             'Rack', 'Position', 'Barcode', 'SN', 'Margin', 'Deprecation',
             'Price', 'Monthly Cost', 'Addresses', 'Management', 'Created',
             'Last Seen', 'Purchased', 'Warranty Expiration',
             'Support Expiration', 'Support Kind', 'Remarks'
         ],
     ]
     job = get_current_job()
     total = query.count()
     processed = 0
     for dev in query.all():
         show_tabs = set(_get_show_tabs(self.request, None, dev))
         row = [
             str(dev.id),
             dev.name or '' if 'info' in show_tabs else '',
             (dev.venture.symbol
              if dev.venture and 'info' in show_tabs else ''),
             (dev.venture_role.full_name
              if dev.venture_role and 'info' in show_tabs else ''),
             dev.get_model_name() or '' if 'info' in show_tabs else '',
             dev.dc or '' if 'info' in show_tabs else '',
             dev.rack or '' if 'info' in show_tabs else '',
             dev.get_position() if 'info' in show_tabs else '',
             dev.barcode or '' if 'info' in show_tabs else '',
             dev.sn or '' if 'info' in show_tabs else '',
             str(dev.get_margin()) + '%' if 'prices' in show_tabs else '',
             (dev.deprecation_kind.name
              if dev.deprecation_kind and 'prices' in show_tabs else ''),
             str(dev.cached_price) if 'prices' in show_tabs else '',
             str(dev.cached_cost) if 'costs' in show_tabs else '',
             ' '.join(ip.address for ip in dev.ipaddress_set.all())
             if 'info' in show_tabs else '',
             dev.management or '' if 'info' in show_tabs else '',
             dev.created or '' if 'history' in show_tabs else '',
             dev.last_seen or '' if 'history' in show_tabs else '',
             dev.purchase_date or '' if 'purchase' in show_tabs else '',
             (dev.warranty_expiration_date or ''
              if 'purchase' in show_tabs else ''),
             (dev.support_expiration_date or ''
              if 'purchase' in show_tabs else ''),
             dev.support_kind or '' if 'purchase' in show_tabs else '',
             dev.remarks or '' if 'info' in show_tabs else '',
         ]
         rows.append([unicode(r) for r in row])
         processed += 1
         set_progress(job, processed / total)
     set_progress(job, 1)
     return rows
Exemplo n.º 4
0
 def get_result(self, request, *args, **kwargs):
     self.kwargs = kwargs
     if not self.user_allowed():
         messages.error(
             self.request,
             _("You don't have permission to view this."),
         )
         return HttpResponseRedirect('..')
     query = self.get_queryset()
     rows = [
         ['Id', 'Name', 'Venture', 'Role', 'Model', 'Data Center', 'Rack',
          'Position', 'Barcode', 'SN', 'Margin', 'Deprecation', 'Price',
          'Monthly Cost', 'Addresses', 'Management', 'Created',
          'Last Seen', 'Purchased', 'Warranty Expiration',
          'Support Expiration', 'Support Kind', 'Remarks'],
     ]
     job = get_current_job()
     total = query.count()
     processed = 0
     for dev in query.all():
         show_tabs = set(_get_show_tabs(self.request, None, dev))
         row = [
             str(dev.id),
             dev.name or '' if 'info' in show_tabs else '',
             (
                 dev.venture.symbol if
                 dev.venture and 'info' in show_tabs else ''
             ),
             (dev.venture_role.full_name if dev.venture_role and
                 'info' in show_tabs else ''),
             dev.get_model_name() or '' if 'info' in show_tabs else '',
             dev.dc or '' if 'info' in show_tabs else '',
             dev.rack or '' if 'info' in show_tabs else '',
             dev.get_position() if 'info' in show_tabs else '',
             dev.barcode or '' if 'info' in show_tabs else '',
             dev.sn or '' if 'info' in show_tabs else '',
             str(dev.get_margin()) + '%' if 'prices' in show_tabs else '',
             (dev.deprecation_kind.name if dev.deprecation_kind and
                 'prices' in show_tabs else ''),
             str(dev.cached_price) if 'prices' in show_tabs else '',
             str(dev.cached_cost) if 'costs' in show_tabs else '',
             ' '.join(
                 ip.address for ip in dev.ipaddress_set.all()
             ) if 'info' in show_tabs else '',
             dev.management or '' if 'info' in show_tabs else '',
             dev.created or '' if 'history' in show_tabs else '',
             dev.last_seen or '' if 'history' in show_tabs else '',
             dev.purchase_date or '' if 'purchase' in show_tabs else '',
             (
                 dev.warranty_expiration_date or
                 '' if 'purchase' in show_tabs else ''
             ),
             (
                 dev.support_expiration_date or '' if
                 'purchase' in show_tabs else ''
             ),
             dev.support_kind or '' if 'purchase' in show_tabs else '',
             dev.remarks or '' if 'info' in show_tabs else '',
         ]
         rows.append([unicode(r) for r in row])
         processed += 1
         set_progress(job, processed / total)
     set_progress(job, 1)
     return rows