コード例 #1
0
ファイル: forms.py プロジェクト: ScotSalmon/electusmatari.com
 def clean(self, data):
     data = super(StationField, self).clean(data)
     data = data.strip()
     stationid = get_itemid(data)
     if stationid is None:
         raise forms.ValidationError('Station not found')
     return get_itemname(stationid)
コード例 #2
0
def marketorders_edit(request, orderid=None):
    if orderid is None:
        instance = None
        forcorp = False
    else:
        instance = get_object_or_404(WantedMarketOrder, pk=orderid)
        forcorp = instance.forcorp
    if request.method == "POST":
        form = WantedMarketOrderForm(request.POST, instance=instance)
        if form.is_valid():
            wmo = form.save(commit=False)
            wmo.characterid = request.user.profile.characterid
            wmo.charactername = request.user.profile.name
            wmo.stationid = get_itemid(wmo.stationname)
            wmo.typeid = get_typeid(wmo.typename)
            wmo.save()
            messages.add_message(request, messages.SUCCESS, "Order requests updated")
            if wmo.forcorp or forcorp:
                Change.objects.create(
                    app="industry",
                    category="order",
                    text=(
                        "%s edited the order for "
                        "%s at %s" % (request.user.profile.name, wmo.typename, wmo.stationname)
                    ),
                )
            return HttpResponseRedirect("/industry/marketorders/config/")
    else:
        form = WantedMarketOrderForm(instance=instance)
    return direct_to_template(
        request, "industry/marketconfig_edit.html", extra_context={"form": form, "instance": instance}
    )
コード例 #3
0
ファイル: views.py プロジェクト: electusmatari/legacy
def marketorders_edit(request, orderid=None):
    if orderid is None:
        instance = None
        forcorp = False
    else:
        instance = get_object_or_404(WantedMarketOrder, pk=orderid)
        forcorp = instance.forcorp
    if request.method == 'POST':
        form = WantedMarketOrderForm(request.POST, instance=instance)
        if form.is_valid():
            wmo = form.save(commit=False)
            wmo.characterid = request.user.profile.characterid
            wmo.charactername = request.user.profile.name
            wmo.stationid = get_itemid(wmo.stationname)
            wmo.typeid = get_typeid(wmo.typename)
            wmo.save()
            messages.add_message(request, messages.SUCCESS,
                                 'Order requests updated')
            if wmo.forcorp or forcorp:
                Change.objects.create(app='industry',
                                      category='order',
                                      text=('%s edited the order for '
                                            '%s at %s' %
                                            (request.user.profile.name,
                                             wmo.typename,
                                             wmo.stationname)))
            return HttpResponseRedirect('/industry/marketorders/config/')
    else:
        form = WantedMarketOrderForm(instance=instance)
    return direct_to_template(request, 'industry/marketconfig_edit.html',
                              extra_context={'form': form,
                                             'instance': instance})
コード例 #4
0
ファイル: views.py プロジェクト: electusmatari/legacy
def view_auto(request):
    isigb = 'EVE-IGB' in request.META.get('HTTP_USER_AGENT', '')
    regionname = request.META.get('HTTP_EVE_REGIONNAME', None)
    regionid = dbutils.get_itemid(regionname)
    return direct_to_template(
        request, 'uploader/auto.html',
        extra_context={'isigb': isigb,
                       'regionid': regionid,
                       'regionname': regionname,
                       })
コード例 #5
0
ファイル: views.py プロジェクト: electusmatari/legacy
def stocks_edit(request, stockid=None):
    if stockid is None:
        instance = None
        oldhigh = None
    else:
        instance = get_object_or_404(StockLevel, pk=stockid)
        oldhigh = instance.high
    if request.method == 'POST':
        form = StockLevelForm(request.POST, instance=instance)
        if form.is_valid():
            sl = form.save(commit=False)
            sl.stationid = get_itemid(sl.stationname)
            sl.typeid = get_typeid(sl.typename)
            try:
                sl.save()
            except IntegrityError:
                transaction.rollback()
                messages.add_message(request, messages.ERROR,
                                     'Stock level already exists')
                return HttpResponseRedirect('/industry/stocks/')
            try:
                st = Stock.objects.get(typeid=sl.typeid,
                                       stationid=sl.stationid)
            except Stock.DoesNotExist:
                pass
            else:
                st.level = sl
                st.save()
            Change.objects.create(app='industry',
                                  category='stocks',
                                  text=('%s updated the stock level for %s '
                                        'at %s from %s to %s' %
                                        (request.user.profile.name,
                                         sl.typename,
                                         sl.stationname,
                                         oldhigh,
                                         sl.high)))
            messages.add_message(request, messages.SUCCESS,
                                 'Stock level updated')
            return HttpResponseRedirect('/industry/stocks/')
    else:
        form = StockLevelForm(instance=instance)
    return direct_to_template(request, 'industry/stocks_edit.html',
                              extra_context={'form': form,
                                             'instance': instance})
