def create_listing_review_batch(listing, review_list): """ Create Listing Args: listing review_list [{ "text": "This app is great - well designed and easy to use", "author": "charrington", "rate": 5 },.. ] """ current_listing = listing for review_entry in review_list: profile_obj = models.Profile.objects.get( user__username=review_entry['author']) current_rating = review_entry['rate'] current_text = review_entry['text'] listing_model_access.create_listing_review(profile_obj.user.username, current_listing, current_rating, text=current_text)
def create(self, request, listing_pk=None): """ Create a new review """ try: listing = model_access.get_listing_by_id(request.user.username, listing_pk) if listing is None: raise Exception except Exception: return Response('Invalid listing', status=status.HTTP_400_BAD_REQUEST) try: rate = int(request.data['rate']) text = request.data.get('text', None) except Exception: return Response('Invalid input data', status=status.HTTP_400_BAD_REQUEST) try: resp = model_access.create_listing_review(request.user.username, listing, rate, text) return Response(resp, status=status.HTTP_201_CREATED) except Exception as e: raise e return Response('Bad request to create new review', status=status.HTTP_400_BAD_REQUEST)
def create(self, validated_data): profile = generic_model_access.get_profile(self.context['request'].user.username) try: resp = model_access.create_listing_review(profile, validated_data['listing'], validated_data['rate'], validated_data['text'], validated_data['review_parent']) except ValidationError as err: raise serializers.ValidationError('{}'.format(err)) return resp
def create(self, request, listing_pk=None): """ Create a new review """ request_current_username = request.user.username listing = model_access.get_listing_by_id(request_current_username, listing_pk, True) rate = int(request.data.get('rate', None)) text = request.data.get('text', None) resp = model_access.create_listing_review(request_current_username, listing, rate, text) return Response(resp, status=status.HTTP_201_CREATED)
def create_listing_review_batch(listing, review_list, object_cache): """ Create Listing Args: listing review_list [ { "text": "This app is great - well designed and easy to use", "author": "charrington", "rate": 5, "date_delta": 0 // -1 for -1 days , 5 - for 5 days from date },{ "text": "This app is great - well designed and easy to use", "author": "bigbrother", "rate": 5:, "review":true } ] """ current_listing = listing previous_review = None for review_entry in review_list: profile_obj = object_cache['Profile.{}'.format(review_entry['author'])] current_rating = review_entry.get('rate', 0) current_text = review_entry['text'] current_review_parent = None current_date_delta = review_entry.get('day_delta', None) current_review_parent_flag = review_entry.get('review', False) if current_review_parent_flag: current_review_parent = previous_review previous_review = listing_model_access.create_listing_review( profile_obj.user.username, current_listing, current_rating, text=current_text, review_parent=current_review_parent, create_day_delta=current_date_delta)
def create_listing_review_batch(listing, review_list, object_cache): """ Create Listing Args: listing review_list [ { "text": "This app is great - well designed and easy to use", "author": "charrington", "rate": 5, "date_delta": 0 // -1 for -1 days , 5 - for 5 days from date },{ "text": "This app is great - well designed and easy to use", "author": "bigbrother", "rate": 5:, "review":true } ] """ current_listing = listing previous_review = None for review_entry in review_list: profile_obj = object_cache['Profile.{}'.format(review_entry['author'])] current_rating = review_entry.get('rate', 0) current_text = review_entry['text'] current_review_parent = None current_date_delta = review_entry.get('day_delta', None) current_review_parent_flag = review_entry.get('review', False) if current_review_parent_flag: current_review_parent = previous_review previous_review = listing_model_access.create_listing_review(profile_obj.user.username, current_listing, current_rating, text=current_text, review_parent=current_review_parent, create_day_delta=current_date_delta)
def run(): """ Creates basic sample data """ # Create Groups models.Profile.create_groups() ############################################################################ # Security Markings ############################################################################ unclass = 'UNCLASSIFIED' secret = 'SECRET' secret_n = 'SECRET//NOVEMBER' ts = 'TOP SECRET' ts_s = 'TOP SECRET//SIERRA' ts_st = 'TOP SECRET//SIERRA//TANGO' ts_stgh = 'TOP SECRET//SIERRA//TANGO//GOLF//HOTEL' ts_n = 'TOP SECRET//NOVEMBER' ts_sn = 'TOP SECRET//SIERRA//NOVEMBER' ts_stn = 'TOP SECRET//SIERRA//TANGO//NOVEMBER' ts_stghn = 'TOP SECRET//SIERRA//TANGO//GOLF//HOTEL//NOVEMBER' ############################################################################ # Categories ############################################################################ books_ref = models.Category(title="Books and Reference", description="Things made of paper") books_ref.save() business = models.Category(title="Business", description="For making money") business.save() communication = models.Category(title="Communication", description="Moving info between people and things") communication.save() education = models.Category(title="Education", description="Educational in nature") education.save() entertainment = models.Category(title="Entertainment", description="For fun") entertainment.save() finance = models.Category(title="Finance", description="For managing money") finance.save() health_fitness = models.Category(title="Health and Fitness", description="Be healthy, be fit") health_fitness.save() media_video = models.Category(title="Media and Video", description="Videos and media stuff") media_video.save() music_audio = models.Category(title="Music and Audio", description="Using your ears") music_audio.save() news = models.Category(title="News", description="What's happening where") news.save() productivity = models.Category(title="Productivity", description="Do more in less time") productivity.save() shopping = models.Category(title="Shopping", description="For spending your money") shopping.save() sports = models.Category(title="Sports", description="Score more points than your opponent") sports.save() tools = models.Category(title="Tools", description="Tools and Utilities") tools.save() weather = models.Category(title="Weather", description="Get the temperature") weather.save() ############################################################################ # Contact Types ############################################################################ civillian = models.ContactType(name='Civillian') civillian.save() government = models.ContactType(name='Government') government.save() military = models.ContactType(name='Military') military.save() ############################################################################ # Listing Types ############################################################################ web_app = models.ListingType(title='web application', description='web applications') web_app.save() widget = models.ListingType(title='widget', description='widget things') widget.save() dev_resource = models.ListingType(title='developer resource', description='APIs and resources for developers') dev_resource.save() ############################################################################ # Image Types ############################################################################ # Note: these image sizes do not represent those that should be used in # production small_icon_type = models.ImageType(name='small_icon', max_size_bytes='4096') small_icon_type.save() large_icon_type = models.ImageType(name='large_icon', max_size_bytes='8192') large_icon_type.save() banner_icon_type = models.ImageType(name='banner_icon', max_size_bytes='2097152') banner_icon_type.save() large_banner_icon_type = models.ImageType(name='large_banner_icon', max_size_bytes='2097152') large_banner_icon_type.save() small_screenshot_type = models.ImageType(name='small_screenshot', max_size_bytes='1048576') small_screenshot_type.save() large_screenshot_type = models.ImageType(name='large_screenshot', max_size_bytes='1048576') large_screenshot_type.save() intent_icon_type = models.ImageType(name='intent_icon', max_size_bytes='2097152') intent_icon_type.save() agency_icon_type = models.ImageType(name='agency_icon', max_size_bytes='2097152') agency_icon_type.save() ############################################################################ # Intents ############################################################################ # TODO: more realistic data img = Image.open(TEST_IMG_PATH + 'android.png') icon = models.Image.create_image(img, file_extension='png', security_marking='UNCLASSIFIED', image_type=intent_icon_type.name) i = models.Intent(action='/application/json/view', media_type='vnd.ozp-intent-v1+json.json', label='view', icon=icon) i.save() i = models.Intent(action='/application/json/edit', media_type='vnd.ozp-intent-v1+json.json', label='edit', icon=icon) i.save() ############################################################################ # Organizations ############################################################################ img = Image.open(TEST_IMG_PATH + 'ministry_of_truth.jpg') icon = models.Image.create_image(img, file_extension='jpg', security_marking='UNCLASSIFIED', image_type='agency_icon') minitrue = models.Agency(title='Ministry of Truth', short_name='Minitrue', icon=icon) minitrue.save() img = Image.open(TEST_IMG_PATH + 'ministry_of_peace.png') icon = models.Image.create_image(img, file_extension='png', security_marking='UNCLASSIFIED', image_type='agency_icon') minipax = models.Agency(title='Ministry of Peace', short_name='Minipax', icon=icon) minipax.save() img = Image.open(TEST_IMG_PATH + 'ministry_of_love.jpeg') icon = models.Image.create_image(img, file_extension='jpeg', security_marking='UNCLASSIFIED', image_type='agency_icon') miniluv = models.Agency(title='Ministry of Love', short_name='Miniluv', icon=icon) miniluv.save() img = Image.open(TEST_IMG_PATH + 'ministry_of_plenty.png') icon = models.Image.create_image(img, file_extension='png', security_marking='UNCLASSIFIED', image_type='agency_icon') miniplenty = models.Agency(title='Ministry of Plenty', short_name='Miniplen', icon=icon) miniplenty.save() ############################################################################ # Tags ############################################################################ demo = models.Tag(name='demo') demo.save() example = models.Tag(name='example') example.save() ############################################################################ # Org Stewards ############################################################################ access_control = json.dumps({ 'clearances': ['UNCLASSIFIED', 'CONFIDENTIAL', 'SECRET', 'TOP SECRET'], 'formal_accesses': ['SIERRA', 'TANGO'], 'visas': ['NOVEMBER'] }) winston = models.Profile.create_user('wsmith', email='*****@*****.**', display_name='Winston Smith', bio='I work at the Ministry of Truth', access_control=access_control, organizations=['Ministry of Truth'], stewarded_organizations=['Ministry of Truth'], groups=['ORG_STEWARD'], dn='Winston Smith wsmith' ) access_control = json.dumps({ 'clearances': ['UNCLASSIFIED', 'CONFIDENTIAL', 'SECRET', 'TOP SECRET'], 'formal_accesses': ['SIERRA'], 'visas': [] }) julia = models.Profile.create_user('julia', email='*****@*****.**', display_name='Julia Dixon', bio='An especially zealous propagandist', access_control=access_control, organizations=['Ministry of Truth'], stewarded_organizations=['Ministry of Truth', 'Ministry of Love'], groups=['ORG_STEWARD'], dn='Julia Dixon jdixon' ) access_control = json.dumps({ 'clearances': ['UNCLASSIFIED', 'CONFIDENTIAL', 'SECRET', 'TOP SECRET'], 'formal_accesses': ['SIERRA', 'TANGO', 'GOLF', 'HOTEL'], 'visas': ['NOVEMBER'] }) obrien = models.Profile.create_user('obrien', email='*****@*****.**', display_name='O\'brien', bio='I will find you, winston and julia', access_control=access_control, organizations=['Ministry of Peace'], stewarded_organizations=['Ministry of Peace', 'Ministry of Plenty'], groups=['ORG_STEWARD'], dn='O\'Brien obrien' ) ############################################################################ # Apps Mall Stewards ############################################################################ access_control = json.dumps({ 'clearances': ['UNCLASSIFIED', 'CONFIDENTIAL', 'SECRET', 'TOP SECRET'], 'formal_accesses': ['SIERRA', 'TANGO', 'GOLF', 'HOTEL'], 'visas': ['NOVEMBER'] }) big_brother = models.Profile.create_user('bigbrother', email='*****@*****.**', display_name='Big Brother', bio='I make everyones life better', access_control=access_control, organizations=['Ministry of Peace'], groups=['APPS_MALL_STEWARD'], dn='Big Brother bigbrother' ) access_control = json.dumps({ 'clearances': ['UNCLASSIFIED', 'CONFIDENTIAL', 'SECRET', 'TOP SECRET'], 'formal_accesses': ['SIERRA', 'TANGO', 'GOLF', 'HOTEL'], 'visas': ['NOVEMBER'] }) big_brother2 = models.Profile.create_user('bigbrother2', email='*****@*****.**', display_name='Big Brother2', bio='I also make everyones life better', access_control=access_control, organizations=['Ministry of Truth'], groups=['APPS_MALL_STEWARD'], dn='Big Brother2 bigbrother2' ) ############################################################################ # Regular user ############################################################################ access_control = json.dumps({ 'clearances': ['UNCLASSIFIED', 'CONFIDENTIAL', 'SECRET'], 'formal_accesses': [], 'visas': ['NOVEMBER'] }) aaronson = models.Profile.create_user('aaronson', email='*****@*****.**', display_name='Aaronson', bio='Nothing special', access_control=access_control, organizations=['Ministry of Love'], groups=['USER'], dn='Aaronson aaronson' ) access_control = json.dumps({ 'clearances': ['UNCLASSIFIED', 'CONFIDENTIAL', 'SECRET'], 'formal_accesses': [], 'visas': ['NOVEMBER'] }) jones = models.Profile.create_user('jones', email='*****@*****.**', display_name='Jones', bio='I am a normal person', access_control=access_control, organizations=['Ministry of Truth'], groups=['USER'], dn='Jones jones' ) access_control = json.dumps({ 'clearances': ['UNCLASSIFIED', 'CONFIDENTIAL', 'SECRET'], 'formal_accesses': [], 'visas': [] }) rutherford = models.Profile.create_user('rutherford', email='*****@*****.**', display_name='Rutherford', bio='I am a normal person', access_control=access_control, organizations=['Ministry of Plenty'], groups=['USER'], dn='Rutherford rutherford' ) access_control = json.dumps({ 'clearances': ['UNCLASSIFIED', 'CONFIDENTIAL', 'SECRET', 'TOP SECRET'], 'formal_accesses': ['SIERRA'], 'visas': [] }) syme = models.Profile.create_user('syme', email='*****@*****.**', display_name='Syme', bio='I am too smart for my own good', access_control=access_control, organizations=['Ministry of Peace'], groups=['USER'], dn='Syme syme' ) access_control = json.dumps({ 'clearances': ['UNCLASSIFIED'], 'formal_accesses': [], 'visas': [] }) tparsons = models.Profile.create_user('tparsons', email='*****@*****.**', display_name='Tom Parsons', bio='I am uneducated and loyal', access_control=access_control, organizations=['Ministry of Peace', 'Ministry of Love'], groups=['USER'], dn='Tparsons tparsons' ) access_control = json.dumps({ 'clearances': ['UNCLASSIFIED', 'CONFIDENTIAL', 'SECRET', 'TOP SECRET'], 'formal_accesses': ['SIERRA', 'TANGO', 'GOLF', 'HOTEL'], 'visas': ['NOVEMBER'] }) charrington = models.Profile.create_user('charrington', email='*****@*****.**', display_name='Charrington', bio='A member of the Thought Police', access_control=access_control, organizations=['Ministry of Peace', 'Ministry of Love', 'Ministry of Truth'], groups=['USER'], dn='Charrington charrington' ) ############################################################################ # System Notifications ############################################################################ # create some notifications that expire next week next_week = datetime.datetime.now() + datetime.timedelta(days=7) eastern = pytz.timezone('US/Eastern') next_week = eastern.localize(next_week) n1 = models.Notification(message='System will be going down for \ approximately 30 minutes on X/Y at 1100Z', expires_date=next_week, author=winston) n1.save() n2 = models.Notification(message='System will be functioning in a \ degredaded state between 1800Z-0400Z on A/B', expires_date=next_week, author=julia) n2.save() # create some expired notifications last_week = datetime.datetime.now() - datetime.timedelta(days=7) last_week = eastern.localize(last_week) n1 = models.Notification(message='System will be going down for \ approximately 30 minutes on C/D at 1700Z', expires_date=last_week, author=winston) n1.save() n2 = models.Notification(message='System will be functioning in a \ degredaded state between 2100Z-0430Z on F/G', expires_date=last_week, author=julia) n2.save() ############################################################################ # Contacts ############################################################################ osha = models.Contact(name='Osha', organization='House Stark', contact_type=models.ContactType.objects.get(name='Civillian'), email='*****@*****.**', unsecure_phone='321-123-7894') osha.save() rob_baratheon = models.Contact(name='Robert Baratheon', organization='House Baratheon', contact_type=models.ContactType.objects.get(name='Government'), email='*****@*****.**', unsecure_phone='123-456-7890') rob_baratheon.save() brienne = models.Contact(name='Brienne Tarth', organization='House Stark', contact_type=models.ContactType.objects.get(name='Military'), email='*****@*****.**', unsecure_phone='222-324-3846') brienne.save() ############################################################################ ############################################################################ # Listings ############################################################################ ############################################################################ ############################################################################ # Air Mail ############################################################################ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Icons # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - img = Image.open(TEST_IMG_PATH + 'AirMail16.png') small_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=small_icon_type.name) img = Image.open(TEST_IMG_PATH + 'AirMail32.png') large_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_icon_type.name) img = Image.open(TEST_IMG_PATH + 'AirMail.png') banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=banner_icon_type.name) img = Image.open(TEST_IMG_PATH + 'AirMailFeatured.png') large_banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_banner_icon_type.name) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Listing # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing = models.Listing( title='Air Mail', agency=minitrue, listing_type=web_app, description='Sends mail via air', launch_url='http://localhost/demo_apps/centerSampleListings/airMail/index.html', version_name='1.0.0', unique_name='ozp.test.air_mail', small_icon=small_icon, large_icon=large_icon, banner_icon=banner_icon, large_banner_icon=large_banner_icon, what_is_new='Nothing really new here', description_short='Sends airmail', requirements='None', is_enabled=True, is_featured=True, iframe_compatible=False, security_marking=unclass ) listing.save() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Contacts # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing.contacts.add(osha) listing.contacts.add(brienne) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Owners # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing.owners.add(winston) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Categories # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing.categories.add(communication) listing.categories.add(productivity) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Tags # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing.tags.add(demo) listing.tags.add(example) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Screenshots # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - img = Image.open(TEST_IMG_PATH + 'screenshot_small.png') small_img = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=small_screenshot_type.name) img = Image.open(TEST_IMG_PATH + 'screenshot_large.png') large_img = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_screenshot_type.name) screenshot = models.Screenshot(small_image=small_img, large_image=large_img, listing=listing) screenshot.save() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Notifications # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - notification1 = models.Notification(message='Air Mail update next week', expires_date=next_week, listing=listing, author=winston) notification1.save() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Reviews # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing_model_access.create_listing_review(charrington.user.username, listing, 5, text="This app is great - well designed and easy to use") listing_model_access.create_listing_review(tparsons.user.username, listing, 3, text="Air mail is ok - does what it says and no more") listing_model_access.create_listing_review(syme.user.username, listing, 1, text="Air mail crashes all the time - it doesn't even support IE 6!") # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Document URLs # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - wiki = models.DocUrl(name='wiki', url='http://www.google.com/wiki', listing=listing) wiki.save() guide = models.DocUrl(name='guide', url='http://www.google.com/guide', listing=listing) guide.save() listing_model_access.create_listing(winston, listing) listing_model_access.submit_listing(winston, listing) listing_model_access.approve_listing_by_org_steward(winston, listing) listing_model_access.approve_listing(winston, listing) ############################################################################ # Bread Basket ############################################################################ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Icons # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - img = Image.open(TEST_IMG_PATH + 'BreadBasket16.png') small_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=small_icon_type.name) img = Image.open(TEST_IMG_PATH + 'BreadBasket32.png') large_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_icon_type.name) img = Image.open(TEST_IMG_PATH + 'BreadBasket.png') banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=banner_icon_type.name) img = Image.open(TEST_IMG_PATH + 'BreadBasketFeatured.png') large_banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_banner_icon_type.name) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Listing # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing = models.Listing( title='Bread Basket', agency=minitrue, listing_type=web_app, description='Carries delicious bread', launch_url='http://localhost/demo_apps/centerSampleListings/breadBasket/index.html', version_name='1.0.0', unique_name='ozp.test.bread_basket', small_icon=small_icon, large_icon=large_icon, banner_icon=banner_icon, large_banner_icon=large_banner_icon, what_is_new='Nothing really new here', description_short='Carries bread', requirements='None', is_enabled=True, is_featured=True, iframe_compatible=False, is_private=True, security_marking=unclass ) listing.save() listing.contacts.add(osha) listing.owners.add(julia) listing.categories.add(health_fitness) listing.categories.add(shopping) listing.tags.add(demo) listing.tags.add(example) listing_model_access.create_listing_review(jones.user.username, listing, 2, text="This bread is stale!") listing_model_access.create_listing_review(julia.user.username, listing, 5, text="Yum!") listing_model_access.create_listing(julia, listing) listing_model_access.submit_listing(julia, listing) listing_model_access.approve_listing_by_org_steward(winston, listing) listing_model_access.approve_listing(winston, listing) ############################################################################ # Chart Course ############################################################################ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Icons # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - img = Image.open(TEST_IMG_PATH + 'ChartCourse16.png') small_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=small_icon_type.name) img = Image.open(TEST_IMG_PATH + 'ChartCourse32.png') large_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_icon_type.name) img = Image.open(TEST_IMG_PATH + 'ChartCourse.png') banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=banner_icon_type.name) img = Image.open(TEST_IMG_PATH + 'ChartCourseFeatured.png') large_banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_banner_icon_type.name) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Listing # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing = models.Listing( title='Chart Course', agency=minitrue, listing_type=web_app, description='Chart your course', launch_url='http://localhost/demo_apps/centerSampleListings/chartCourse/index.html', version_name='1.0.0', unique_name='ozp.test.chartcourse', small_icon=small_icon, large_icon=large_icon, banner_icon=banner_icon, large_banner_icon=large_banner_icon, what_is_new='Nothing really new here', description_short='Chart your course', requirements='None', is_enabled=True, is_featured=True, iframe_compatible=False, is_private=False, security_marking=unclass ) listing.save() listing.contacts.add(rob_baratheon) listing.owners.add(winston) listing.categories.add(tools) listing.categories.add(education) listing.tags.add(demo) listing_model_access.create_listing(winston, listing) listing_model_access.submit_listing(winston, listing) listing_model_access.approve_listing_by_org_steward(winston, listing) listing_model_access.approve_listing(winston, listing) ############################################################################ # Chatter Box ############################################################################ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Icons # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - img = Image.open(TEST_IMG_PATH + 'ChatterBox16.png') small_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=small_icon_type.name) img = Image.open(TEST_IMG_PATH + 'ChatterBox32.png') large_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_icon_type.name) img = Image.open(TEST_IMG_PATH + 'ChatterBox.png') banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=banner_icon_type.name) img = Image.open(TEST_IMG_PATH + 'ChatterBoxFeatured.png') large_banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_banner_icon_type.name) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Listing # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing = models.Listing( title='Chatter Box', agency=miniluv, listing_type=web_app, description='Chat with people', launch_url='http://localhost/demo_apps/centerSampleListings/chatterBox/index.html', version_name='1.0.0', unique_name='ozp.test.chatterbox', small_icon=small_icon, large_icon=large_icon, banner_icon=banner_icon, large_banner_icon=large_banner_icon, what_is_new='Nothing really new here', description_short='Chat in a box', requirements='None', is_enabled=True, is_featured=True, iframe_compatible=False, is_private=False, security_marking=unclass ) listing.save() listing.contacts.add(rob_baratheon) listing.owners.add(julia) listing.categories.add(communication) listing.tags.add(demo) listing_model_access.create_listing(julia, listing) listing_model_access.submit_listing(julia, listing) listing_model_access.approve_listing_by_org_steward(winston, listing) listing_model_access.approve_listing(winston, listing) ############################################################################ # Clipboard ############################################################################ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Icons # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - img = Image.open(TEST_IMG_PATH + 'Clipboard16.png') small_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=small_icon_type.name) img = Image.open(TEST_IMG_PATH + 'Clipboard32.png') large_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_icon_type.name) img = Image.open(TEST_IMG_PATH + 'Clipboard.png') banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=banner_icon_type.name) img = Image.open(TEST_IMG_PATH + 'ClipboardFeatured.png') large_banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_banner_icon_type.name) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Listing # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing = models.Listing( title='Clipboard', agency=minitrue, listing_type=web_app, description='Clip stuff on a board', launch_url='http://localhost/demo_apps/centerSampleListings/clipboard/index.html', version_name='1.0.0', unique_name='ozp.test.clipboard', small_icon=small_icon, large_icon=large_icon, banner_icon=banner_icon, large_banner_icon=large_banner_icon, what_is_new='Nothing really new here', description_short='Its a clipboard', requirements='None', is_enabled=True, is_featured=True, iframe_compatible=False, is_private=False, security_marking=unclass ) listing.save() listing.contacts.add(rob_baratheon) listing.owners.add(winston) listing.categories.add(tools) listing.categories.add(education) listing.tags.add(demo) listing_model_access.create_listing(winston, listing) listing_model_access.submit_listing(winston, listing) listing_model_access.approve_listing_by_org_steward(winston, listing) listing_model_access.approve_listing(winston, listing) ############################################################################ # FrameIt ############################################################################ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Icons # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - img = Image.open(TEST_IMG_PATH + 'FrameIt16.png') small_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=small_icon_type.name) img = Image.open(TEST_IMG_PATH + 'FrameIt32.png') large_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_icon_type.name) img = Image.open(TEST_IMG_PATH + 'FrameIt.png') banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=banner_icon_type.name) img = Image.open(TEST_IMG_PATH + 'FrameItFeatured.png') large_banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_banner_icon_type.name) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Listing # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing = models.Listing( title='FrameIt', agency=minitrue, listing_type=web_app, description='Show things in an iframe', launch_url='http://localhost/demo_apps/frameit/index.html', version_name='1.0.0', unique_name='ozp.test.frameit', small_icon=small_icon, large_icon=large_icon, banner_icon=banner_icon, large_banner_icon=large_banner_icon, what_is_new='Nothing really new here', description_short='Its an iframe', requirements='None', is_enabled=True, is_featured=True, iframe_compatible=False, is_private=False, security_marking=unclass ) listing.save() listing.contacts.add(rob_baratheon) listing.owners.add(winston) listing.categories.add(tools) listing.categories.add(education) listing.tags.add(demo) listing_model_access.create_listing(winston, listing) listing_model_access.submit_listing(winston, listing) listing_model_access.approve_listing_by_org_steward(winston, listing) listing_model_access.approve_listing(winston, listing) ############################################################################ # Hatch Latch ############################################################################ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Icons # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - img = Image.open(TEST_IMG_PATH + 'HatchLatch16.png') small_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=small_icon_type.name) img = Image.open(TEST_IMG_PATH + 'HatchLatch32.png') large_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_icon_type.name) img = Image.open(TEST_IMG_PATH + 'HatchLatch.png') banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=banner_icon_type.name) img = Image.open(TEST_IMG_PATH + 'HatchLatchFeatured.png') large_banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_banner_icon_type.name) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Listing # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing = models.Listing( title='Hatch Latch', agency=minitrue, listing_type=web_app, description='Hatch latches', launch_url='http://localhost/demo_apps/centerSampleListings/hatchLatch/index.html', version_name='1.0.0', unique_name='ozp.test.hatchlatch', small_icon=small_icon, large_icon=large_icon, banner_icon=banner_icon, large_banner_icon=large_banner_icon, what_is_new='Nothing really new here', description_short='Its a hatch latch', requirements='None', is_enabled=True, is_featured=True, iframe_compatible=False, is_private=False, security_marking=unclass ) listing.save() listing.contacts.add(rob_baratheon) listing.owners.add(winston) listing.categories.add(tools) listing.categories.add(education) listing.categories.add(health_fitness) listing.tags.add(demo) listing_model_access.create_listing(winston, listing) listing_model_access.submit_listing(winston, listing) listing_model_access.approve_listing_by_org_steward(winston, listing) listing_model_access.approve_listing(winston, listing) ############################################################################ # Jot Spot ############################################################################ # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Icons # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - img = Image.open(TEST_IMG_PATH + 'JotSpot16.png') small_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=small_icon_type.name) img = Image.open(TEST_IMG_PATH + 'JotSpot32.png') large_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_icon_type.name) img = Image.open(TEST_IMG_PATH + 'JotSpot.png') banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=banner_icon_type.name) img = Image.open(TEST_IMG_PATH + 'JotSpotFeatured.png') large_banner_icon = models.Image.create_image(img, file_extension='png', security_marking=unclass, image_type=large_banner_icon_type.name) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Listing # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - listing = models.Listing( title='JotSpot', agency=minitrue, listing_type=web_app, description='Jot things down', launch_url='http://localhost/demo_apps/centerSampleListings/jotSpot/index.html', version_name='1.0.0', unique_name='ozp.test.jotspot', small_icon=small_icon, large_icon=large_icon, banner_icon=banner_icon, large_banner_icon=large_banner_icon, what_is_new='Nothing really new here', description_short='Jot stuff down', requirements='None', is_enabled=True, is_featured=True, iframe_compatible=False, is_private=False, security_marking=unclass ) listing.save() listing.contacts.add(rob_baratheon) listing.owners.add(winston) listing.categories.add(tools) listing.categories.add(education) listing.tags.add(demo) listing_model_access.create_listing(winston, listing) listing_model_access.submit_listing(winston, listing) listing_model_access.approve_listing_by_org_steward(winston, listing) listing_model_access.approve_listing(winston, listing) listing_model_access.create_listing_review(charrington.user.username, listing, 4, text="I really like it") ############################################################################ # Library ############################################################################ # bookmark listings library_entry = models.ApplicationLibraryEntry( owner=winston, listing=models.Listing.objects.get(unique_name='ozp.test.bread_basket')) library_entry.save() library_entry = models.ApplicationLibraryEntry( owner=winston, listing=models.Listing.objects.get(unique_name='ozp.test.air_mail')) library_entry.save()