def get_can1_content_data(request, solarSystemID, closest_obj_id, stationID, hangarID, container1): solarSystemID = int(solarSystemID) closest_obj_id = int(closest_obj_id) stationID = int(stationID) hangarID = int(hangarID) container1 = int(container1) assets_query = Asset.objects.filter(solarSystemID=solarSystemID, stationID=stationID, hangarID=hangarID, container1=container1, container2=None) json_data = [] for a in assets_query.select_related(depth=1): item = {} try: icon = CATEGORY_ICONS[a.eve_type.categoryID] except: icon = 'item' if a.hasContents: item['data'] = a.eve_type.typeName ID = '%d_%d_%d_%d_%d_%d_' % (solarSystemID, closest_obj_id, stationID, hangarID, container1, a.itemID) item['attr'] = { 'id' : ID , 'rel' : icon , 'href' : '', 'class' : '%s-row' % icon } item['state'] = 'closed' elif a.singleton: item['data'] = a.eve_type.typeName item['attr'] = { 'rel' : icon , 'href' : '' } else: item['data'] = '%s <i>- (x %s)</i>' % (a.eve_type.typeName, print_integer(a.quantity)) item['attr'] = { 'rel' : icon , 'href' : '' } json_data.append(item) return HttpResponse(json.dumps(json_data))
def get_hangar_content_data(request, date_str, solarSystemID, stationID, hangarID): date = datetime.strptime(date_str, DATE_PATTERN) date = timezone.make_aware(date, timezone.utc) next_date = date + timedelta(seconds=1) assets_query = AssetDiff.objects.filter(solarSystemID=int(solarSystemID), stationID=int(stationID), hangarID=int(hangarID), date__range=(date, next_date)) jstree_data = [] for a in assets_query.select_related(depth=1): if a.quantity < 0: icon = 'removed' else: icon = 'added' jstree_data.append({ 'data': '%s <i>(%s)</i>' % (a.eve_type.typeName, print_integer(a.quantity)), 'attr' : { 'sort_key' : a.eve_type.typeName.lower(), 'rel' : icon, 'class' : '%s-row' % icon } }) return HttpResponse(json.dumps(jstree_data))
def get_hangar_content_data(request, date_str, solarSystemID, stationID, hangarID): date = datetime.strptime(date_str, DATE_PATTERN) date = timezone.make_aware(date, timezone.utc) next_date = date + timedelta(seconds=1) assets_query = AssetDiff.objects.filter(solarSystemID=int(solarSystemID), stationID=int(stationID), hangarID=int(hangarID), date__range=(date, next_date)) jstree_data = [] for a in assets_query.select_related(depth=1): if a.quantity < 0: icon = 'removed' else: icon = 'added' jstree_data.append({ 'data': '%s <i>(%s)</i>' % (a.eve_type.typeName, print_integer(a.quantity)), 'attr': { 'sort_key': a.eve_type.typeName.lower(), 'rel': icon, 'class': '%s-row' % icon } }) return HttpResponse(json.dumps(jstree_data))
def get_skills(member): all_skills = member.skills.all() if all_skills: skillpoint_count = all_skills.aggregate(Sum('skillpoints'))['skillpoints__sum'] skills_json = [] types = Type.objects.filter(published=1) for group in Group.objects.filter(category=16, published=1).order_by('groupName'): skills_in_group = member.skills.filter(eve_type__in=types.filter(group=group)) if skills_in_group: group_points = skills_in_group.aggregate(Sum('skillpoints'))['skillpoints__sum'] skillgroup = { 'data': GROUP_SPAN % (group, skills_in_group.count(), print_integer(group_points), ), 'attr': {'rel': 'group'}, 'children': [], } for skill in skills_in_group.order_by('eve_type__typeName'): skillgroup['children'].append({ 'data': SKILL_SPAN % (skill.eve_type.typeName, print_integer(skill.skillpoints), skill.level, ), 'attr': {'rel': 'skill'}, }) skills_json.append(skillgroup) else: skills_json = [] skillpoint_count = 0 return skills_json, all_skills.count(), skillpoint_count
def _build_jobs_tree(jobs): jobs_tree = [] for job in jobs: json_job = { 'data': JOB_SPAN % (job.activity_text, job.item.typeName, print_integer(job.runs)), 'attr': {'rel': job.activity_text.lower()}, } if job.children_jobs.all(): json_job['children'] = _build_jobs_tree(job.children_jobs.all()) jobs_tree.append(json_job) return jobs_tree
def get_hangar_content_data(request, solarSystemID, closest_obj_id, stationID, hangarID): solarSystemID = int(solarSystemID) closest_obj_id = int(closest_obj_id) stationID = int(stationID) hangarID = int(hangarID) assets_query = Asset.objects.filter(solarSystemID=solarSystemID, stationID=stationID, hangarID=hangarID, container1=None, container2=None) jstree_data = [] for a in assets_query.select_related(depth=1): try: icon = CATEGORY_ICONS[a.eve_type.categoryID] except KeyError: icon = 'item' if a.hasContents: data = a.eve_type.typeName if a.name and a.name != a.eve_type.typeName: data += ' "%s"' % a.name ID = '%d_%d_%d_%d_%d_' % (solarSystemID, closest_obj_id, stationID, hangarID, a.itemID) state = 'closed' elif a.singleton: data = a.eve_type.typeName ID = '' state = '' else: data = '%s <i>- (x %s)</i>' % (a.eve_type.typeName, print_integer(a.quantity)) ID = '' state = '' jstree_data.append({ 'data': data, 'attr': { 'id': ID, 'sort_key': a.eve_type.typeName.lower(), 'rel': icon }, 'state': state }) return HttpResponse(json.dumps(jstree_data))
def _build_jobs_tree(jobs): jobs_tree = [] for job in jobs: json_job = { 'data': JOB_SPAN % (job.activity_text, job.item.typeName, print_integer(job.runs)), 'attr': { 'rel': job.activity_text.lower() }, } if job.children_jobs.all(): json_job['children'] = _build_jobs_tree(job.children_jobs.all()) jobs_tree.append(json_job) return jobs_tree
def get_can1_content_data(request, solarSystemID, closest_obj_id, stationID, hangarID, container1): solarSystemID = int(solarSystemID) closest_obj_id = int(closest_obj_id) stationID = int(stationID) hangarID = int(hangarID) container1 = int(container1) assets_query = Asset.objects.filter(solarSystemID=solarSystemID, stationID=stationID, hangarID=hangarID, container1=container1, container2=None) json_data = [] for a in assets_query.select_related(depth=1): item = {} try: icon = CATEGORY_ICONS[a.eve_type.categoryID] except: icon = 'item' if a.hasContents: item['data'] = a.eve_type.typeName ID = '%d_%d_%d_%d_%d_%d_' % (solarSystemID, closest_obj_id, stationID, hangarID, container1, a.itemID) item['attr'] = { 'id': ID, 'rel': icon, 'href': '', 'class': '%s-row' % icon } item['state'] = 'closed' elif a.singleton: item['data'] = a.eve_type.typeName item['attr'] = {'rel': icon, 'href': ''} else: item['data'] = '%s <i>- (x %s)</i>' % (a.eve_type.typeName, print_integer(a.quantity)) item['attr'] = {'rel': icon, 'href': ''} json_data.append(item) return HttpResponse(json.dumps(json_data))
def get_hangar_content_data(request, solarSystemID, closest_obj_id, stationID, hangarID): solarSystemID = int(solarSystemID) closest_obj_id = int(closest_obj_id) stationID = int(stationID) hangarID = int(hangarID) assets_query = Asset.objects.filter(solarSystemID=solarSystemID, stationID=stationID, hangarID=hangarID, container1=None, container2=None) jstree_data = [] for a in assets_query.select_related(depth=1): try: icon = CATEGORY_ICONS[a.eve_type.categoryID] except KeyError: icon = 'item' if a.hasContents: data = a.eve_type.typeName if a.name and a.name != a.eve_type.typeName: data += ' "%s"' % a.name ID = '%d_%d_%d_%d_%d_' % (solarSystemID, closest_obj_id, stationID, hangarID, a.itemID) state = 'closed' elif a.singleton: data = a.eve_type.typeName ID = '' state = '' else: data = '%s <i>- (x %s)</i>' % (a.eve_type.typeName, print_integer(a.quantity)) ID = '' state = '' jstree_data.append({ 'data': data, 'attr' : { 'id' : ID, 'sort_key' : a.eve_type.typeName.lower(), 'rel' : icon }, 'state' : state }) return HttpResponse(json.dumps(jstree_data))
def get_can2_content_data(request, solarSystemID, closest_obj_id, stationID, hangarID, container1, container2): assets_query = Asset.objects.filter(solarSystemID=int(solarSystemID), stationID=int(stationID), hangarID=int(hangarID), container1=int(container1), container2=int(container2)) json_data = [] for a in assets_query.select_related(depth=1): item = {} try: icon = CATEGORY_ICONS[a.eve_type.category] except: icon = 'item' if a.singleton: item['data'] = a.eve_type.typeName else: item['data'] = '%s <i>- (x %s)</i>' % (a.eve_type.typeName, print_integer(a.quantity)) item['attr'] = { 'rel' : icon , 'href' : '' } json_data.append(item) return HttpResponse(json.dumps(json_data))
def get_can2_content_data(request, solarSystemID, closest_obj_id, stationID, hangarID, container1, container2): assets_query = Asset.objects.filter(solarSystemID=int(solarSystemID), stationID=int(stationID), hangarID=int(hangarID), container1=int(container1), container2=int(container2)) json_data = [] for a in assets_query.select_related(depth=1): item = {} try: icon = CATEGORY_ICONS[a.eve_type.category] except: icon = 'item' if a.singleton: item['data'] = a.eve_type.typeName else: item['data'] = '%s <i>- (x %s)</i>' % (a.eve_type.typeName, print_integer(a.quantity)) item['attr'] = {'rel': icon, 'href': ''} json_data.append(item) return HttpResponse(json.dumps(json_data))
if job.duration: duration = print_duration(job.duration, verbose=False) else: duration = '-' activity_icon = '<img src="%sindustry/img/%s.png" title="%s"/>' % (settings.STATIC_URL, job.activity_text.lower(), job.activity_text) data.append([ 'Job #%d' % job.id, job.state, job.id, job.order.permalink(shop=False), job.assignee_permalink(), duration, activity_icon, print_integer(round(job.runs)), job.item.typeName, ]) return datatable_ajax_data(data, params.sEcho, total, filtered) #------------------------------------------------------------------------------ @transaction.commit_on_success @check_user_access() def change_state(request, job_id, action): try: job = get_object_or_404(Job, pk=int(job_id)) except ValueError, e: return HttpResponseBadRequest(str(e)) if action == 'start':
def qty_diff_format(value): try: return unicode(print_integer(value, force_sign=True)) except: return unicode(value)
for job in query[params.first_id:params.last_id]: if job.duration: duration = print_duration(job.duration, verbose=False) else: duration = '-' activity_icon = '<img src="%sindustry/img/%s.png" title="%s"/>' % ( settings.STATIC_URL, job.activity_text.lower(), job.activity_text) data.append([ 'Job #%d' % job.id, job.state, job.id, job.order.permalink(shop=False), job.assignee_permalink(), duration, activity_icon, print_integer(round(job.runs)), job.item.typeName, ]) return datatable_ajax_data(data, params.sEcho, total, filtered) #------------------------------------------------------------------------------ @transaction.commit_on_success @check_user_access() def change_state(request, job_id, action): try: job = get_object_or_404(Job, pk=int(job_id)) except ValueError, e: return HttpResponseBadRequest(str(e))
total_entries = filtered_entries = query.count() entries = [] if params.grouped: item_group = query.values( 'typeID', 'rawQuantity', 'singleton', 'included').annotate(quantity=Sum('quantity')) total_entries = item_group.count() filtered_entries = total_entries for item in item_group[params.first_id:params.last_id]: item_type = Type.objects.get(typeID=item['typeID']) #cat_group = "%s / %s" % ( item_type.category.categoryName,item_type.group.groupName) entries.append([ item_type.typeName, #cat_group, print_integer(item['quantity']), _print_repackaged_volume(item_type), _print_repackaged_volume(item_type, item['quantity']), #_print_rawquantity(item['rawQuantity'], item['typeID']), _print_included(item['included']), ]) else: query = query[params.first_id:params.last_id] for contract_item in query: item_type = Type.objects.get(typeID=contract_item.typeID) #cat_group = "%s / %s" % ( item_type.category.categoryName,item_type.group.groupName) entries.append([ item_type.typeName, #cat_group, print_integer(contract_item.quantity), _print_repackaged_volume(item_type),
def details(request, characterID): avg_session = { 'sessionlength': 0, '30days': 0, '7days': 0, } now = timezone.now() try: member = Member.objects.get(characterID=int(characterID)) try: member.base = CelestialObject.objects.get(itemID=member.baseID).itemName except CelestialObject.DoesNotExist: member.base = str(member.baseID) member.color = ColorThreshold.get_access_color(member.accessLvl) member.roles_no_director = member.roles.exclude(roleID=1) # exclude 'director' query = MemberSession.objects.filter(character_id=member.characterID).order_by('session_begin') query_30 = query.filter(session_begin__gt=now - timedelta(30)) query_7 = query.filter(session_begin__gt=now - timedelta(7)) session_len = query.aggregate(len=Avg('session_seconds'))['len'] or 0 session_len_30 = query_30.aggregate(len=Avg('session_seconds'))['len'] or 0 session_len_7 = query_7.aggregate(len=Avg('session_seconds'))['len'] or 0 # Totals total = query.aggregate(len=Sum('session_seconds'))['len'] or 0 lastWeek = query_7.aggregate(len=Sum('session_seconds'))['len'] or 0 lastMonth = query_30.aggregate(len=Sum('session_seconds'))['len'] or 0 loginhistory = query.order_by('-session_begin')[:10] avg_session['sessionlength'] = timedelta(seconds=session_len) avg_session['30days'] = timedelta(seconds=session_len_30) avg_session['7days'] = timedelta(seconds=session_len_7) if member.corp_id == Corporation.objects.mine().corporationID: member.date = UpdateDate.get_latest(Member) else: try: d = MemberDiff.objects.filter(member=member, new=False).order_by("-id")[0] member.date = d.date except IndexError: member.date = 0 skills, skill_count, skillpoint_count = get_skills(member) except Member.DoesNotExist: member = Member(characterID=int(characterID), name="???") try: killboardUrl = Setting.get('corp_killboard_url') except Setting.DoesNotExist: killboardUrl = None data = { 'member' : member, 'killboardUrl' : killboardUrl, 'sessiondata' : avg_session, 'lastWeek' : lastWeek, 'lastMonth' : lastMonth, 'total' : total, 'logins' : loginhistory, 'skills_tree' : json.dumps(skills), 'skill_count' : skill_count, 'skillpoint_count' : print_integer(skillpoint_count), 'datatables_defaults': DATATABLES_DEFAULTS, 'access_columns' : ACCESS_CHANGES_COLUMNS, 'sorting' : [[2, 'desc']], } return render_to_response("ecm/hr/members/details.html", data, Ctx(request))
def marketorders_data(request): try: params = extract_datatable_params(request) REQ = request.GET if request.method == 'GET' else request.POST params.stateID = int(REQ.get('stateID', -1)) params.typeID = int(REQ.get('typeID', 0)) except: return HttpResponseBadRequest() query = MarketOrder.objects.all() # .order_by('-dateIssued') total_entries = query.count() search_args = Q() if params.search: types = _get_types(params.search) for type in types: #@ReservedAssignment search_args |= Q(typeID__exact=type.typeID) if params.stateID > -1: # States state = params.stateID search_args &= Q(orderState=state) # Types if params.typeID == 1: search_args &= Q(bid=True) elif params.typeID == 2: search_args &= Q(bid=False) query = query.filter(search_args) filtered_entries = query.count() if filtered_entries == None: total_entries = filtered_entries = query.count() # Apply sorting (if desc, set '-' in front of the column to sort) query = query.order_by(_get_sort_order(params)) query = query[params.first_id:params.last_id] entries = [] page_total = 0 # The total sell order sum for the current page (params.first_id:params.last_id) for entry in query: # Get the Type Name from Type eve_type = Type.objects.get(typeID=entry.typeID) # Get the owner of the order try: owner = Member.objects.get(characterID=entry.charID).permalink except Member.DoesNotExist: owner = entry.charID try: station = CelestialObject.objects.get(itemID=entry.stationID).itemName except CelestialObject.DoesNotExist: station = str(entry.stationID) page_total += entry.price * entry.volRemaining # Build the entry list entries.append([ entry.get_type, #entry.charID, owner, eve_type.typeName, print_float(entry.price), print_float(entry.price * entry.volRemaining), '%d days' % entry.duration, station, print_integer(entry.volEntered), print_integer(entry.volRemaining), print_integer(entry.minVolume), entry.state_html, entry.map_range ]) return datatable_ajax_data(entries, params.sEcho, total_entries, filtered_entries)
def qty_format(value): try: return unicode(print_integer(value)) except: return unicode(value)
materials = bp.bill_of_materials(activity=params.activityID, runs=1, round_result=True) materials.sort(key=lambda x: x.requiredTypeID) mat_table = [] for mat in materials: if mat.required_type.blueprint is not None: url = '/industry/catalog/items/%d/' % mat.requiredTypeID css = 'catalog-item' else: url = '/industry/catalog/supplies/%d/' % mat.requiredTypeID css = 'catalog-supply' mat_table.append([ mat.requiredTypeID, '<a href="%s" class="%s">%s</a>' % (url, css, mat.required_type.typeName), print_integer(mat.quantity), ]) return datatable_ajax_data(data=mat_table, echo=params.sEcho) #------------------------------------------------------------------------------ @check_user_access() def manufacturing_time(request, blueprint_id): """ Serves URL /industry/catalog/blueprint/<blueprint_id>/time/ """ try: bp = get_object_or_404(OwnedBlueprint, id=int(blueprint_id)) except (KeyError, ValueError), e: raise HttpResponseBadRequest(str(e)) duration = print_duration(bp.manufacturing_time())
if filtered_entries == None: total_entries = filtered_entries = query.count() entries = [] if params.grouped: item_group = query.values('typeID', 'rawQuantity', 'singleton', 'included').annotate(quantity=Sum('quantity')) total_entries = item_group.count() filtered_entries = total_entries for item in item_group[params.first_id:params.last_id]: item_type = Type.objects.get(typeID=item['typeID']) #cat_group = "%s / %s" % ( item_type.category.categoryName,item_type.group.groupName) entries.append([ item_type.typeName, #cat_group, print_integer(item['quantity']), _print_repackaged_volume(item_type), _print_repackaged_volume(item_type, item['quantity']), #_print_rawquantity(item['rawQuantity'], item['typeID']), _print_included(item['included']), ]) else: query = query[params.first_id:params.last_id] for contract_item in query: item_type = Type.objects.get(typeID=contract_item.typeID) #cat_group = "%s / %s" % ( item_type.category.categoryName,item_type.group.groupName) entries.append([ item_type.typeName, #cat_group, print_integer(contract_item.quantity), _print_repackaged_volume(item_type),
materials.sort(key=lambda x: x.requiredTypeID) mat_table = [] for mat in materials: if mat.required_type.blueprint is not None: url = '/industry/catalog/items/%d/' % mat.requiredTypeID css = 'catalog-item' else: url = '/industry/catalog/supplies/%d/' % mat.requiredTypeID css = 'catalog-supply' mat_table.append([ mat.requiredTypeID, '<a href="%s" class="%s">%s</a>' % (url, css, mat.required_type.typeName), print_integer(mat.quantity), ]) return datatable_ajax_data(data=mat_table, echo=params.sEcho) #------------------------------------------------------------------------------ @check_user_access() def manufacturing_time(request, blueprint_id): """ Serves URL /industry/catalog/blueprint/<blueprint_id>/time/ """ try: bp = get_object_or_404(OwnedBlueprint, id=int(blueprint_id)) except (KeyError, ValueError), e: raise HttpResponseBadRequest(str(e))