Esempio n. 1
0
def nightly_task():
    log.info("batch started")
    hub.threadingLocal = threading_local()
    hub.begin()

    last = BatchRecord.select(orderBy=BatchRecord.q.last_handled).reversed()
    if last.count():
        last_rec = last[0]
        from_when = last_rec.last_handled
    else:
        from_when = datetime.date.today()

    last_handled = datetime.datetime.now()
    current = BatchRecord(first_handled=from_when, last_handled=last_handled)
    hub.commit()

    try:
        current.artists_updated = update_artists(queries_per_run)
        current.venues_updated = update_venues()
        cleanup_db()
        current.email_sent, current.artist_pings, current.venue_pings = send_email(from_when, last_handled)

        current.finished = datetime.datetime.now()
        hub.commit()
    except Exception, inst:
        import traceback

        hub.rollback()
        for admin in Group.by_group_name("admin").users:
            util.email(
                admin.email_address,
                "BandRadar <*****@*****.**>",
                "batch error",
                "Batch failed, Andy is on it!\n\n" + traceback.format_exc(),
            )
Esempio n. 2
0
    def save_item(self, **kw):

        cur_datetime = date.today()
        if kw["createtime"] == "":
            kw["createtime"] = cur_datetime
        hub.begin()
        if kw["new"]:
            item = BillingItem(
                ItemCode=kw["itemcode"],
                ItemDescription=kw["itemdescription"],
                ItemUnitCost=kw["itemunitcost"],
                ItemType=kw["itemtype"],
                ItemDiscountMaxAllowed=kw["itemdiscountmaxallowed"],
                ItemStatus=kw["itemstatus"],
                ModifyTime=cur_datetime,
                ModifyId="wesley",
                CreateTime=cur_datetime,
                CreateId="wesley",
            )
        else:
            if kw["createtime"] == "":
                createtime = cur_time
            else:
                time_strct = time.strptime(keywords["createtime"], "%Y-%m-%d %H:%M:%S")
                createtime = datetime(
                    time_strct.tm_year,
                    time_strct.tm_mon,
                    time_strct.tm_mday,
                    time_strct.tm_hour,
                    time_strct.tm_min,
                    time_strct.tm_sec,
                )
            item = BillingItem.get(kw["id"])
            item.ItemDescription = kw["itemdescription"]
            item.ItemUnitCost = kw["itemunitcost"]
            item.ItemType = kw["itemtype"]
            item.ItemDiscountMaxAllowed = kw["itemdiscountmaxallowed"]
            item.ItemStatus = kw["itemstatus"]
            item.ModifyTime = cur_datetime
            item.ModifyId = "wesley"
            item.CreateTime = kw["createtime"]
            item.CreateId = kw["createid"]

        hub.commit()
        hub.end()
        turbogears.flash("Changes saved!")
        raise cherrypy.HTTPRedirect(turbogears.url("/billing/edit_item?id=" + str(item.id)))
 def changepassword(self, namespace,
                    oldpassword, newpassword, repeat):
     ns = Namespace.byName(namespace)
     if ns.password != oldpassword:
         msg = INCORRECT_PASSWORD_MSG
     elif newpassword != repeat:
         msg = "The new password didn't match it's repeat."
     else:
         hub.begin()
         ns.password = newpassword
         hub.commit()
         hub.end()
         msg = "Password changed!"
     turbogears.flash(msg)
     url = turbogears.url("/namespace",
                          namespace=namespace,
                          password=ns.password)
     raise cherrypy.HTTPRedirect(url)
Esempio n. 4
0
def hourly_task():
    hub.threadingLocal = threading_local()
    hub.begin()
    # notify admins of pending events added by users
    events_pending = Event.select(Event.q.approved == None)
    pending_count = events_pending.count()
    unnotified = events_pending.filter(Event.q.admin_notified == False)
    if unnotified.count():
        for event in unnotified:
            event.admin_notified = True
        for admin in Group.by_group_name("admin").users:
            util.email(
                admin.email_address,
                "BandRadar <*****@*****.**>",
                "%d events in queue" % pending_count,
                "There are events in the pending queue.",
            )
    hub.commit()
Esempio n. 5
0
 def record_request(self, visit):
     if identity.current.user:
         # if we are logged in, watch for the "remember" param, and set the
         # cookie if so.
         if cherrypy.request.params.pop("remember", None):
             vi = VisitIdentity.by_visit_key(visit.key)
             vi.expiry = remember(visit)
     else:
         # if we're not logged in, see if the cookie is there, and log in
         try:
             saved_key = cherrypy.request.simple_cookie[cookie_name].value
             vi = VisitIdentity.by_visit_key(saved_key)
             u = UserAcct.get(vi.user_id)
             identity.current_provider.validate_identity(u.user_name,
                 u.password, visit.key)
             # must commit or db will forget we logged in, when we 
             # redirect (rollback) below
             hub.commit()
             # reload, since now we're logged in
             turbogears.redirect(cherrypy.request.path)
         except (KeyError, SQLObjectNotFound):
             pass