class Refinement(Entity): using_options(tablename='refinements') id = Field(Integer, primary_key=True, colname='refinement_id') transaction_id = Field(Integer) agent_dataset = Field(String(25)) agent_expression = Field(String(200)) amount = Field(Integer) location_capacity_attribute= Field(String(50)) location_expression = Field(String(200)) year = Field(Integer) class Admin(EntityAdmin): verbose_name='Refinement' verbose_name_plural='Refinements' list_display=[ 'refinement_id', 'transaction_id', 'agent_dataset', 'agent_expression', 'amount', 'location_capacity_attribute', 'location_expression', 'year' ] field_attributes = dict(refinement_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), transaction_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), amount=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=0), year=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1950, maximum=2050) )
class BuildingType(Entity): using_options(tablename='building_types') id = Field(Integer, primary_key=True, colname='building_type_id') is_residential = Field(Integer) building_type_name = Field(String(20)) building_type_description = Field(String(200)) unit_name = Field(String(20)) generic_building_type_id = Field(Integer) generic_building_type_name = Field(String(20)) class Admin(EntityAdmin): verbose_name = 'Building Type' list_display = [ 'building_type_id', 'is_residential', 'building_type_name', 'building_type_description', 'unit_name', 'generic_building_type_id', 'generic_building_type_name' ] field_attributes = dict( building_type_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), is_residential=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=0, maximum=1), generic_building_type_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1))
class ScheduledDevelopmentEvents(Entity): using_options(tablename='scheduled_development_events') id = Field(Integer, primary_key=True) year = Field(Integer) action = Field(String(20)) attribute = Field( String(25) ) #optional, required if action is 'set_value', 'add_value', 'subtract_value', or multiply_value amount = Field(Integer) #fields to identify buildings(location and building type) for events building = ManyToOne('Building', colname='building_id') ## alternatively, use primary or computed attributes of buildings #zone = ManyToOne('Zone', colname='zone_id') #building_type = ManyToOne('Building_type', colname='building_type_id') class Admin(EntityAdmin): verbose_name = 'Scheduled Development Event' list_display = ['year', 'action', 'attribute', 'amount', 'building_id'] field_attributes = dict(year=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1950, maximum=2050), amount=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), building_id=dict( delegate=delegates.IntegerDelegate, calculator=False, minimum=1))
class County(Entity): using_options(tablename='counties') id = Field(Integer, primary_key=True, colname='county_id') county_name = Field(String(20)) county_fips = Field(String(10)) class Admin(EntityAdmin): verbose_name='Countie' list_display=['county_id', 'county_name', 'county_fips'] field_attributes = dict(county_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1))
class DevelopmentEventHistory(Entity): using_options(tablename='development_event_history') id = Field(Integer, primary_key=True) parcel = ManyToOne('Parcel', colname='parcel_id') building_type_id = Field(Integer) scheduled_year = Field(Integer) residential_units = Field(Integer) non_residential_sqft = Field(Integer) change_type = Field(String(1)) class Admin(EntityAdmin): verbose_name = 'Development Event History' verbose_name_plural = 'Development Event History' list_display = [ 'parcel_id', 'building_type_id', 'scheduled_year', 'residential_units', 'non_residential_sqft', 'change_type' ] field_attributes = dict( parcel_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), building_type_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), scheduled_year=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1950, maximum=2050), residential_units=dict(delegate=delegates.IntegerDelegate, calculator=False), non_residential_sqft=dict(delegate=delegates.IntegerDelegate, calculator=False), )
class DevelopmentTemplate(Entity): using_options(tablename='development_templates') id = Field(Integer, primary_key=True) template_id = Field(Integer) percent_land_overhead = Field(Integer) land_sqft_min = Field(Integer) land_sqft_max = Field(Integer) density = Field(Float(2)) density_type = Field(String(20)) land_use_type_id = Field(Integer) development_type = Field(String(20)) is_active = Field(Integer) class Admin(EntityAdmin): verbose_name = 'Development Template' list_display = [ 'template_id', 'percent_land_overhead', 'land_sqft_min', 'land_sqft_max', 'density', 'density_type', 'land_use_type_id', 'development_type', 'is_active' ] field_attributes = dict( template_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), percent_land_overhead=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=0, maximum=100), land_sqft_min=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), land_sqft_max=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), density=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=0, maxmimum=1), land_use_type_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), is_active=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=0, maximum=1))
class EmploymentSector(Entity): using_options(tablename='employment_sectors') id = Field(Integer, primary_key=True, colname='sector_id') trm_code = Field(String(20)) class Admin(EntityAdmin): verbose_name='Employment Sector' list_display=['sector_id', 'trm_code'] field_attributes = dict(sector_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1))
class PlanType(Entity): #Needed for zones? using_options(tablename='plan_types') id = Field(Integer, primary_key=True, colname='plan_type_id') plan_type_name = Field(String(50)) class Admin(EntityAdmin): verbose_name='Plan Type' list_display=['plan_type_id', 'plan_type_name'] field_attributes = dict(plan_type_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1))
class EmploymentAdHocSectorGroup(Entity): using_options(tablename='employment_adhoc_sector_groups') id = Field(Integer, primary_key=True) group_id = Field(Integer) name = Field(String(20)) class Admin(EntityAdmin): verbose_name='Employment Ad Hoc Sector Group' list_display=['group_id', 'name'] field_attributes = dict(group_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1))
class HomeBasedStatus(Entity): using_options(tablename='home_based_status') id = Field(Integer, primary_key=True) home_based_status = Field(Integer) name = Field(String(20)) class Admin(EntityAdmin): verbose_name='Home Based Statu' list_display=['home_based_status', 'name'] field_attributes = dict(home_based_status=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=0, maximum=1))
class GenericLandUseType(Entity): using_options(tablename='generic_land_use_types') id = Field(Integer, primary_key=True, colname='generic_land_use_type_id') generic_description = Field(String(50)) class Admin(EntityAdmin): verbose_name = 'Generic Land Use Type' list_display = ['generic_land_use_type_id', 'generic_description'] field_attributes = dict(generic_land_use_type_id=dict( delegate=delegates.IntegerDelegate, calculator=False, minimum=1))
class ScheduledEmploymentEvents(Entity): using_options(tablename='scheduled_employment_events') id = Field(Integer, primary_key=True) year = Field(Integer) action = Field(String(20)) attribute = Field(String(25)) #optional, required if action is 'set_value', 'add_value', 'subtract_value', or multiply_value amount = Field(Integer) #fields to identify jobs for events sector = ManyToOne('EmploymentSector', colname='sector_id') ##alternatively, use primary or computed attributes of jobs # building = ManyToOne('Building', colname='building_id') class Admin(EntityAdmin): verbose_name='Scheduled Employment Event' verbose_name_plural='Scheduled Employment Events' list_display=['year,' 'action', 'attribute', 'amount', 'sector_id'] field_attributes = dict(year=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1950, maximum=2050), amount=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=0), sector_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1) )
class LargeArea(Entity): using_options(tablename='large_areas') id = Field(Integer, primary_key=True, colname='large_area_id') large_area_name = Field(String(50)) county = ManyToOne('County', colname='county_id') class Admin(EntityAdmin): verbose_name='Large Area' list_display=['large_area_id', 'large_area_name', 'county_id'] field_attributes = dict(large_area_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), county_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1) )
class RaceName(Entity): using_options(tablename='race_name') id = Field(Integer, primary_key=True, colname='race_id') minority = Field(Integer) name = Field(String(20)) class Admin(EntityAdmin): verbose_name='Race Names' list_display=['race_id', 'minority', 'name'] field_attributes = dict(race_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), minority=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=0, maximum=1) )
class HouseholdCharacteristicsForHT(Entity): using_options(tablename='household_characteristics_for_ht') id = Field(Integer, primary_key=True) characteristic = Field(String(20)) min = Field(Integer) max = Field(Integer) class Admin(EntityAdmin): verbose_name='Household Characteristics for HT' list_display=['characteristic', 'min', 'max'] field_attributes = dict(min=dict(delegate=delegates.IntegerDelegate, calculator=False), max=dict(delegate=delegates.IntegerDelegate, calculator=False) )
class LandUseType(Entity): using_options(tablename='land_use_types') id = Field(Integer, primary_key=True, colname='land_use_type_id') description = Field(String(40)) land_use_name = Field(String(25)) unit_name = Field(String(15)) generic_land_use_type = ManyToOne('GenericLandUseType', colname='generic_land_use_type_id') class Admin(EntityAdmin): verbose_name = 'Land Use Type' list_display = [ 'land_use_type_id', 'description', 'land_use_name', 'unit_name', 'generic_land_use_type_id' ] field_attributes = dict( land_use_type_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), generic_land_use_type_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1))
class Zone(Entity): using_options(tablename='zones') id = Field(Integer, primary_key=True, colname='zone_id') # city = ManyToOne('City', colname='city_id') county = Field(String(20)) faz = ManyToOne('Faz', colname='faz_id') class Admin(EntityAdmin): verbose_name='Zone' verbose_name_plural='Zones' list_display=['zone_id', 'county', 'faz_id'] field_attributes = dict(zone_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), faz_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1) )
class Zone(Entity): using_options(tablename='zones') id = Field(Integer, primary_key=True, colname='zone_id') area_type = Field(Integer) area = Field(Integer) dev_acres = Field(Integer) district_id = Field(Integer) final_taz = Field(Integer) county = Field(String(20)) class Admin(EntityAdmin): verbose_name='Zone' list_display=['zone_id', 'area_type', 'area', 'dev_acres', 'district_id', 'final_taz', 'county'] field_attributes = dict(zone_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), area=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), area_type=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), dev_acres=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), district_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), final_taz=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1) )
class Parcel(Entity): using_options(tablename='parcels') id = Field(Integer, primary_key=True, colname='parcel_id') parcel_local_id = Field( Integer, index=True) #Store assessors key to merge other data land_value = Field(Integer) parcel_sqft = Field(Integer) plan_type = ManyToOne('PlanType', colname='plan_type_id') centroid_x = Field(Integer) #optional centroid_y = Field(Integer) #optional tax_exempt_flag = Field(Integer) county = ManyToOne('County', colname='county_id') zone = ManyToOne('Zone', colname='zone_id') census_tract_block = Field(String(20)) class Admin(EntityAdmin): verbose_name = 'Parcel' list_display = [ 'parcel_id', 'parcel_local_id', 'land_value', 'parcel_sqft', 'plan_type_id', 'centroid_x', 'centroid_y', 'tax_exempt_flag', # 'city', 'county_id', 'zone_id', 'census_tract_block' ] field_attributes = dict( parcel_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), land_value=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), parcel_sqft=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), plan_type_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), centroid_x=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), centroid_y=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), tax_exempt_flag=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=0, maximum=1), county_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), zone_id=dict(delegate=delegates.IntegerDelegate, calculator=False, minimum=1), )