def post(self): cl = Checklist.get(Key.from_path('Checklist', long(self.request.get('cl_id')))) if not helpers.checkPermissionAndRespond(self, cl=cl, edit=False): return user = users.get_current_user() for sub in Subscription.all().filter("user ==", user).filter("deleted ==", False): if sub.source.key() == cl.key(): helpers.createResponse(self, 'message_already_subscribed.html', {'old_checklist': cl}) sub = Subscription( user=user, source=cl, deleted=False, ) sub.put() for item in cl.item_set: subItem = SubscribedItem( subscription=sub, original=item, finished=False, deleted=False, ) subItem.put() helpers.createResponse(self, 'message_subscribed.html')
def sub_command(self, message=None): """Subscribe the user to XMPP or SMS""" user = message.sender.split('/')[0] plist = message.body.split(' ' ) service_name = plist[1] if len(plist)>2: type = "sms" user = plist[2] else: type = "xmpp" service = Service.all().filter('name = ', service_name).get() if service: subscription = Subscription.all().filter('address =', user).filter('service = ', service).get() if subscription: message.reply("user %s is already subscribed to service %s" % (user, service.name)) else: subscription = Subscription(key_name=hashlib.sha1(user).hexdigest(), type=type, address=user, service=service) subscription.put() message.reply("Subscribed %s to service %s" % (user, service.name)) else: message.reply("Sorry, I couldn't find a service called " "%s" % service_name)
def create_subscription(pigeon_id, name): pigeon_key = ndb.Key(Pigeon, pigeon_id) stream_list = Stream.query(Stream.name == name).fetch() stream_key = stream_list[0].key sub = Subscription() sub.Pigeon_key = pigeon_key sub.Stream_key = stream_key sub.put() return
def create_subscription(pigeon_id, house_name): pigeon_key = ndb.Key(Pigeon, pigeon_id) house_list = House.query(House.name == house_name).fetch() house_key = house_list[0].key subscription = Subscription(pigeon_key=pigeon_key, house_key=house_key, num_per_day=0) subscription.put() card_list = Card.query(ancestor=house_key).fetch() for card in card_list: _initailize_progress(pigeon_key, card.key) house = house_list[0] house.num_of_subed = house.num_of_subed + 1 house.put() return
def create_stream(pigeon_id, name, cover_url, sub_list, tag_list): pigeon_key = ndb.Key(Pigeon, pigeon_id) stream = Stream() stream.key = ndb.Key(Stream, name, parent=pigeon_key) stream.name = name stream.cover_url = cover_url stream.tags = tag_list stream.put() for pid in sub_list: if pid != pigeon_id: if not pigeon_exists(pid): create_pigeon(pid) suber_key = ndb.Key(Pigeon, pid) sub = Subscription() sub.Pigeon_key = suber_key sub.Stream_key = stream.key sub.put() return
def get(self): public = Subscription(name='public', level=0) public.put() subscription = Subscription(name='standard', level=1) subscription.put() User(name='test', password='******', subscription=subscription.level).put() Page(title='Home', slug ='home', text ='Lorem ipsum...', allowed = subscription.level, author = users.User('*****@*****.**')).put() self.redirect('/')
def subscribe_command(self, message=None): subscriber_mail = self.user_mail(message.sender) logging.info('subscribing user: %s' % subscriber_mail) im_from = db.IM('xmpp', message.sender) domain = RequestUtils.getDomain(message.arg) if message.arg == 'all': domain = 'all' if not domain: message.reply('You must provide valide domain for subscription. \'%s\' is not valid domain. Make sure that domain starts with http://' %message.arg) return existingSubscription = Subscription.gql('WHERE subscriber_mail = :1 and domain = :2 and active = True', subscriber_mail, domain).get() if existingSubscription is not None: message.reply('You have already subscribed for this domain %s. Remember?' % domain) return subscription = Subscription(subscriber = im_from, subscriber_mail = subscriber_mail, domain = domain, activationDate = datetime.datetime.now(), active = True, mute = False) invite = IMInvite.gql('WHERE jid = :1 ', subscriber_mail) subscription.put() if invite: invite.subscribed = True invite.put() message.reply('Subscription added.')
def view_subscribe(request): # login is required here # if not ( request.user and request.user.is_authenticated() ): # return HttpResponseRedirect() if request.user.subscription_set.count() >= Subscription._MAX_SUBSCRIPTIONS_PER_USER: Message( user=request.user, message=ugettext("You've reached maximum number of subscriptions. Delete some and try again."), ).put() elif request.method == "GET": search_form = AdvancedEventFilterForm(request.GET) if search_form.is_valid(): country = Country.get_by_key_name(search_form.cleaned_data["country"]) region = Region.get_by_key_name(search_form.cleaned_data["region"]) free = search_form.cleaned_data["forfree"] if search_form.cleaned_data["forwho"] == "custom": event_types = 0 for t in search_form.cleaned_data["typelist"]: event_types += 1 << int(t) elif search_form.cleaned_data["forwho"] == "everyone": event_types = Event.OPEN_EVENTS_MASK else: # assert(search_form.cleaned_data['forwho'] == 'members') event_types = Event.MEMBERS_EVENTS_MASK s = Subscription(user=request.user, country=country, region=region, event_types=event_types, free=free) s.put() Message(user=request.user, message=ugettext("Subscription created")).put() return HttpResponseRedirect( reverse("events.views.view_event_list", kwargs={"subscription_id": s.key().id()}) ) return HttpResponseRedirect(reverse("events.views.view_event_list"))
def post(self): cl = Checklist.get(Key.from_path('Checklist', long(self.request.get('cl_id')))) subscribe = self.request.get('subscribe') if not helpers.checkPermissionAndRespond(self, cl=cl, edit=False): return user = users.get_current_user() if subscribe == 'false': for sub in Subscription.all().filter("user ==", user).filter("deleted ==", False): if sub.source.key() == cl.key(): for subItem in sub.subscribeditem_set: subItem.delete() sub.delete() cl.subscribers = cl.subscribers - 1 self.response.write("unsubscribed") else: sub = Subscription( user=user, source=cl, deleted=False, ) sub.put() for item in cl.item_set.filter("deleted ==", False): subItem = SubscribedItem( subscription=sub, original=item, finished=False, deleted=False, ) subItem.put() cl.subscribers = cl.subscribers + 1 self.response.write("subscribed") cl.put()