def GET_edit_promo(self, link):
     if not link or link.promoted is None:
         return self.abort404()
     rendered = wrap_links(link, skip=False)
     form = PromoteLinkEdit(link, rendered)
     page = PromotePage(title=_("edit sponsored link"), content=form, show_sidebar=False, extension_handling=False)
     return page.render()
Exemple #2
0
 def GET_edit_promo(self, link):
     if not link or link.promoted is None:
         return self.abort404()
     rendered = wrap_links(link, wrapper=promote.sponsor_wrapper, skip=False)
     form = PromoteLinkForm(link, rendered)
     page = PromotePage('new_promo', content=form)
     return page.render()
Exemple #3
0
    def GET_edit_promo_cpm(self, link):
        if not link or link.promoted is None:
            return self.abort404()
        rendered = wrap_links(link, wrapper=promote.sponsor_wrapper,
                              skip=False)

        form = PromoteLinkFormCpm(link=link,
                                  listing=rendered,
                                  timedeltatext="")

        page = PromotePage('new_promo', content=form)

        return page.render()
    def GET_report(self, start, end, link_text=None, owner=None):
        now = datetime.now(g.tz).replace(hour=0, minute=0, second=0,
                                         microsecond=0)
        end = end or now - timedelta(days=1)
        start = start or end - timedelta(days=7)

        links = []
        bad_links = []
        owner_name = owner.name if owner else ''

        if owner:
            promo_weights = PromotionWeights.get_campaigns(start, end,
                                                           author_id=owner._id)
            campaign_ids = [pw.promo_idx for pw in promo_weights]
            campaigns = PromoCampaign._byID(campaign_ids, data=True)
            link_ids = {camp.link_id for camp in campaigns.itervalues()}
            links.extend(Link._byID(link_ids, data=True, return_dict=False))

        if link_text is not None:
            id36s = link_text.replace(',', ' ').split()
            try:
                links_from_text = Link._byID36(id36s, data=True)
            except NotFound:
                links_from_text = {}

            bad_links = [id36 for id36 in id36s if id36 not in links_from_text]
            links.extend(links_from_text.values())

        content = PromoteReport(links, link_text, owner_name, bad_links, start,
                                end)
        if c.render_style == 'csv':
            return content.as_csv()
        else:
            return PromotePage('report', content=content).render()
Exemple #5
0
 def GET_admingraph(self, dates):
     start, end, bad_dates = _check_dates(dates)
     content = Promote_Graph(start, end, bad_dates=bad_dates,
                             admin_view=True)
     if c.render_style == 'csv':
         return content.as_csv()
     return PromotePage("admingraph", content=content).render()
Exemple #6
0
    def GET_promote_inventory(self, start, end, sr_name):
        if not start or not end:
            start = promote.promo_datetime_now(offset=1).date()
            end = promote.promo_datetime_now(offset=8).date()
            c.errors.remove((errors.BAD_DATE, 'startdate'))
            c.errors.remove((errors.BAD_DATE, 'enddate'))

        sr = Frontpage
        if sr_name:
            try:
                sr = Subreddit._by_name(sr_name)
            except NotFound:
                c.errors.add(errors.SUBREDDIT_NOEXIST, field='sr_name')

        content = PromoteInventory(start, end, sr)
        return PromotePage("promote_inventory", content=content).render()
Exemple #7
0
    def GET_report(self, start, end, grouping, link_text=None, owner=None):
        now = datetime.now(g.tz).replace(hour=0,
                                         minute=0,
                                         second=0,
                                         microsecond=0)
        if not start or not end:
            start = promote.promo_datetime_now(offset=1).date()
            end = promote.promo_datetime_now(offset=8).date()
            c.errors.remove((errors.BAD_DATE, 'startdate'))
            c.errors.remove((errors.BAD_DATE, 'enddate'))
        end = end or now - timedelta(days=1)
        start = start or end - timedelta(days=7)

        links = []
        bad_links = []
        owner_name = owner.name if owner else ''

        if owner:
            campaign_ids = PromotionWeights.get_campaign_ids(
                start, end, author_id=owner._id)
            campaigns = PromoCampaign._byID(campaign_ids, data=True)
            link_ids = {camp.link_id for camp in campaigns.itervalues()}
            links.extend(Link._byID(link_ids, data=True, return_dict=False))

        if link_text is not None:
            id36s = link_text.replace(',', ' ').split()
            try:
                links_from_text = Link._byID36(id36s, data=True)
            except NotFound:
                links_from_text = {}

            bad_links = [id36 for id36 in id36s if id36 not in links_from_text]
            links.extend(links_from_text.values())

        content = PromoteReport(links,
                                link_text,
                                owner_name,
                                bad_links,
                                start,
                                end,
                                group_by_date=grouping == "day")
        if c.render_style == 'csv':
            return content.as_csv()
        else:
            return PromotePage(title=_("sponsored link report"),
                               content=content).render()
    def GET_promote_inventory(self, start, end, sr_name, collection_name):
        if not start or not end:
            start = promote.promo_datetime_now(offset=1).date()
            end = promote.promo_datetime_now(offset=8).date()
            c.errors.remove((errors.BAD_DATE, 'startdate'))
            c.errors.remove((errors.BAD_DATE, 'enddate'))

        target = Target(Frontpage.name)
        if sr_name:
            try:
                sr = Subreddit._by_name(sr_name)
                target = Target(sr.name)
            except NotFound:
                c.errors.add(errors.SUBREDDIT_NOEXIST, field='sr_name')
        elif collection_name:
            collection = Collection.by_name(collection_name)
            if not collection:
                c.errors.add(errors.COLLECTION_NOEXIST, field='collection_name')
            else:
                target = Target(collection)

        content = PromoteInventory(start, end, target)
        return PromotePage(title=_("sponsored link inventory"),
                           content=content).render()
Exemple #9
0
 def GET_lookup_user(self, user):
     content = SponsorLookupUser(user=user)
     return PromotePage(title=_("lookup user"), content=content).render()
Exemple #10
0
 def GET_roadblock(self):
     return PromotePage(title=_("manage roadblocks"),
                        content=Roadblocks()).render()
Exemple #11
0
 def GET_new_promo(self):
     return PromotePage(title=_("create sponsored link"),
                        content=PromoteLinkNew()).render()
Exemple #12
0
 def GET_roadblock(self):
     return PromotePage('content', content=Roadblocks()).render()
Exemple #13
0
 def GET_graph(self, dates):
     start, end, bad_dates = _check_dates(dates)
     return PromotePage("graph",
                        content=Promote_Graph(
                            start, end, bad_dates=bad_dates)).render()
Exemple #14
0
 def GET_new_promo(self):
     return PromotePage('content', content=PromoteLinkNew()).render()
Exemple #15
0
 def GET_lookup_user(self, id_user, email):
     email_users = AccountsByCanonicalEmail.get_accounts(email)
     content = SponsorLookupUser(id_user=id_user,
                                 email=email,
                                 email_users=email_users)
     return PromotePage(title="look up user", content=content).render()
Exemple #16
0
 def GET_new_promo(self):
     return PromotePage(title=_("create sponsored link"),
                        content=PromoteLinkNew(),
                        extra_js_config={
                            "ads_virtual_page": "new-promo",
                        }).render()