コード例 #6
0
ファイル: views.py プロジェクト: electusmatari/legacy
def json_suggest_markethistory(request):
    regionname = request.META.get('HTTP_EVE_REGIONNAME', None)
    if regionname is None:
        return HttpResponse(json.dumps([]), content_type="text/json")
    regionid = dbutils.get_itemid(regionname)
    result = []
    c = connection.cursor()
    c.execute("""
SELECT t.typeid,
       (SELECT MAX(h.cachetimestamp AT TIME ZONE 'UTC')
        FROM uploader_markethistorylastupload h
        WHERE regionid = %s
          AND h.typeid = t.typeid) AS timestamp
FROM index_index t
WHERE NOT t.refineable
ORDER BY timestamp ASC, t.typeid ASC
""", (regionid,))
    midnight = datetime.datetime.utcnow().replace(hour=0, minute=0, second=0,
                                                  microsecond=0)
    result = [typeid for (typeid, timestamp) in c.fetchall()
              if timestamp is None or timestamp < midnight]
    return HttpResponse(json.dumps(result), content_type="text/json")
コード例 #7
0
ファイル: views.py プロジェクト: electusmatari/legacy
def json_suggest_marketorders(request):
    regionname = request.META.get('HTTP_EVE_REGIONNAME', None)
    if regionname is None:
        return HttpResponse(json.dumps([]), content_type="text/json")
    regionid = dbutils.get_itemid(regionname)
    c = connection.cursor()
    c.execute("""
SELECT typeid,
       (SELECT MIN(DATE_PART('days', (NOW() at time zone 'UTC')
                                      - h.cachetimestamp)) AS age
        FROM uploader_marketorderlastupload h
        WHERE regionid = %s
          AND h.typeid = mo.typeid) AS age
FROM industry_marketorder mo
     INNER JOIN ccp.stastations st
       ON mo.stationid = st.stationid
     INNER JOIN ccp.mapsolarsystems sys
       ON st.solarsystemid = sys.solarsystemid
WHERE sys.regionid = %s
ORDER BY age DESC, typeid ASC
""",
              (regionid, regionid))
    have = set(typeid for (typeid, age) in c.fetchall()
               if age is None or age > 0)
    c.execute("""
SELECT typeid,
       (SELECT MIN(DATE_PART('days', (NOW() at time zone 'UTC')
                                      - h.cachetimestamp)) AS age
        FROM uploader_marketorderlastupload h
        WHERE regionid = %s
          AND h.typeid = mo.typeid) AS age
FROM industry_wantedmarketorder mo
     INNER JOIN ccp.stastations st
       ON mo.stationid = st.stationid
     INNER JOIN ccp.mapsolarsystems sys
       ON st.solarsystemid = sys.solarsystemid
WHERE sys.regionid = %s
ORDER BY age DESC, typeid ASC
""",
              (regionid, regionid))
    want = set(typeid for (typeid, age) in c.fetchall()
               if age is None or age > 0)
    c.execute("""
(
SELECT typeid,
       (SELECT MIN(DATE_PART('days', (NOW() at time zone 'UTC')
                                      - h.cachetimestamp)) AS age
        FROM uploader_marketorderlastupload h
        WHERE regionid = %s
          AND h.typeid = t.typeid) AS age
FROM industry_pricelist t
UNION
SELECT typeid,
       (SELECT MIN(DATE_PART('days', (NOW() at time zone 'UTC')
                                      - h.cachetimestamp)) AS age
        FROM uploader_marketorderlastupload h
        WHERE regionid = %s
          AND h.typeid = t.typeid) AS age
FROM index_index t
WHERE NOT t.refineable
)
ORDER BY age DESC, typeid ASC
""", (regionid, regionid))
    rest = set(typeid for (typeid, age) in c.fetchall()
               if age is None or age > 0)
    result = (list(have) +
              list(want - have) +
              list(rest - want - have))
    return HttpResponse(json.dumps(result), content_type="text/json")