Allow sponsors to look up users by email.

This commit is contained in:
Brian Simpson
2015-01-08 19:21:20 -05:00
parent 003ca6e0bc
commit 4368be7d91
4 changed files with 40 additions and 24 deletions

View File

@@ -75,6 +75,7 @@ from r2.lib.validator import (
validate,
validatedForm,
ValidCard,
ValidEmail,
VBoolean,
VByName,
VCollection,
@@ -105,6 +106,7 @@ from r2.lib.validator import (
)
from r2.models import (
Account,
AccountsByCanonicalEmail,
calc_impressions,
Collection,
Frontpage,
@@ -290,11 +292,14 @@ class SponsorController(PromoteController):
@validate(
VSponsorAdmin(),
user=VByName('name', thing_cls=Account),
id_user=VByName('name', thing_cls=Account),
email=ValidEmail("email"),
)
def GET_lookup_user(self, user):
content = SponsorLookupUser(user=user)
return PromotePage(title=_("lookup user"), content=content).render()
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()
class PromoteListingController(ListingController):

View File

@@ -4003,8 +4003,9 @@ class Roadblocks(PromoteLinkBase):
class SponsorLookupUser(PromoteLinkBase):
def __init__(self, user=None):
PromoteLinkBase.__init__(self, user=user)
def __init__(self, id_user=None, email=None, email_users=None):
PromoteLinkBase.__init__(
self, id_user=id_user, email=email, email_users=email_users or [])
class TabbedPane(Templated):

View File

@@ -6274,8 +6274,15 @@ div #campaign-field {
}
}
.lookup-user input[name=name] {
width: 10em;
.lookup-user {
input[name=name] {
width: 10em;
}
input[name=email] {
width: 20em;
}
}
}
@@ -6747,16 +6754,6 @@ div #campaign-field {
margin-right: 150px;
}
}
.lookup-user-field {
.linefield-content {
display: flex;
}
.form-group,
.lookup-user-results {
}
}
}
.geotargeting-disabled {

View File

@@ -26,19 +26,32 @@
<form name="lookup-user" action="" method="get">
<div class="editor lookup-user">
<header>
<h2>lookup a user by id</h2>
<h2>look up a user</h2>
</header>
<div class="editor-group">
<%utils:line_field title="${_('search')}" css_class="rounded lookup-user-field">
<label class="form-group">
<div class="label">${_('id')}</div>
<input type="text" name="name" value="${thing.user._fullname if thing.user else ""}">
<input type="text" name="name" value="${thing.id_user._fullname if thing.id_user else ""}">
</label>
<div class='form-group lookup-user-results'>
<div class="label">${_('name')}</div>
%if thing.user:
<strong>${"%s is %s" % (thing.user._fullname, thing.user.name)}</strong>
%endif:
<div class="label">name</div>
%if thing.id_user:
${utils.plain_link(thing.id_user.name, "/user/%s/promoted" % thing.id_user.name)}
%endif
</div>
<label class="form-group">
<div class="label">email</div>
<input type="text" name="email" value="${thing.email or ""}">
</label>
<div class='form-group lookup-user-results'>
<div class="label">name(s)</div>
%for user in thing.email_users:
<div>
${utils.plain_link(user.name, "/user/%s/promoted" % user.name)}
</div>
%endfor
</div>
</%utils:line_field>
</div>