def get_available_apps_for_customer(customer, demo_only=False): if not customer: return [] app_ids = (a for a in customer.sorted_app_ids if a != App.APP_ID_OSA_LOYALTY) available_apps = list(App.get(map(App.create_key, app_ids))) azzert(all(available_apps)) if available_apps[0].orderable_app_ids: extra_app_ids = set(available_apps[0].orderable_app_ids).difference( customer.sorted_app_ids) if extra_app_ids: available_apps += App.get(map(App.create_key, extra_app_ids)) if demo_only: available_apps = filter(lambda x: x.demo, available_apps) available_apps.sort(key=lambda app: app.name.upper()) return available_apps
def trans(): beacon = Beacon.all().ancestor(parent_key(si.service_user)).get() if beacon: return beacon.uuid, beacon.name app = App.get(App.create_key(si.app_id)) app.beacon_last_minor = app.beacon_last_minor + 1 name = "%s|%s" % (app.beacon_major, app.beacon_last_minor) logging.info("add_new_beacon: %s", name) if not add_new_beacon(app.beacon_uuid, name, u'Autoconnect', si.service_identity_user): raise Exception("Beacon already exists") app.put() return app.beacon_uuid, name
def trans(old_default_app_key): new_default_app = get_app_by_id(app_id) if new_default_app.key() == old_default_app_key: return new_default_app.is_default = True if old_default_app_key: old_default_app = App.get(old_default_app_key) old_default_app.is_default = False put_and_invalidate_cache(new_default_app, old_default_app) on_trans_committed(logging.info, "Default app updated from %s (%s) to %s (%s)", old_default_app.app_id, old_default_app.name, new_default_app.app_id, new_default_app.name) else: put_and_invalidate_cache(new_default_app)
def get(self, app_id): template = JINJA_ENVIRONMENT.get_template('app_translations.html') js_template = JINJA_ENVIRONMENT.get_template('app_translations_part.html').render() app = App.get(App.create_key(app_id)) if not app: self.response.out.write('app %s does not exist' % app_id) return app_translations_key = AppTranslations.create_key(app_id) translations = AppTranslations.get_or_insert(app_translations_key.name(), parent=app_translations_key.parent()) parameters = { 'templates': json.dumps({'app_translations_part': js_template}), 'translations': json.dumps( zlib.decompress(translations.translations) if translations.translations else None), 'app': json.dumps(serialize_complex_value(AppTO.fromModel(app), AppTO, False)) } self.response.out.write(template.render(parameters))
def trans(create_app_to): app_key = App.create_key(create_app_to.app_id) if App.get(app_key): raise DuplicateAppIdException(create_app_to.app_id) app = App( key=app_key, type=data.type, name=create_app_to.name, is_default=False, android_app_id=u'com.mobicage.rogerthat.%s' % create_app_to.app_id.replace('-', '.'), dashboard_email_address=data.dashboard_email_address, creation_time=now(), ) app_settings = AppSettings(key=AppSettings.create_key(app.app_id), background_fetch_timestamps=[21600] if app.type == App.APP_TYPE_CITY_APP else []) db.put((app, app_settings)) return app
def setup_qr_templates(self, app_id): app = App.get(App.create_key(app_id)) app.qrtemplate_keys = list() description = u"DEFAULT" key_name = create_qr_template_key_name(app_id, description) store_template(None, DEFAULT_QR_CODE_OVERLAY, description, u"".join(("%X" % c).rjust(2, '0') for c in DEFAULT_QR_CODE_COLOR), key_name) app.qrtemplate_keys.append(key_name) description = u"HAND" key_name = create_qr_template_key_name(app_id, description) store_template(None, HAND_ONLY_QR_CODE_OVERLAY, description, u"".join(("%X" % c).rjust(2, '0') for c in DEFAULT_QR_CODE_COLOR), key_name) app.qrtemplate_keys.append(key_name) put_and_invalidate_cache(app)
def trans(): app = App.get(App.create_key(app_id)) if not app: raise AppDoesNotExistException(app_id) return app
def fromServiceIdentity(service_identity, service_profile): identifier = get_identity_from_service_identity_user(service_identity.user) if identifier == ServiceIdentity.DEFAULT: azzert(service_identity.inheritanceFlags == 0, "inheritanceFlags of default must be 0, not %s" % service_identity.inheritanceFlags) details = ServiceIdentitySummaryTO.fromServiceIdentity(service_identity, ServiceIdentityDetailsTO()) details.description_use_default = is_flag_set(ServiceIdentity.FLAG_INHERIT_DESCRIPTION, service_identity.inheritanceFlags) details.description = service_identity.description details.description_branding_use_default = is_flag_set(ServiceIdentity.FLAG_INHERIT_DESCRIPTION_BRANDING, service_identity.inheritanceFlags) details.description_branding = service_identity.descriptionBranding details.menu_branding_use_default = is_flag_set(ServiceIdentity.FLAG_INHERIT_MENU_BRANDING, service_identity.inheritanceFlags) details.phone_number_use_default = is_flag_set(ServiceIdentity.FLAG_INHERIT_PHONE_NUMBER, service_identity.inheritanceFlags) details.phone_number = service_identity.mainPhoneNumber details.phone_call_popup_use_default = is_flag_set(ServiceIdentity.FLAG_INHERIT_PHONE_POPUP_TEXT, service_identity.inheritanceFlags) details.phone_call_popup = service_identity.callMenuItemConfirmation details.recommend_enabled = bool(service_identity.shareEnabled) details.admin_emails = list() if service_identity.metaData is None else [e.strip() for e in service_identity.metaData.split(',') if e.strip()] if service_identity.serviceData: service_data = service_identity.serviceData.to_json_dict() details.app_data = json.dumps(service_data).decode('utf-8') if service_data else None else: details.app_data = service_identity.appData details.search_use_default = is_flag_set(ServiceIdentity.FLAG_INHERIT_SEARCH_CONFIG, service_identity.inheritanceFlags) sc, locs = get_search_config(service_identity.user) details.search_config = SearchConfigTO.fromDBSearchConfig(sc, locs) details.qualified_identifier = service_identity.qualifiedIdentifier details.email_statistics_use_default = is_flag_set(ServiceIdentity.FLAG_INHERIT_EMAIL_STATISTICS, service_identity.inheritanceFlags) details.email_statistics = service_identity.emailStatistics details.beacons = map(BeaconTO.fromModel, get_beacons(service_identity.service_user, identifier)) details.app_ids_use_default = is_flag_set(ServiceIdentity.FLAG_INHERIT_APP_IDS, service_identity.inheritanceFlags) details.app_ids = list() details.app_names = list() from rogerthat.models import App for app in App.get(map(App.create_key, service_identity.appIds)): if app: details.app_ids.append(app.app_id) details.app_names.append(app.name) details.can_edit_supported_apps = service_profile.canEditSupportedApps details.beacon_auto_invite = service_identity.beacon_auto_invite details.content_branding_hash = service_identity.contentBrandingHash return details
def get_app_by_id(app_id): return App.get(App.create_key(app_id))