# gigkeeper # Copyright (C) 2008 gigkeeper # # $Id$ # from modu.persist import storable from modu.util import OrderedDict as odict URL_TYPES = odict([ ('homepage', 'Homepage'), ('myspace', 'MySpace'), ('facebook', 'Facebook'), ]) class URL(storable.Storable): def __init__(self): super(URL, self).__init__('url')
# gigkeeper # Copyright (C) 2008 gigkeeper # # $Id$ # from modu.persist import storable, sql from modu.util import OrderedDict as odict from gigkeeper.model import ModelURLMixin, media, company, address EVENT_TYPES = odict([ ('performance', 'Performance'), ]) def get_upcoming_events(store): store.ensure_factory('event', model_class=Event) events = store.load('event', scheduled_date=sql.RAW('%s > CURDATE()'), __order_by='scheduled_date') return events or [] def get_prior_events(store): store.ensure_factory('event', model_class=Event) events = store.load('event', scheduled_date=sql.RAW('%s < CURDATE()'), __order_by='scheduled_date DESC') return events or [] class Event(storable.Storable, ModelURLMixin): def __init__(self): super(Event, self).__init__('event') def get_standardized_title(self): venue = self.get_venue()
# gigkeeper # Copyright (C) 2008 gigkeeper # # $Id$ # import os from modu.util import OrderedDict as odict extension_map = odict([ ('.jpg' , ('image', 'jpeg', 'master')), ('.png' , ('image', 'png', 'master')), ('.mp3' , ('audio', 'mp3', 'streaming')), ]) def get_checksum(filepath, md5_path='md5sum'): handle = os.popen(md5_path + ' "' + filepath.replace(r';', r'\;') + '"') filehash = handle.read() handle.close() if(filehash.find('=') == -1): filehash = [output.strip() for output in filehash.split(' ')][0] else: filehash = [output.strip() for output in filehash.split('=')][1] return filehash def get_media_details(filename): media_type, format, quality = ('', '', '') for ext, settings in extension_map.items():
# gigkeeper # Copyright (C) 2008 gigkeeper # # $Id$ # from modu.persist import storable from modu.util import OrderedDict as odict ADDRESS_TYPES = odict([("home", "Home"), ("work", "Work")]) class Address(storable.Storable): def __init__(self): super(Address, self).__init__("address") def as_string(self): components = [] components.append(self.name) components.append(self.address1) if self.address2: components.append(self.address2) components.append(self.city) components.append(self.region + " " + self.zip + " " + self.country) return ", ".join(components)
# gigkeeper # Copyright (C) 2008 gigkeeper # # $Id$ # import re from modu.persist import storable from modu.util import OrderedDict as odict NOTE_TYPES = odict([ ('booking', 'Booking Info'), ('review', 'Review'), ('backline', 'Backline Info'), ]) class Note(storable.Storable): def __init__(self): super(Note, self).__init__('note') def summarize(self, length=200): untagged = re.sub(r'<[^>]*?>', '', self.description) words = untagged.split() return ' '.join(words[:length])
# gigkeeper # Copyright (C) 2008 gigkeeper # # $Id$ # from modu.persist import storable from modu.util import OrderedDict as odict HISTORY_TYPES = odict([ ('phone', 'Phone Call'), ('email', 'Email'), ('in_person', 'In Person'), ]) class History(storable.Storable): def __init__(self): super(History, self).__init__('history')
# gigkeeper # Copyright (C) 2008 gigkeeper # # $Id$ # from modu.persist import storable from modu.util import OrderedDict as odict from gigkeeper.model import address COMPANY_TYPES = odict([ ('venue', 'venue'), ('agency', 'agency'), ('artist', 'artist'), ]) def find_venue(store, details): pass class Company(storable.Storable): def __init__(self): super(Company, self).__init__('company') def get_address(self): store = self.get_store() store.ensure_factory('address', address.Address) return store.load_one('address', item_table='company', item_id=self.get_id())