from postgresqleu.confreg.models import STATUS_CHOICES, STATUS_CHOICES_LONG
from postgresqleu.util.backendlookups import GeneralAccountLookup, CountryLookup
-from postgresqleu.confreg.backendlookups import RegisteredUsersLookup, SpeakerLookup, SessionTagLookup
+from postgresqleu.confreg.backendlookups import RegisteredUsersLookup, RegisteredOrPendingUsersLookup
+from postgresqleu.confreg.backendlookups import SpeakerLookup, SessionTagLookup
from postgresqleu.confreg.campaigns import allcampaigns
from postgresqleu.confreg.regtypes import validate_special_reg_type_setup
'conferenceadditionaloption_requires_attendee',
'conferenceadditionaloption_mutually_exclusive', ]
selectize_multiple_fields = {
- 'requires_attendee': RegisteredUsersLookup(None),
+ 'requires_attendee': RegisteredOrPendingUsersLookup(None),
}
coltypes = {
'Maxcount': ['nosearch', ],
def fix_fields(self):
self.fields['requires_regtype'].queryset = RegistrationType.objects.filter(conference=self.conference)
self.fields['requires_attendee'].queryset = ConferenceRegistration.objects.filter(conference=self.conference)
- self.selectize_multiple_fields['requires_attendee'] = RegisteredUsersLookup(self.conference)
+ self.selectize_multiple_fields['requires_attendee'] = RegisteredOrPendingUsersLookup(self.conference)
self.fields['mutually_exclusive'].queryset = ConferenceAdditionalOption.objects.filter(conference=self.conference).exclude(pk=self.instance.pk)
self.fields['additionaldays'].queryset = RegistrationDay.objects.filter(conference=self.conference)
x.email,
)
+ @classmethod
+ def get_filter(self):
+ return Q(payconfirmedat__isnull=False, canceledat__isnull=True)
+
@classmethod
def get_values(self, query, conference):
return [{'id': r.id, 'value': RegisteredUsersLookup._label_from_instance(self)(r)}
for r in ConferenceRegistration.objects.filter(
- conference=conference,
- payconfirmedat__isnull=False, canceledat__isnull=True).filter(
+ conference=conference).filter(self.get_filter()).filter(
Q(attendee__username=query) | Q(firstname__icontains=query) | Q(lastname__icontains=query) | Q(email__icontains=query)
)[:30]]
+class RegisteredOrPendingUsersLookup(RegisteredUsersLookup):
+ @property
+ def url(self):
+ return '/events/admin/{0}/lookups/regsinc/'.format(self.conference.urlname)
+
+ @classmethod
+ def get_filter(self):
+ return Q(canceledat__isnull=True)
+
+
class SessionTagLookup(LookupBase):
@property
def url(self):
re_path(r'^events/admin/(\w+)/edit/$', postgresqleu.confreg.backendviews.edit_conference),
re_path(r'^events/admin/(\w+)/superedit/$', postgresqleu.confreg.backendviews.superedit_conference),
re_path(r'^events/admin/(\w+)/lookups/regs/$', postgresqleu.confreg.backendlookups.RegisteredUsersLookup.lookup),
+ re_path(r'^events/admin/(\w+)/lookups/regsinc/$', postgresqleu.confreg.backendlookups.RegisteredOrPendingUsersLookup.lookup),
re_path(r'^events/admin/(\w+)/lookups/tags/$', postgresqleu.confreg.backendlookups.SessionTagLookup.lookup),
re_path(r'^events/admin/(\w+)/mail/$', postgresqleu.confreg.views.admin_attendeemail),
re_path(r'^events/admin/(\w+)/mail/(\d+)/$', postgresqleu.confreg.views.admin_attendeemail_view),