# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.db import models, migrations import mptt.fields import servo.lib.shorturl import servo.models.product import django.utils.timezone import servo.defaults import django.db.models.deletion from django.conf import settings import django.core.validators import servo.validators class Migration(migrations.Migration): dependencies = [ ('auth', '0001_initial'), ('sites', '0001_initial'), ('contenttypes', '0001_initial'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(default=django.utils.timezone.now, verbose_name='last login')), ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), ('username', models.CharField(help_text='Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.', unique=True, max_length=30, verbose_name='username', validators=[django.core.validators.RegexValidator('^[\\w.@+-]+$', 'Enter a valid username.', 'invalid')])), ('first_name', models.CharField(max_length=30, verbose_name='first name', blank=True)), ('last_name', models.CharField(max_length=30, verbose_name='last name', blank=True)), ('email', models.EmailField(max_length=75, verbose_name='email address', blank=True)), ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), ('full_name', models.CharField(default='New User', max_length=128, editable=False)), ('locale', models.CharField(default=b'da_DK.UTF-8', help_text='Select which language you want to use Servo in.', max_length=32, verbose_name='language', choices=[(b'da_DK.UTF-8', 'Danish'), (b'nl_NL.UTF-8', 'Dutch'), (b'en_US.UTF-8', 'English'), (b'et_EE.UTF-8', 'Estonian'), (b'fi_FI.UTF-8', 'Finnish'), (b'sv_SE.UTF-8', 'Swedish')])), ('timezone', models.CharField(default=b'UTC', max_length=128, verbose_name='Time zone', choices=[(b'Africa/Abidjan', b'Africa/Abidjan'), (b'Africa/Accra', b'Africa/Accra'), (b'Africa/Addis_Ababa', b'Africa/Addis_Ababa'), (b'Africa/Algiers', b'Africa/Algiers'), (b'Africa/Asmara', b'Africa/Asmara'), (b'Africa/Bamako', b'Africa/Bamako'), (b'Africa/Bangui', b'Africa/Bangui'), (b'Africa/Banjul', b'Africa/Banjul'), (b'Africa/Bissau', b'Africa/Bissau'), (b'Africa/Blantyre', b'Africa/Blantyre'), (b'Africa/Brazzaville', b'Africa/Brazzaville'), (b'Africa/Bujumbura', b'Africa/Bujumbura'), (b'Africa/Cairo', b'Africa/Cairo'), (b'Africa/Casablanca', b'Africa/Casablanca'), (b'Africa/Ceuta', b'Africa/Ceuta'), (b'Africa/Conakry', b'Africa/Conakry'), (b'Africa/Dakar', b'Africa/Dakar'), (b'Africa/Dar_es_Salaam', b'Africa/Dar_es_Salaam'), (b'Africa/Djibouti', b'Africa/Djibouti'), (b'Africa/Douala', b'Africa/Douala'), (b'Africa/El_Aaiun', b'Africa/El_Aaiun'), (b'Africa/Freetown', b'Africa/Freetown'), (b'Africa/Gaborone', b'Africa/Gaborone'), (b'Africa/Harare', b'Africa/Harare'), (b'Africa/Johannesburg', b'Africa/Johannesburg'), (b'Africa/Juba', b'Africa/Juba'), (b'Africa/Kampala', b'Africa/Kampala'), (b'Africa/Khartoum', b'Africa/Khartoum'), (b'Africa/Kigali', b'Africa/Kigali'), (b'Africa/Kinshasa', b'Africa/Kinshasa'), (b'Africa/Lagos', b'Africa/Lagos'), (b'Africa/Libreville', b'Africa/Libreville'), (b'Africa/Lome', b'Africa/Lome'), (b'Africa/Luanda', b'Africa/Luanda'), (b'Africa/Lubumbashi', b'Africa/Lubumbashi'), (b'Africa/Lusaka', b'Africa/Lusaka'), (b'Africa/Malabo', b'Africa/Malabo'), (b'Africa/Maputo', b'Africa/Maputo'), (b'Africa/Maseru', b'Africa/Maseru'), (b'Africa/Mbabane', b'Africa/Mbabane'), (b'Africa/Mogadishu', b'Africa/Mogadishu'), (b'Africa/Monrovia', b'Africa/Monrovia'), (b'Africa/Nairobi', b'Africa/Nairobi'), (b'Africa/Ndjamena', b'Africa/Ndjamena'), (b'Africa/Niamey', b'Africa/Niamey'), (b'Africa/Nouakchott', b'Africa/Nouakchott'), (b'Africa/Ouagadougou', b'Africa/Ouagadougou'), (b'Africa/Porto-Novo', b'Africa/Porto-Novo'), (b'Africa/Sao_Tome', b'Africa/Sao_Tome'), (b'Africa/Tripoli', b'Africa/Tripoli'), (b'Africa/Tunis', b'Africa/Tunis'), (b'Africa/Windhoek', b'Africa/Windhoek'), (b'America/Adak', b'America/Adak'), (b'America/Anchorage', b'America/Anchorage'), (b'America/Anguilla', b'America/Anguilla'), (b'America/Antigua', b'America/Antigua'), (b'America/Araguaina', b'America/Araguaina'), (b'America/Argentina/Buenos_Aires', b'America/Argentina/Buenos_Aires'), (b'America/Argentina/Catamarca', b'America/Argentina/Catamarca'), (b'America/Argentina/Cordoba', b'America/Argentina/Cordoba'), (b'America/Argentina/Jujuy', b'America/Argentina/Jujuy'), (b'America/Argentina/La_Rioja', b'America/Argentina/La_Rioja'), (b'America/Argentina/Mendoza', b'America/Argentina/Mendoza'), (b'America/Argentina/Rio_Gallegos', b'America/Argentina/Rio_Gallegos'), (b'America/Argentina/Salta', b'America/Argentina/Salta'), (b'America/Argentina/San_Juan', b'America/Argentina/San_Juan'), (b'America/Argentina/San_Luis', b'America/Argentina/San_Luis'), (b'America/Argentina/Tucuman', b'America/Argentina/Tucuman'), (b'America/Argentina/Ushuaia', b'America/Argentina/Ushuaia'), (b'America/Aruba', b'America/Aruba'), (b'America/Asuncion', b'America/Asuncion'), (b'America/Atikokan', b'America/Atikokan'), (b'America/Bahia', b'America/Bahia'), (b'America/Bahia_Banderas', b'America/Bahia_Banderas'), (b'America/Barbados', b'America/Barbados'), (b'America/Belem', b'America/Belem'), (b'America/Belize', b'America/Belize'), (b'America/Blanc-Sablon', b'America/Blanc-Sablon'), (b'America/Boa_Vista', b'America/Boa_Vista'), (b'America/Bogota', b'America/Bogota'), (b'America/Boise', b'America/Boise'), (b'America/Cambridge_Bay', b'America/Cambridge_Bay'), (b'America/Campo_Grande', b'America/Campo_Grande'), (b'America/Cancun', b'America/Cancun'), (b'America/Caracas', b'America/Caracas'), (b'America/Cayenne', b'America/Cayenne'), (b'America/Cayman', b'America/Cayman'), (b'America/Chicago', b'America/Chicago'), (b'America/Chihuahua', b'America/Chihuahua'), (b'America/Costa_Rica', b'America/Costa_Rica'), (b'America/Creston', b'America/Creston'), (b'America/Cuiaba', b'America/Cuiaba'), (b'America/Curacao', b'America/Curacao'), (b'America/Danmarkshavn', b'America/Danmarkshavn'), (b'America/Dawson', b'America/Dawson'), (b'America/Dawson_Creek', b'America/Dawson_Creek'), (b'America/Denver', b'America/Denver'), (b'America/Detroit', b'America/Detroit'), (b'America/Dominica', b'America/Dominica'), (b'America/Edmonton', b'America/Edmonton'), (b'America/Eirunepe', b'America/Eirunepe'), (b'America/El_Salvador', b'America/El_Salvador'), (b'America/Fortaleza', b'America/Fortaleza'), (b'America/Glace_Bay', b'America/Glace_Bay'), (b'America/Godthab', b'America/Godthab'), (b'America/Goose_Bay', b'America/Goose_Bay'), (b'America/Grand_Turk', b'America/Grand_Turk'), (b'America/Grenada', b'America/Grenada'), (b'America/Guadeloupe', b'America/Guadeloupe'), (b'America/Guatemala', b'America/Guatemala'), (b'America/Guayaquil', b'America/Guayaquil'), (b'America/Guyana', b'America/Guyana'), (b'America/Halifax', b'America/Halifax'), (b'America/Havana', b'America/Havana'), (b'America/Hermosillo', b'America/Hermosillo'), (b'America/Indiana/Indianapolis', b'America/Indiana/Indianapolis'), (b'America/Indiana/Knox', b'America/Indiana/Knox'), (b'America/Indiana/Marengo', b'America/Indiana/Marengo'), (b'America/Indiana/Petersburg', b'America/Indiana/Petersburg'), (b'America/Indiana/Tell_City', b'America/Indiana/Tell_City'), (b'America/Indiana/Vevay', b'America/Indiana/Vevay'), (b'America/Indiana/Vincennes', b'America/Indiana/Vincennes'), (b'America/Indiana/Winamac', b'America/Indiana/Winamac'), (b'America/Inuvik', b'America/Inuvik'), (b'America/Iqaluit', b'America/Iqaluit'), (b'America/Jamaica', b'America/Jamaica'), (b'America/Juneau', b'America/Juneau'), (b'America/Kentucky/Louisville', b'America/Kentucky/Louisville'), (b'America/Kentucky/Monticello', b'America/Kentucky/Monticello'), (b'America/Kralendijk', b'America/Kralendijk'), (b'America/La_Paz', b'America/La_Paz'), (b'America/Lima', b'America/Lima'), (b'America/Los_Angeles', b'America/Los_Angeles'), (b'America/Lower_Princes', b'America/Lower_Princes'), (b'America/Maceio', b'America/Maceio'), (b'America/Managua', b'America/Managua'), (b'America/Manaus', b'America/Manaus'), (b'America/Marigot', b'America/Marigot'), (b'America/Martinique', b'America/Martinique'), (b'America/Matamoros', b'America/Matamoros'), (b'America/Mazatlan', b'America/Mazatlan'), (b'America/Menominee', b'America/Menominee'), (b'America/Merida', b'America/Merida'), (b'America/Metlakatla', b'America/Metlakatla'), (b'America/Mexico_City', b'America/Mexico_City'), (b'America/Miquelon', b'America/Miquelon'), (b'America/Moncton', b'America/Moncton'), (b'America/Monterrey', b'America/Monterrey'), (b'America/Montevideo', b'America/Montevideo'), (b'America/Montreal', b'America/Montreal'), (b'America/Montserrat', b'America/Montserrat'), (b'America/Nassau', b'America/Nassau'), (b'America/New_York', b'America/New_York'), (b'America/Nipigon', b'America/Nipigon'), (b'America/Nome', b'America/Nome'), (b'America/Noronha', b'America/Noronha'), (b'America/North_Dakota/Beulah', b'America/North_Dakota/Beulah'), (b'America/North_Dakota/Center', b'America/North_Dakota/Center'), (b'America/North_Dakota/New_Salem', b'America/North_Dakota/New_Salem'), (b'America/Ojinaga', b'America/Ojinaga'), (b'America/Panama', b'America/Panama'), (b'America/Pangnirtung', b'America/Pangnirtung'), (b'America/Paramaribo', b'America/Paramaribo'), (b'America/Phoenix', b'America/Phoenix'), (b'America/Port-au-Prince', b'America/Port-au-Prince'), (b'America/Port_of_Spain', b'America/Port_of_Spain'), (b'America/Porto_Velho', b'America/Porto_Velho'), (b'America/Puerto_Rico', b'America/Puerto_Rico'), (b'America/Rainy_River', b'America/Rainy_River'), (b'America/Rankin_Inlet', b'America/Rankin_Inlet'), (b'America/Recife', b'America/Recife'), (b'America/Regina', b'America/Regina'), (b'America/Resolute', b'America/Resolute'), (b'America/Rio_Branco', b'America/Rio_Branco'), (b'America/Santa_Isabel', b'America/Santa_Isabel'), (b'America/Santarem', b'America/Santarem'), (b'America/Santiago', b'America/Santiago'), (b'America/Santo_Domingo', b'America/Santo_Domingo'), (b'America/Sao_Paulo', b'America/Sao_Paulo'), (b'America/Scoresbysund', b'America/Scoresbysund'), (b'America/Sitka', b'America/Sitka'), (b'America/St_Barthelemy', b'America/St_Barthelemy'), (b'America/St_Johns', b'America/St_Johns'), (b'America/St_Kitts', b'America/St_Kitts'), (b'America/St_Lucia', b'America/St_Lucia'), (b'America/St_Thomas', b'America/St_Thomas'), (b'America/St_Vincent', b'America/St_Vincent'), (b'America/Swift_Current', b'America/Swift_Current'), (b'America/Tegucigalpa', b'America/Tegucigalpa'), (b'America/Thule', b'America/Thule'), (b'America/Thunder_Bay', b'America/Thunder_Bay'), (b'America/Tijuana', b'America/Tijuana'), (b'America/Toronto', b'America/Toronto'), (b'America/Tortola', b'America/Tortola'), (b'America/Vancouver', b'America/Vancouver'), (b'America/Whitehorse', b'America/Whitehorse'), (b'America/Winnipeg', b'America/Winnipeg'), (b'America/Yakutat', b'America/Yakutat'), (b'America/Yellowknife', b'America/Yellowknife'), (b'Antarctica/Casey', b'Antarctica/Casey'), (b'Antarctica/Davis', b'Antarctica/Davis'), (b'Antarctica/DumontDUrville', b'Antarctica/DumontDUrville'), (b'Antarctica/Macquarie', b'Antarctica/Macquarie'), (b'Antarctica/Mawson', b'Antarctica/Mawson'), (b'Antarctica/McMurdo', b'Antarctica/McMurdo'), (b'Antarctica/Palmer', b'Antarctica/Palmer'), (b'Antarctica/Rothera', b'Antarctica/Rothera'), (b'Antarctica/Syowa', b'Antarctica/Syowa'), (b'Antarctica/Troll', b'Antarctica/Troll'), (b'Antarctica/Vostok', b'Antarctica/Vostok'), (b'Arctic/Longyearbyen', b'Arctic/Longyearbyen'), (b'Asia/Aden', b'Asia/Aden'), (b'Asia/Almaty', b'Asia/Almaty'), (b'Asia/Amman', b'Asia/Amman'), (b'Asia/Anadyr', b'Asia/Anadyr'), (b'Asia/Aqtau', b'Asia/Aqtau'), (b'Asia/Aqtobe', b'Asia/Aqtobe'), (b'Asia/Ashgabat', b'Asia/Ashgabat'), (b'Asia/Baghdad', b'Asia/Baghdad'), (b'Asia/Bahrain', b'Asia/Bahrain'), (b'Asia/Baku', b'Asia/Baku'), (b'Asia/Bangkok', b'Asia/Bangkok'), (b'Asia/Beirut', b'Asia/Beirut'), (b'Asia/Bishkek', b'Asia/Bishkek'), (b'Asia/Brunei', b'Asia/Brunei'), (b'Asia/Chita', b'Asia/Chita'), (b'Asia/Choibalsan', b'Asia/Choibalsan'), (b'Asia/Colombo', b'Asia/Colombo'), (b'Asia/Damascus', b'Asia/Damascus'), (b'Asia/Dhaka', b'Asia/Dhaka'), (b'Asia/Dili', b'Asia/Dili'), (b'Asia/Dubai', b'Asia/Dubai'), (b'Asia/Dushanbe', b'Asia/Dushanbe'), (b'Asia/Gaza', b'Asia/Gaza'), (b'Asia/Hebron', b'Asia/Hebron'), (b'Asia/Ho_Chi_Minh', b'Asia/Ho_Chi_Minh'), (b'Asia/Hong_Kong', b'Asia/Hong_Kong'), (b'Asia/Hovd', b'Asia/Hovd'), (b'Asia/Irkutsk', b'Asia/Irkutsk'), (b'Asia/Jakarta', b'Asia/Jakarta'), (b'Asia/Jayapura', b'Asia/Jayapura'), (b'Asia/Jerusalem', b'Asia/Jerusalem'), (b'Asia/Kabul', b'Asia/Kabul'), (b'Asia/Kamchatka', b'Asia/Kamchatka'), (b'Asia/Karachi', b'Asia/Karachi'), (b'Asia/Kathmandu', b'Asia/Kathmandu'), (b'Asia/Khandyga', b'Asia/Khandyga'), (b'Asia/Kolkata', b'Asia/Kolkata'), (b'Asia/Krasnoyarsk', b'Asia/Krasnoyarsk'), (b'Asia/Kuala_Lumpur', b'Asia/Kuala_Lumpur'), (b'Asia/Kuching', b'Asia/Kuching'), (b'Asia/Kuwait', b'Asia/Kuwait'), (b'Asia/Macau', b'Asia/Macau'), (b'Asia/Magadan', b'Asia/Magadan'), (b'Asia/Makassar', b'Asia/Makassar'), (b'Asia/Manila', b'Asia/Manila'), (b'Asia/Muscat', b'Asia/Muscat'), (b'Asia/Nicosia', b'Asia/Nicosia'), (b'Asia/Novokuznetsk', b'Asia/Novokuznetsk'), (b'Asia/Novosibirsk', b'Asia/Novosibirsk'), (b'Asia/Omsk', b'Asia/Omsk'), (b'Asia/Oral', b'Asia/Oral'), (b'Asia/Phnom_Penh', b'Asia/Phnom_Penh'), (b'Asia/Pontianak', b'Asia/Pontianak'), (b'Asia/Pyongyang', b'Asia/Pyongyang'), (b'Asia/Qatar', b'Asia/Qatar'), (b'Asia/Qyzylorda', b'Asia/Qyzylorda'), (b'Asia/Rangoon', b'Asia/Rangoon'), (b'Asia/Riyadh', b'Asia/Riyadh'), (b'Asia/Sakhalin', b'Asia/Sakhalin'), (b'Asia/Samarkand', b'Asia/Samarkand'), (b'Asia/Seoul', b'Asia/Seoul'), (b'Asia/Shanghai', b'Asia/Shanghai'), (b'Asia/Singapore', b'Asia/Singapore'), (b'Asia/Srednekolymsk', b'Asia/Srednekolymsk'), (b'Asia/Taipei', b'Asia/Taipei'), (b'Asia/Tashkent', b'Asia/Tashkent'), (b'Asia/Tbilisi', b'Asia/Tbilisi'), (b'Asia/Tehran', b'Asia/Tehran'), (b'Asia/Thimphu', b'Asia/Thimphu'), (b'Asia/Tokyo', b'Asia/Tokyo'), (b'Asia/Ulaanbaatar', b'Asia/Ulaanbaatar'), (b'Asia/Urumqi', b'Asia/Urumqi'), (b'Asia/Ust-Nera', b'Asia/Ust-Nera'), (b'Asia/Vientiane', b'Asia/Vientiane'), (b'Asia/Vladivostok', b'Asia/Vladivostok'), (b'Asia/Yakutsk', b'Asia/Yakutsk'), (b'Asia/Yekaterinburg', b'Asia/Yekaterinburg'), (b'Asia/Yerevan', b'Asia/Yerevan'), (b'Atlantic/Azores', b'Atlantic/Azores'), (b'Atlantic/Bermuda', b'Atlantic/Bermuda'), (b'Atlantic/Canary', b'Atlantic/Canary'), (b'Atlantic/Cape_Verde', b'Atlantic/Cape_Verde'), (b'Atlantic/Faroe', b'Atlantic/Faroe'), (b'Atlantic/Madeira', b'Atlantic/Madeira'), (b'Atlantic/Reykjavik', b'Atlantic/Reykjavik'), (b'Atlantic/South_Georgia', b'Atlantic/South_Georgia'), (b'Atlantic/St_Helena', b'Atlantic/St_Helena'), (b'Atlantic/Stanley', b'Atlantic/Stanley'), (b'Australia/Adelaide', b'Australia/Adelaide'), (b'Australia/Brisbane', b'Australia/Brisbane'), (b'Australia/Broken_Hill', b'Australia/Broken_Hill'), (b'Australia/Currie', b'Australia/Currie'), (b'Australia/Darwin', b'Australia/Darwin'), (b'Australia/Eucla', b'Australia/Eucla'), (b'Australia/Hobart', b'Australia/Hobart'), (b'Australia/Lindeman', b'Australia/Lindeman'), (b'Australia/Lord_Howe', b'Australia/Lord_Howe'), (b'Australia/Melbourne', b'Australia/Melbourne'), (b'Australia/Perth', b'Australia/Perth'), (b'Australia/Sydney', b'Australia/Sydney'), (b'Canada/Atlantic', b'Canada/Atlantic'), (b'Canada/Central', b'Canada/Central'), (b'Canada/Eastern', b'Canada/Eastern'), (b'Canada/Mountain', b'Canada/Mountain'), (b'Canada/Newfoundland', b'Canada/Newfoundland'), (b'Canada/Pacific', b'Canada/Pacific'), (b'Europe/Amsterdam', b'Europe/Amsterdam'), (b'Europe/Andorra', b'Europe/Andorra'), (b'Europe/Athens', b'Europe/Athens'), (b'Europe/Belgrade', b'Europe/Belgrade'), (b'Europe/Berlin', b'Europe/Berlin'), (b'Europe/Bratislava', b'Europe/Bratislava'), (b'Europe/Brussels', b'Europe/Brussels'), (b'Europe/Bucharest', b'Europe/Bucharest'), (b'Europe/Budapest', b'Europe/Budapest'), (b'Europe/Busingen', b'Europe/Busingen'), (b'Europe/Chisinau', b'Europe/Chisinau'), (b'Europe/Copenhagen', b'Europe/Copenhagen'), (b'Europe/Dublin', b'Europe/Dublin'), (b'Europe/Gibraltar', b'Europe/Gibraltar'), (b'Europe/Guernsey', b'Europe/Guernsey'), (b'Europe/Helsinki', b'Europe/Helsinki'), (b'Europe/Isle_of_Man', b'Europe/Isle_of_Man'), (b'Europe/Istanbul', b'Europe/Istanbul'), (b'Europe/Jersey', b'Europe/Jersey'), (b'Europe/Kaliningrad', b'Europe/Kaliningrad'), (b'Europe/Kiev', b'Europe/Kiev'), (b'Europe/Lisbon', b'Europe/Lisbon'), (b'Europe/Ljubljana', b'Europe/Ljubljana'), (b'Europe/London', b'Europe/London'), (b'Europe/Luxembourg', b'Europe/Luxembourg'), (b'Europe/Madrid', b'Europe/Madrid'), (b'Europe/Malta', b'Europe/Malta'), (b'Europe/Mariehamn', b'Europe/Mariehamn'), (b'Europe/Minsk', b'Europe/Minsk'), (b'Europe/Monaco', b'Europe/Monaco'), (b'Europe/Moscow', b'Europe/Moscow'), (b'Europe/Oslo', b'Europe/Oslo'), (b'Europe/Paris', b'Europe/Paris'), (b'Europe/Podgorica', b'Europe/Podgorica'), (b'Europe/Prague', b'Europe/Prague'), (b'Europe/Riga', b'Europe/Riga'), (b'Europe/Rome', b'Europe/Rome'), (b'Europe/Samara', b'Europe/Samara'), (b'Europe/San_Marino', b'Europe/San_Marino'), (b'Europe/Sarajevo', b'Europe/Sarajevo'), (b'Europe/Simferopol', b'Europe/Simferopol'), (b'Europe/Skopje', b'Europe/Skopje'), (b'Europe/Sofia', b'Europe/Sofia'), (b'Europe/Stockholm', b'Europe/Stockholm'), (b'Europe/Tallinn', b'Europe/Tallinn'), (b'Europe/Tirane', b'Europe/Tirane'), (b'Europe/Uzhgorod', b'Europe/Uzhgorod'), (b'Europe/Vaduz', b'Europe/Vaduz'), (b'Europe/Vatican', b'Europe/Vatican'), (b'Europe/Vienna', b'Europe/Vienna'), (b'Europe/Vilnius', b'Europe/Vilnius'), (b'Europe/Volgograd', b'Europe/Volgograd'), (b'Europe/Warsaw', b'Europe/Warsaw'), (b'Europe/Zagreb', b'Europe/Zagreb'), (b'Europe/Zaporozhye', b'Europe/Zaporozhye'), (b'Europe/Zurich', b'Europe/Zurich'), (b'GMT', b'GMT'), (b'Indian/Antananarivo', b'Indian/Antananarivo'), (b'Indian/Chagos', b'Indian/Chagos'), (b'Indian/Christmas', b'Indian/Christmas'), (b'Indian/Cocos', b'Indian/Cocos'), (b'Indian/Comoro', b'Indian/Comoro'), (b'Indian/Kerguelen', b'Indian/Kerguelen'), (b'Indian/Mahe', b'Indian/Mahe'), (b'Indian/Maldives', b'Indian/Maldives'), (b'Indian/Mauritius', b'Indian/Mauritius'), (b'Indian/Mayotte', b'Indian/Mayotte'), (b'Indian/Reunion', b'Indian/Reunion'), (b'Pacific/Apia', b'Pacific/Apia'), (b'Pacific/Auckland', b'Pacific/Auckland'), (b'Pacific/Bougainville', b'Pacific/Bougainville'), (b'Pacific/Chatham', b'Pacific/Chatham'), (b'Pacific/Chuuk', b'Pacific/Chuuk'), (b'Pacific/Easter', b'Pacific/Easter'), (b'Pacific/Efate', b'Pacific/Efate'), (b'Pacific/Enderbury', b'Pacific/Enderbury'), (b'Pacific/Fakaofo', b'Pacific/Fakaofo'), (b'Pacific/Fiji', b'Pacific/Fiji'), (b'Pacific/Funafuti', b'Pacific/Funafuti'), (b'Pacific/Galapagos', b'Pacific/Galapagos'), (b'Pacific/Gambier', b'Pacific/Gambier'), (b'Pacific/Guadalcanal', b'Pacific/Guadalcanal'), (b'Pacific/Guam', b'Pacific/Guam'), (b'Pacific/Honolulu', b'Pacific/Honolulu'), (b'Pacific/Johnston', b'Pacific/Johnston'), (b'Pacific/Kiritimati', b'Pacific/Kiritimati'), (b'Pacific/Kosrae', b'Pacific/Kosrae'), (b'Pacific/Kwajalein', b'Pacific/Kwajalein'), (b'Pacific/Majuro', b'Pacific/Majuro'), (b'Pacific/Marquesas', b'Pacific/Marquesas'), (b'Pacific/Midway', b'Pacific/Midway'), (b'Pacific/Nauru', b'Pacific/Nauru'), (b'Pacific/Niue', b'Pacific/Niue'), (b'Pacific/Norfolk', b'Pacific/Norfolk'), (b'Pacific/Noumea', b'Pacific/Noumea'), (b'Pacific/Pago_Pago', b'Pacific/Pago_Pago'), (b'Pacific/Palau', b'Pacific/Palau'), (b'Pacific/Pitcairn', b'Pacific/Pitcairn'), (b'Pacific/Pohnpei', b'Pacific/Pohnpei'), (b'Pacific/Port_Moresby', b'Pacific/Port_Moresby'), (b'Pacific/Rarotonga', b'Pacific/Rarotonga'), (b'Pacific/Saipan', b'Pacific/Saipan'), (b'Pacific/Tahiti', b'Pacific/Tahiti'), (b'Pacific/Tarawa', b'Pacific/Tarawa'), (b'Pacific/Tongatapu', b'Pacific/Tongatapu'), (b'Pacific/Wake', b'Pacific/Wake'), (b'Pacific/Wallis', b'Pacific/Wallis'), (b'US/Alaska', b'US/Alaska'), (b'US/Arizona', b'US/Arizona'), (b'US/Central', b'US/Central'), (b'US/Eastern', b'US/Eastern'), (b'US/Hawaii', b'US/Hawaii'), (b'US/Mountain', b'US/Mountain'), (b'US/Pacific', b'US/Pacific'), (b'UTC', b'UTC')])), ('region', models.CharField(default=servo.defaults.locale, help_text='Affects formatting of numbers, dates and currencies.', max_length=32, verbose_name='region', choices=[(b'da_DK.UTF-8', 'Denmark'), (b'et_EE.UTF-8', 'Estonia'), (b'fi_FI.UTF-8', 'Finland'), (b'en_US.UTF-8', 'United States'), (b'nl_NL.UTF-8', 'Netherlands'), (b'sv_SE.UTF-8', 'Sweden')])), ('notify_by_email', models.BooleanField(default=False, help_text='Event notifications will also be emailed to you.', verbose_name='email notifications')), ('autoprint', models.BooleanField(default=True, help_text='Opens print dialog automatically.', verbose_name='print automatically')), ('tech_id', models.CharField(default=b'', max_length=16, verbose_name='tech ID', blank=True)), ('gsx_userid', models.CharField(default=b'', max_length=128, verbose_name='User ID', blank=True)), ('gsx_password', models.CharField(default=b'', max_length=256, verbose_name='Password', blank=True)), ('gsx_poprefix', models.CharField(default=b'', help_text='GSX repairs you create will be prefixed', max_length=8, verbose_name='PO prefix', blank=True)), ('photo', models.ImageField(help_text='Maximum avatar size is 1MB', upload_to=b'avatars', null=True, verbose_name='photo', blank=True)), ('is_visible', models.BooleanField(default=True, editable=False)), ], options={ 'ordering': ('full_name',), 'verbose_name': 'User', 'verbose_name_plural': 'Users & Groups', }, bases=(models.Model,), ), migrations.CreateModel( name='Accessory', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('name', models.CharField(max_length=255)), ('qty', models.IntegerField(default=1)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Attachment', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('object_id', models.PositiveIntegerField()), ('mime_type', models.CharField(max_length=64, editable=False)), ('content', models.FileField(upload_to=b'attachments', verbose_name='file', validators=[servo.validators.file_upload_validator])), ('content_type', models.ForeignKey(to='contenttypes.ContentType')), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'get_latest_by': 'id', }, bases=(models.Model,), ), migrations.CreateModel( name='Calendar', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(default='New Calendar', max_length=128, verbose_name='title')), ('hours_per_day', models.FloatField(help_text='How many hours per day should be in this calendar', null=True, verbose_name='hours per day', blank=True)), ('user', models.ForeignKey(editable=False, to=settings.AUTH_USER_MODEL)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='CalendarEvent', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('started_at', models.DateTimeField(default=django.utils.timezone.now)), ('finished_at', models.DateTimeField(null=True, blank=True)), ('seconds', models.PositiveIntegerField(null=True, editable=False)), ('notes', models.TextField(null=True, blank=True)), ('calendar', models.ForeignKey(editable=False, to='servo.Calendar')), ], options={ 'ordering': ['-started_at'], }, bases=(models.Model,), ), migrations.CreateModel( name='Checklist', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(default='New Checklist', unique=True, max_length=255, verbose_name='title')), ('enabled', models.BooleanField(default=True, verbose_name='Enabled')), ], options={ 'ordering': ('title',), 'verbose_name': 'Checklist', 'verbose_name_plural': 'Checklists', }, bases=(models.Model,), ), migrations.CreateModel( name='ChecklistItem', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(max_length=255, verbose_name='Task')), ('description', models.TextField(default=b'', verbose_name='Description', blank=True)), ('checklist', models.ForeignKey(to='servo.Checklist')), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='ChecklistItemValue', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('checked_at', models.DateTimeField(auto_now_add=True)), ('checked_by', models.ForeignKey(to=settings.AUTH_USER_MODEL)), ('item', models.ForeignKey(to='servo.ChecklistItem')), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Configuration', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('key', models.CharField(max_length=255)), ('value', models.TextField(default=b'', blank=True)), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='ContactInfo', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('key', models.CharField(max_length=255)), ('value', models.CharField(max_length=255)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Customer', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('name', models.CharField(default='New Customer', max_length=255, verbose_name='name')), ('fullname', models.CharField(default=b'', max_length=255, editable=False)), ('phone', models.CharField(default=b'', max_length=32, verbose_name='phone', blank=True)), ('email', models.EmailField(default=b'', max_length=75, verbose_name='email', blank=True)), ('street_address', models.CharField(default=b'', max_length=128, verbose_name='address', blank=True)), ('zip_code', models.CharField(default=b'', max_length=32, verbose_name='ZIP Code', blank=True)), ('city', models.CharField(default=b'', max_length=32, verbose_name='city', blank=True)), ('country', models.CharField(default=servo.defaults.country, max_length=2, verbose_name='Country', blank=True, choices=[('AD', 'Andorra'), ('AE', 'United Arab Emirates'), ('AF', 'Afghanistan'), ('AG', 'Antigua & Barbuda'), ('AI', 'Anguilla'), ('AL', 'Albania'), ('AM', 'Armenia'), ('AO', 'Angola'), ('AQ', 'Antarctica'), ('AR', 'Argentina'), ('AS', 'Samoa (American)'), ('AT', 'Austria'), ('AU', 'Australia'), ('AW', 'Aruba'), ('AX', 'Aaland Islands'), ('AZ', 'Azerbaijan'), ('BA', 'Bosnia & Herzegovina'), ('BB', 'Barbados'), ('BD', 'Bangladesh'), ('BE', 'Belgium'), ('BF', 'Burkina Faso'), ('BG', 'Bulgaria'), ('BH', 'Bahrain'), ('BI', 'Burundi'), ('BJ', 'Benin'), ('BL', 'St Barthelemy'), ('BM', 'Bermuda'), ('BN', 'Brunei'), ('BO', 'Bolivia'), ('BQ', 'Caribbean Netherlands'), ('BR', 'Brazil'), ('BS', 'Bahamas'), ('BT', 'Bhutan'), ('BV', 'Bouvet Island'), ('BW', 'Botswana'), ('BY', 'Belarus'), ('BZ', 'Belize'), ('CA', 'Canada'), ('CC', 'Cocos (Keeling) Islands'), ('CD', 'Congo (Dem. Rep.)'), ('CF', 'Central African Rep.'), ('CG', 'Congo (Rep.)'), ('CH', 'Switzerland'), ('CI', "Cote d'Ivoire"), ('CK', 'Cook Islands'), ('CL', 'Chile'), ('CM', 'Cameroon'), ('CN', 'China'), ('CO', 'Colombia'), ('CR', 'Costa Rica'), ('CU', 'Cuba'), ('CV', 'Cape Verde'), ('CW', 'Curacao'), ('CX', 'Christmas Island'), ('CY', 'Cyprus'), ('CZ', 'Czech Republic'), ('DE', 'Germany'), ('DJ', 'Djibouti'), ('DK', 'Denmark'), ('DM', 'Dominica'), ('DO', 'Dominican Republic'), ('DZ', 'Algeria'), ('EC', 'Ecuador'), ('EE', 'Estonia'), ('EG', 'Egypt'), ('EH', 'Western Sahara'), ('ER', 'Eritrea'), ('ES', 'Spain'), ('ET', 'Ethiopia'), ('FI', 'Finland'), ('FJ', 'Fiji'), ('FK', 'Falkland Islands'), ('FM', 'Micronesia'), ('FO', 'Faroe Islands'), ('FR', 'France'), ('GA', 'Gabon'), ('GB', 'Britain (UK)'), ('GD', 'Grenada'), ('GE', 'Georgia'), ('GF', 'French Guiana'), ('GG', 'Guernsey'), ('GH', 'Ghana'), ('GI', 'Gibraltar'), ('GL', 'Greenland'), ('GM', 'Gambia'), ('GN', 'Guinea'), ('GP', 'Guadeloupe'), ('GQ', 'Equatorial Guinea'), ('GR', 'Greece'), ('GS', 'South Georgia & the South Sandwich Islands'), ('GT', 'Guatemala'), ('GU', 'Guam'), ('GW', 'Guinea-Bissau'), ('GY', 'Guyana'), ('HK', 'Hong Kong'), ('HM', 'Heard Island & McDonald Islands'), ('HN', 'Honduras'), ('HR', 'Croatia'), ('HT', 'Haiti'), ('HU', 'Hungary'), ('ID', 'Indonesia'), ('IE', 'Ireland'), ('IL', 'Israel'), ('IM', 'Isle of Man'), ('IN', 'India'), ('IO', 'British Indian Ocean Territory'), ('IQ', 'Iraq'), ('IR', 'Iran'), ('IS', 'Iceland'), ('IT', 'Italy'), ('JE', 'Jersey'), ('JM', 'Jamaica'), ('JO', 'Jordan'), ('JP', 'Japan'), ('KE', 'Kenya'), ('KG', 'Kyrgyzstan'), ('KH', 'Cambodia'), ('KI', 'Kiribati'), ('KM', 'Comoros'), ('KN', 'St Kitts & Nevis'), ('KP', 'Korea (North)'), ('KR', 'Korea (South)'), ('KW', 'Kuwait'), ('KY', 'Cayman Islands'), ('KZ', 'Kazakhstan'), ('LA', 'Laos'), ('LB', 'Lebanon'), ('LC', 'St Lucia'), ('LI', 'Liechtenstein'), ('LK', 'Sri Lanka'), ('LR', 'Liberia'), ('LS', 'Lesotho'), ('LT', 'Lithuania'), ('LU', 'Luxembourg'), ('LV', 'Latvia'), ('LY', 'Libya'), ('MA', 'Morocco'), ('MC', 'Monaco'), ('MD', 'Moldova'), ('ME', 'Montenegro'), ('MF', 'St Martin (French part)'), ('MG', 'Madagascar'), ('MH', 'Marshall Islands'), ('MK', 'Macedonia'), ('ML', 'Mali'), ('MM', 'Myanmar (Burma)'), ('MN', 'Mongolia'), ('MO', 'Macau'), ('MP', 'Northern Mariana Islands'), ('MQ', 'Martinique'), ('MR', 'Mauritania'), ('MS', 'Montserrat'), ('MT', 'Malta'), ('MU', 'Mauritius'), ('MV', 'Maldives'), ('MW', 'Malawi'), ('MX', 'Mexico'), ('MY', 'Malaysia'), ('MZ', 'Mozambique'), ('NA', 'Namibia'), ('NC', 'New Caledonia'), ('NE', 'Niger'), ('NF', 'Norfolk Island'), ('NG', 'Nigeria'), ('NI', 'Nicaragua'), ('NL', 'Netherlands'), ('NO', 'Norway'), ('NP', 'Nepal'), ('NR', 'Nauru'), ('NU', 'Niue'), ('NZ', 'New Zealand'), ('OM', 'Oman'), ('PA', 'Panama'), ('PE', 'Peru'), ('PF', 'French Polynesia'), ('PG', 'Papua New Guinea'), ('PH', 'Philippines'), ('PK', 'Pakistan'), ('PL', 'Poland'), ('PM', 'St Pierre & Miquelon'), ('PN', 'Pitcairn'), ('PR', 'Puerto Rico'), ('PS', 'Palestine'), ('PT', 'Portugal'), ('PW', 'Palau'), ('PY', 'Paraguay'), ('QA', 'Qatar'), ('RE', 'Reunion'), ('RO', 'Romania'), ('RS', 'Serbia'), ('RU', 'Russia'), ('RW', 'Rwanda'), ('SA', 'Saudi Arabia'), ('SB', 'Solomon Islands'), ('SC', 'Seychelles'), ('SD', 'Sudan'), ('SE', 'Sweden'), ('SG', 'Singapore'), ('SH', 'St Helena'), ('SI', 'Slovenia'), ('SJ', 'Svalbard & Jan Mayen'), ('SK', 'Slovakia'), ('SL', 'Sierra Leone'), ('SM', 'San Marino'), ('SN', 'Senegal'), ('SO', 'Somalia'), ('SR', 'Suriname'), ('SS', 'South Sudan'), ('ST', 'Sao Tome & Principe'), ('SV', 'El Salvador'), ('SX', 'St Maarten (Dutch part)'), ('SY', 'Syria'), ('SZ', 'Swaziland'), ('TC', 'Turks & Caicos Is'), ('TD', 'Chad'), ('TF', 'French Southern & Antarctic Lands'), ('TG', 'Togo'), ('TH', 'Thailand'), ('TJ', 'Tajikistan'), ('TK', 'Tokelau'), ('TL', 'East Timor'), ('TM', 'Turkmenistan'), ('TN', 'Tunisia'), ('TO', 'Tonga'), ('TR', 'Turkey'), ('TT', 'Trinidad & Tobago'), ('TV', 'Tuvalu'), ('TW', 'Taiwan'), ('TZ', 'Tanzania'), ('UA', 'Ukraine'), ('UG', 'Uganda'), ('UM', 'US minor outlying islands'), ('US', 'United States'), ('UY', 'Uruguay'), ('UZ', 'Uzbekistan'), ('VA', 'Vatican City'), ('VC', 'St Vincent'), ('VE', 'Venezuela'), ('VG', 'Virgin Islands (UK)'), ('VI', 'Virgin Islands (US)'), ('VN', 'Vietnam'), ('VU', 'Vanuatu'), ('WF', 'Wallis & Futuna'), ('WS', 'Samoa (western)'), ('YE', 'Yemen'), ('YT', 'Mayotte'), ('ZA', 'South Africa'), ('ZM', 'Zambia'), ('ZW', 'Zimbabwe')])), ('photo', models.ImageField(upload_to=b'photos', null=True, verbose_name='photo', blank=True)), ('notes', models.TextField(default=b'', verbose_name='notes', blank=True)), ('created_at', models.DateTimeField(auto_now=True)), ('is_company', models.BooleanField(default=False, help_text='companies can contain other contacts', verbose_name='company')), ('lft', models.PositiveIntegerField(editable=False, db_index=True)), ('rght', models.PositiveIntegerField(editable=False, db_index=True)), ('tree_id', models.PositiveIntegerField(editable=False, db_index=True)), ('level', models.PositiveIntegerField(editable=False, db_index=True)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='CustomerGroup', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('name', models.CharField(default='New Group', unique=True, max_length=255, verbose_name='name')), ('slug', models.SlugField(editable=False)), ], options={ 'ordering': ('id',), 'get_latest_by': 'id', }, bases=(models.Model,), ), migrations.CreateModel( name='Device', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('sn', models.CharField(default=b'', max_length=32, verbose_name='Serial Number', blank=True, validators=[servo.validators.sn_validator])), ('description', models.CharField(default='New Device', max_length=128, verbose_name='description')), ('brand', models.CharField(default='Apple', max_length=128, verbose_name='Brand', blank=True)), ('reseller', models.CharField(default=b'', max_length=128, verbose_name='Reseller', blank=True)), ('created_at', models.DateTimeField(auto_now_add=True, null=True)), ('imei', models.CharField(default=b'', max_length=15, verbose_name='IMEI Number', blank=True)), ('initial_activation_policy', models.CharField(default=b'', verbose_name='Initial Activation Policy', max_length=128, editable=False)), ('applied_activation_policy', models.CharField(default=b'', verbose_name='Applied Activation Policy', max_length=128, editable=False)), ('unlocked', models.NullBooleanField(default=None, editable=False)), ('slug', models.SlugField(max_length=128, null=True, editable=False)), ('product_line', models.CharField(default=b'OTHER', max_length=16, verbose_name='Product Line', choices=[(b'IPODCLASSIC', b'iPod Classic'), (b'POWERMAC', b'Power Mac'), (b'APPLETV', b'Apple TV'), (b'IMAC', b'iMac'), (b'OTHER', b'Other Products'), (b'MACBOOKAIR', b'MacBook Air'), (b'DISPLAYS', b'Display'), (b'IPODTOUCH', b'iPod Touch'), (b'MACPRO', b'Mac Pro'), (b'IPODNANO', b'iPod nano'), (b'IPAD', b'iPad'), (b'MACBOOK', b'MacBook'), (b'MACACCESSORY', b'Mac Accessory'), (b'MACMINI', b'Mac mini'), (b'SERVER', b'Server'), (b'IPHONE', b'iPhone'), (b'IPHONEACCESSORY', b'iPhone Accessory'), (b'IPODSHUFFLE', b'iPod Shuffle'), (b'MACBOOKPRO', b'MacBook Pro')])), ('config_code', models.CharField(default=b'', max_length=8, editable=False)), ('configuration', models.CharField(default=b'', max_length=256, verbose_name='configuration', blank=True)), ('warranty_status', models.CharField(default=b'NA', max_length=3, verbose_name='Warranty Status', choices=[(b'QP', 'Quality Program'), (b'CS', 'Customer Satisfaction'), (b'ALW', 'Apple Limited Warranty'), (b'APP', 'AppleCare Protection Plan'), (b'CC', 'Custom Bid Contracts'), (b'WTY', "3'rd Party Warranty"), (b'OOW', 'Out Of Warranty (No Coverage)'), (b'NA', 'Unknown')])), ('username', models.CharField(default=b'', max_length=32, verbose_name='username', blank=True)), ('password', models.CharField(default=b'', max_length=32, verbose_name='password', blank=True)), ('purchased_on', models.DateField(null=True, verbose_name='Date Purchased', blank=True)), ('purchase_country', models.CharField(default=servo.defaults.country, editable=False, choices=[('AF', 'Afghanistan'), ('AX', '\xc5land Islands'), ('AL', 'Albania'), ('DZ', 'Algeria'), ('AS', 'American Samoa'), ('AD', 'Andorra'), ('AO', 'Angola'), ('AI', 'Anguilla'), ('AQ', 'Antarctica'), ('AG', 'Antigua and Barbuda'), ('AR', 'Argentina'), ('AM', 'Armenia'), ('AW', 'Aruba'), ('AU', 'Australia'), ('AT', 'Austria'), ('AZ', 'Azerbaijan'), ('BS', 'Bahamas'), ('BH', 'Bahrain'), ('BD', 'Bangladesh'), ('BB', 'Barbados'), ('BY', 'Belarus'), ('BE', 'Belgium'), ('BZ', 'Belize'), ('BJ', 'Benin'), ('BM', 'Bermuda'), ('BT', 'Bhutan'), ('BO', 'Bolivia'), ('BQ', 'Bonaire, Sint Eustatius and Saba'), ('BA', 'Bosnia and Herzegovina'), ('BW', 'Botswana'), ('BV', 'Bouvet Island'), ('BR', 'Brazil'), ('IO', 'British Indian Ocean Territory'), ('BN', 'Brunei'), ('BG', 'Bulgaria'), ('BF', 'Burkina Faso'), ('BI', 'Burundi'), ('CV', 'Cabo Verde'), ('KH', 'Cambodia'), ('CM', 'Cameroon'), ('CA', 'Canada'), ('KY', 'Cayman Islands'), ('CF', 'Central African Republic'), ('TD', 'Chad'), ('CL', 'Chile'), ('CN', 'China'), ('CX', 'Christmas Island'), ('CC', 'Cocos (Keeling) Islands'), ('CO', 'Colombia'), ('KM', 'Comoros'), ('CG', 'Congo'), ('CD', 'Congo (the Democratic Republic of the)'), ('CK', 'Cook Islands'), ('CR', 'Costa Rica'), ('CI', "C\xf4te d'Ivoire"), ('HR', 'Croatia'), ('CU', 'Cuba'), ('CW', 'Cura\xe7ao'), ('CY', 'Cyprus'), ('CZ', 'Czech Republic'), ('DK', 'Denmark'), ('DJ', 'Djibouti'), ('DM', 'Dominica'), ('DO', 'Dominican Republic'), ('EC', 'Ecuador'), ('EG', 'Egypt'), ('SV', 'El Salvador'), ('GQ', 'Equatorial Guinea'), ('ER', 'Eritrea'), ('EE', 'Estonia'), ('ET', 'Ethiopia'), ('FK', 'Falkland Islands [Malvinas]'), ('FO', 'Faroe Islands'), ('FJ', 'Fiji'), ('FI', 'Finland'), ('FR', 'France'), ('GF', 'French Guiana'), ('PF', 'French Polynesia'), ('TF', 'French Southern Territories'), ('GA', 'Gabon'), ('GM', 'Gambia (The)'), ('GE', 'Georgia'), ('DE', 'Germany'), ('GH', 'Ghana'), ('GI', 'Gibraltar'), ('GR', 'Greece'), ('GL', 'Greenland'), ('GD', 'Grenada'), ('GP', 'Guadeloupe'), ('GU', 'Guam'), ('GT', 'Guatemala'), ('GG', 'Guernsey'), ('GN', 'Guinea'), ('GW', 'Guinea-Bissau'), ('GY', 'Guyana'), ('HT', 'Haiti'), ('HM', 'Heard Island and McDonald Islands'), ('VA', 'Holy See [Vatican City State]'), ('HN', 'Honduras'), ('HK', 'Hong Kong'), ('HU', 'Hungary'), ('IS', 'Iceland'), ('IN', 'India'), ('ID', 'Indonesia'), ('IR', 'Iran'), ('IQ', 'Iraq'), ('IE', 'Ireland'), ('IM', 'Isle of Man'), ('IL', 'Israel'), ('IT', 'Italy'), ('JM', 'Jamaica'), ('JP', 'Japan'), ('JE', 'Jersey'), ('JO', 'Jordan'), ('KZ', 'Kazakhstan'), ('KE', 'Kenya'), ('KI', 'Kiribati'), ('KW', 'Kuwait'), ('KG', 'Kyrgyzstan'), ('LA', 'Laos'), ('LV', 'Latvia'), ('LB', 'Lebanon'), ('LS', 'Lesotho'), ('LR', 'Liberia'), ('LY', 'Libya'), ('LI', 'Liechtenstein'), ('LT', 'Lithuania'), ('LU', 'Luxembourg'), ('MO', 'Macao'), ('MK', 'Macedonia (the former Yugoslav Republic of)'), ('MG', 'Madagascar'), ('MW', 'Malawi'), ('MY', 'Malaysia'), ('MV', 'Maldives'), ('ML', 'Mali'), ('MT', 'Malta'), ('MH', 'Marshall Islands'), ('MQ', 'Martinique'), ('MR', 'Mauritania'), ('MU', 'Mauritius'), ('YT', 'Mayotte'), ('MX', 'Mexico'), ('FM', 'Micronesia (the Federated States of)'), ('MD', 'Moldovia'), ('MC', 'Monaco'), ('MN', 'Mongolia'), ('ME', 'Montenegro'), ('MS', 'Montserrat'), ('MA', 'Morocco'), ('MZ', 'Mozambique'), ('MM', 'Myanmar'), ('NA', 'Namibia'), ('NR', 'Nauru'), ('NP', 'Nepal'), ('NL', 'Netherlands'), ('NC', 'New Caledonia'), ('NZ', 'New Zealand'), ('NI', 'Nicaragua'), ('NE', 'Niger'), ('NG', 'Nigeria'), ('NU', 'Niue'), ('NF', 'Norfolk Island'), ('KP', 'North Korea'), ('MP', 'Northern Mariana Islands'), ('NO', 'Norway'), ('OM', 'Oman'), ('PK', 'Pakistan'), ('PW', 'Palau'), ('PS', 'Palestine, State of'), ('PA', 'Panama'), ('PG', 'Papua New Guinea'), ('PY', 'Paraguay'), ('PE', 'Peru'), ('PH', 'Philippines'), ('PN', 'Pitcairn'), ('PL', 'Poland'), ('PT', 'Portugal'), ('PR', 'Puerto Rico'), ('QA', 'Qatar'), ('RE', 'R\xe9union'), ('RO', 'Romania'), ('RU', 'Russia'), ('RW', 'Rwanda'), ('BL', 'Saint Barth\xe9lemy'), ('SH', 'Saint Helena, Ascension and Tristan da Cunha'), ('KN', 'Saint Kitts and Nevis'), ('LC', 'Saint Lucia'), ('MF', 'Saint Martin (French part)'), ('PM', 'Saint Pierre and Miquelon'), ('VC', 'Saint Vincent and the Grenadines'), ('WS', 'Samoa'), ('SM', 'San Marino'), ('ST', 'Sao Tome and Principe'), ('SA', 'Saudi Arabia'), ('SN', 'Senegal'), ('RS', 'Serbia'), ('SC', 'Seychelles'), ('SL', 'Sierra Leone'), ('SG', 'Singapore'), ('SX', 'Sint Maarten (Dutch part)'), ('SK', 'Slovakia'), ('SI', 'Slovenia'), ('SB', 'Solomon Islands'), ('SO', 'Somalia'), ('ZA', 'South Africa'), ('GS', 'South Georgia and the South Sandwich Islands'), ('KR', 'South Korea'), ('SS', 'South Sudan'), ('ES', 'Spain'), ('LK', 'Sri Lanka'), ('SD', 'Sudan'), ('SR', 'Suriname'), ('SJ', 'Svalbard and Jan Mayen'), ('SZ', 'Swaziland'), ('SE', 'Sweden'), ('CH', 'Switzerland'), ('SY', 'Syria'), ('TW', 'Taiwan'), ('TJ', 'Tajikistan'), ('TZ', 'Tanzania'), ('TH', 'Thailand'), ('TL', 'Timor-Leste'), ('TG', 'Togo'), ('TK', 'Tokelau'), ('TO', 'Tonga'), ('TT', 'Trinidad and Tobago'), ('TN', 'Tunisia'), ('TR', 'Turkey'), ('TM', 'Turkmenistan'), ('TC', 'Turks and Caicos Islands'), ('TV', 'Tuvalu'), ('UG', 'Uganda'), ('UA', 'Ukraine'), ('AE', 'United Arab Emirates'), ('GB', 'United Kingdom'), ('US', 'United States'), ('UM', 'United States Minor Outlying Islands'), ('UY', 'Uruguay'), ('UZ', 'Uzbekistan'), ('VU', 'Vanuatu'), ('VE', 'Venezuela'), ('VN', 'Vietnam'), ('VG', 'Virgin Islands (British)'), ('VI', 'Virgin Islands (U.S.)'), ('WF', 'Wallis and Futuna'), ('EH', 'Western Sahara'), ('YE', 'Yemen'), ('ZM', 'Zambia'), ('ZW', 'Zimbabwe')], max_length=128, blank=True, verbose_name='Purchase Country')), ('sla_description', models.TextField(null=True, editable=False)), ('has_onsite', models.BooleanField(default=False, help_text='Device is eligible for onsite repairs in GSX')), ('contract_start_date', models.DateField(null=True, editable=False)), ('contract_end_date', models.DateField(null=True, editable=False)), ('onsite_start_date', models.DateField(null=True, editable=False)), ('onsite_end_date', models.DateField(null=True, editable=False)), ('parts_and_labor_covered', models.BooleanField(default=False, editable=False)), ('notes', models.TextField(default=b'', verbose_name='notes', blank=True)), ('photo', models.ImageField(upload_to=b'devices', null=True, verbose_name='photo', blank=True)), ('image_url', models.URLField(null=True, verbose_name='Image URL', blank=True)), ('manual_url', models.URLField(null=True, verbose_name='Manual URL', blank=True)), ('exploded_view_url', models.URLField(null=True, verbose_name='Exploded View', blank=True)), ('is_vintage', models.BooleanField(default=False, help_text='Device is considered vintage in GSX', verbose_name=b'vintage')), ('fmip_active', models.BooleanField(default=False, editable=False)), ], options={ 'get_latest_by': 'id', }, bases=(models.Model,), ), migrations.CreateModel( name='DeviceGroup', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(unique=True, max_length=128)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Escalation', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('escalation_id', models.CharField(default=b'', max_length=22, editable=False)), ('contexts', models.TextField(default=b'{}', blank=True)), ('issue_type', models.CharField(default=b'', max_length=4, blank=True, choices=[(b'AMQ', b'Account Management Question'), (b'UQ', b'GSX Usage Question'), (b'OSI', b'Order Status Issue'), (b'PRI', b'Part Return Issue'), (b'PPOR', b'Problem Placing Order/Repair'), (b'PUR', b'Problem Updating Repair'), (b'SCI', b'Shipping Carrier Issue'), (b'SES', b'Service Excellence Scoring'), (b'ARF', b'Apple Retail Feedback'), (b'DF', b'Depot Feedback'), (b'FS', b'GSX Feedback/Suggestion'), (b'WS', b'GSX Web Services (API)'), (b'SEPI', b'Service Excellence Program Information'), (b'TTI', b'Technical or Troubleshooting Issue'), (b'DTA', b'Diagnostic Tool Assistance'), (b'BIQ', b'Billing or Invoice Question'), (b'SESC', b'Safety Issue')])), ('status', models.CharField(default=b'O', max_length=1, choices=[(b'O', b'Open'), (b'C', b'Closed'), (b'E', b'Escalated')])), ('submitted_at', models.DateTimeField(null=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('created_by', models.ForeignKey(editable=False, to=settings.AUTH_USER_MODEL, null=True)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Event', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('object_id', models.PositiveIntegerField()), ('description', models.CharField(max_length=255)), ('triggered_at', models.DateTimeField(auto_now_add=True)), ('handled_at', models.DateTimeField(null=True)), ('action', models.CharField(max_length=32)), ('priority', models.SmallIntegerField(default=1)), ('content_type', models.ForeignKey(to='contenttypes.ContentType')), ('notify_users', models.ManyToManyField(related_name='notifications', to=settings.AUTH_USER_MODEL)), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ('triggered_by', models.ForeignKey(to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ('priority', '-id'), }, bases=(models.Model,), ), migrations.CreateModel( name='FlaggedItem', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('object_id', models.PositiveIntegerField()), ('content_type', models.ForeignKey(to='contenttypes.ContentType')), ('flagged_by', models.ForeignKey(to=settings.AUTH_USER_MODEL)), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'abstract': False, }, bases=(models.Model,), ), migrations.CreateModel( name='GsxAccount', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(default='New GSX Account', max_length=128)), ('sold_to', models.CharField(max_length=10, verbose_name='Sold-To')), ('ship_to', models.CharField(max_length=10, verbose_name='Ship-To')), ('region', models.CharField(max_length=3, verbose_name='Region', choices=[(b'002', b'Asia/Pacific'), (b'003', b'Japan'), (b'004', b'Europe'), (b'005', b'United States'), (b'006', b'Canadia'), (b'007', b'Latin America')])), ('user_id', models.CharField(default=b'', max_length=128, verbose_name='User ID', blank=True)), ('password', models.CharField(default=b'', max_length=256, verbose_name='Password', blank=True)), ('environment', models.CharField(default=b'pr', max_length=2, verbose_name='Environment', choices=[(b'pr', b'Production'), (b'ut', b'Development'), (b'it', b'Testing')])), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'ordering': ['title'], 'get_latest_by': 'id', 'verbose_name': 'GSX Account', 'verbose_name_plural': 'GSX Accounts', }, bases=(models.Model,), ), migrations.CreateModel( name='Inventory', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('amount_minimum', models.PositiveIntegerField(default=0, verbose_name='minimum amount')), ('amount_reserved', models.PositiveIntegerField(default=0, verbose_name='reserved amount')), ('amount_stocked', models.IntegerField(default=0, verbose_name='stocked amount')), ('amount_ordered', models.PositiveIntegerField(default=0, verbose_name='ordered amount')), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Invoice', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('payment_method', models.IntegerField(default=0, verbose_name='Payment Method', editable=False, choices=[(0, 'No Charge'), (1, 'Cash'), (2, 'Invoice'), (3, 'Credit Card'), (4, 'Mail payment'), (5, 'Online payment')])), ('is_paid', models.BooleanField(default=False, verbose_name='paid')), ('paid_at', models.DateTimeField(null=True, editable=False)), ('customer_name', models.CharField(default='Walk-in', max_length=255, verbose_name='Name')), ('customer_phone', models.CharField(max_length=128, null=True, verbose_name='Phone', blank=True)), ('customer_email', models.CharField(max_length=128, null=True, verbose_name='Email', blank=True)), ('customer_address', models.CharField(max_length=255, null=True, verbose_name='Address', blank=True)), ('reference', models.CharField(max_length=255, null=True, verbose_name='Reference', blank=True)), ('total_net', models.DecimalField(max_digits=8, decimal_places=2)), ('total_tax', models.DecimalField(max_digits=8, decimal_places=2)), ('total_gross', models.DecimalField(max_digits=8, decimal_places=2)), ('total_margin', models.DecimalField(editable=False, max_digits=8, decimal_places=2)), ('created_by', models.ForeignKey(editable=False, to=settings.AUTH_USER_MODEL)), ('customer', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, editable=False, to='servo.Customer', null=True)), ], options={ 'ordering': ('-id',), 'get_latest_by': 'id', }, bases=(models.Model,), ), migrations.CreateModel( name='InvoiceItem', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('code', models.CharField(default=b'', max_length=128, blank=True)), ('title', models.CharField(max_length=128, verbose_name='title')), ('description', models.TextField(default=b'', verbose_name='description', blank=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('amount', models.IntegerField(default=1, verbose_name='amount')), ('sn', models.CharField(default=b'', max_length=32, verbose_name='KGB Serial Number', blank=True)), ('price', models.DecimalField(verbose_name='Sales Price', max_digits=8, decimal_places=2)), ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, editable=False, to=settings.AUTH_USER_MODEL, null=True)), ('invoice', models.ForeignKey(to='servo.Invoice')), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Location', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(default='New Location', max_length=255, verbose_name='name')), ('phone', models.CharField(default=b'', max_length=32, verbose_name='phone', blank=True)), ('email', models.EmailField(default=b'', max_length=75, verbose_name='email', blank=True)), ('address', models.CharField(default=b'', max_length=32, verbose_name='address', blank=True)), ('zip_code', models.CharField(default=b'', max_length=8, verbose_name='ZIP Code', blank=True)), ('city', models.CharField(default=b'', max_length=16, verbose_name='city', blank=True)), ('timezone', models.CharField(default=b'UTC', max_length=128, verbose_name='Time zone', choices=[(b'Africa/Abidjan', b'Africa/Abidjan'), (b'Africa/Accra', b'Africa/Accra'), (b'Africa/Addis_Ababa', b'Africa/Addis_Ababa'), (b'Africa/Algiers', b'Africa/Algiers'), (b'Africa/Asmara', b'Africa/Asmara'), (b'Africa/Bamako', b'Africa/Bamako'), (b'Africa/Bangui', b'Africa/Bangui'), (b'Africa/Banjul', b'Africa/Banjul'), (b'Africa/Bissau', b'Africa/Bissau'), (b'Africa/Blantyre', b'Africa/Blantyre'), (b'Africa/Brazzaville', b'Africa/Brazzaville'), (b'Africa/Bujumbura', b'Africa/Bujumbura'), (b'Africa/Cairo', b'Africa/Cairo'), (b'Africa/Casablanca', b'Africa/Casablanca'), (b'Africa/Ceuta', b'Africa/Ceuta'), (b'Africa/Conakry', b'Africa/Conakry'), (b'Africa/Dakar', b'Africa/Dakar'), (b'Africa/Dar_es_Salaam', b'Africa/Dar_es_Salaam'), (b'Africa/Djibouti', b'Africa/Djibouti'), (b'Africa/Douala', b'Africa/Douala'), (b'Africa/El_Aaiun', b'Africa/El_Aaiun'), (b'Africa/Freetown', b'Africa/Freetown'), (b'Africa/Gaborone', b'Africa/Gaborone'), (b'Africa/Harare', b'Africa/Harare'), (b'Africa/Johannesburg', b'Africa/Johannesburg'), (b'Africa/Juba', b'Africa/Juba'), (b'Africa/Kampala', b'Africa/Kampala'), (b'Africa/Khartoum', b'Africa/Khartoum'), (b'Africa/Kigali', b'Africa/Kigali'), (b'Africa/Kinshasa', b'Africa/Kinshasa'), (b'Africa/Lagos', b'Africa/Lagos'), (b'Africa/Libreville', b'Africa/Libreville'), (b'Africa/Lome', b'Africa/Lome'), (b'Africa/Luanda', b'Africa/Luanda'), (b'Africa/Lubumbashi', b'Africa/Lubumbashi'), (b'Africa/Lusaka', b'Africa/Lusaka'), (b'Africa/Malabo', b'Africa/Malabo'), (b'Africa/Maputo', b'Africa/Maputo'), (b'Africa/Maseru', b'Africa/Maseru'), (b'Africa/Mbabane', b'Africa/Mbabane'), (b'Africa/Mogadishu', b'Africa/Mogadishu'), (b'Africa/Monrovia', b'Africa/Monrovia'), (b'Africa/Nairobi', b'Africa/Nairobi'), (b'Africa/Ndjamena', b'Africa/Ndjamena'), (b'Africa/Niamey', b'Africa/Niamey'), (b'Africa/Nouakchott', b'Africa/Nouakchott'), (b'Africa/Ouagadougou', b'Africa/Ouagadougou'), (b'Africa/Porto-Novo', b'Africa/Porto-Novo'), (b'Africa/Sao_Tome', b'Africa/Sao_Tome'), (b'Africa/Tripoli', b'Africa/Tripoli'), (b'Africa/Tunis', b'Africa/Tunis'), (b'Africa/Windhoek', b'Africa/Windhoek'), (b'America/Adak', b'America/Adak'), (b'America/Anchorage', b'America/Anchorage'), (b'America/Anguilla', b'America/Anguilla'), (b'America/Antigua', b'America/Antigua'), (b'America/Araguaina', b'America/Araguaina'), (b'America/Argentina/Buenos_Aires', b'America/Argentina/Buenos_Aires'), (b'America/Argentina/Catamarca', b'America/Argentina/Catamarca'), (b'America/Argentina/Cordoba', b'America/Argentina/Cordoba'), (b'America/Argentina/Jujuy', b'America/Argentina/Jujuy'), (b'America/Argentina/La_Rioja', b'America/Argentina/La_Rioja'), (b'America/Argentina/Mendoza', b'America/Argentina/Mendoza'), (b'America/Argentina/Rio_Gallegos', b'America/Argentina/Rio_Gallegos'), (b'America/Argentina/Salta', b'America/Argentina/Salta'), (b'America/Argentina/San_Juan', b'America/Argentina/San_Juan'), (b'America/Argentina/San_Luis', b'America/Argentina/San_Luis'), (b'America/Argentina/Tucuman', b'America/Argentina/Tucuman'), (b'America/Argentina/Ushuaia', b'America/Argentina/Ushuaia'), (b'America/Aruba', b'America/Aruba'), (b'America/Asuncion', b'America/Asuncion'), (b'America/Atikokan', b'America/Atikokan'), (b'America/Bahia', b'America/Bahia'), (b'America/Bahia_Banderas', b'America/Bahia_Banderas'), (b'America/Barbados', b'America/Barbados'), (b'America/Belem', b'America/Belem'), (b'America/Belize', b'America/Belize'), (b'America/Blanc-Sablon', b'America/Blanc-Sablon'), (b'America/Boa_Vista', b'America/Boa_Vista'), (b'America/Bogota', b'America/Bogota'), (b'America/Boise', b'America/Boise'), (b'America/Cambridge_Bay', b'America/Cambridge_Bay'), (b'America/Campo_Grande', b'America/Campo_Grande'), (b'America/Cancun', b'America/Cancun'), (b'America/Caracas', b'America/Caracas'), (b'America/Cayenne', b'America/Cayenne'), (b'America/Cayman', b'America/Cayman'), (b'America/Chicago', b'America/Chicago'), (b'America/Chihuahua', b'America/Chihuahua'), (b'America/Costa_Rica', b'America/Costa_Rica'), (b'America/Creston', b'America/Creston'), (b'America/Cuiaba', b'America/Cuiaba'), (b'America/Curacao', b'America/Curacao'), (b'America/Danmarkshavn', b'America/Danmarkshavn'), (b'America/Dawson', b'America/Dawson'), (b'America/Dawson_Creek', b'America/Dawson_Creek'), (b'America/Denver', b'America/Denver'), (b'America/Detroit', b'America/Detroit'), (b'America/Dominica', b'America/Dominica'), (b'America/Edmonton', b'America/Edmonton'), (b'America/Eirunepe', b'America/Eirunepe'), (b'America/El_Salvador', b'America/El_Salvador'), (b'America/Fortaleza', b'America/Fortaleza'), (b'America/Glace_Bay', b'America/Glace_Bay'), (b'America/Godthab', b'America/Godthab'), (b'America/Goose_Bay', b'America/Goose_Bay'), (b'America/Grand_Turk', b'America/Grand_Turk'), (b'America/Grenada', b'America/Grenada'), (b'America/Guadeloupe', b'America/Guadeloupe'), (b'America/Guatemala', b'America/Guatemala'), (b'America/Guayaquil', b'America/Guayaquil'), (b'America/Guyana', b'America/Guyana'), (b'America/Halifax', b'America/Halifax'), (b'America/Havana', b'America/Havana'), (b'America/Hermosillo', b'America/Hermosillo'), (b'America/Indiana/Indianapolis', b'America/Indiana/Indianapolis'), (b'America/Indiana/Knox', b'America/Indiana/Knox'), (b'America/Indiana/Marengo', b'America/Indiana/Marengo'), (b'America/Indiana/Petersburg', b'America/Indiana/Petersburg'), (b'America/Indiana/Tell_City', b'America/Indiana/Tell_City'), (b'America/Indiana/Vevay', b'America/Indiana/Vevay'), (b'America/Indiana/Vincennes', b'America/Indiana/Vincennes'), (b'America/Indiana/Winamac', b'America/Indiana/Winamac'), (b'America/Inuvik', b'America/Inuvik'), (b'America/Iqaluit', b'America/Iqaluit'), (b'America/Jamaica', b'America/Jamaica'), (b'America/Juneau', b'America/Juneau'), (b'America/Kentucky/Louisville', b'America/Kentucky/Louisville'), (b'America/Kentucky/Monticello', b'America/Kentucky/Monticello'), (b'America/Kralendijk', b'America/Kralendijk'), (b'America/La_Paz', b'America/La_Paz'), (b'America/Lima', b'America/Lima'), (b'America/Los_Angeles', b'America/Los_Angeles'), (b'America/Lower_Princes', b'America/Lower_Princes'), (b'America/Maceio', b'America/Maceio'), (b'America/Managua', b'America/Managua'), (b'America/Manaus', b'America/Manaus'), (b'America/Marigot', b'America/Marigot'), (b'America/Martinique', b'America/Martinique'), (b'America/Matamoros', b'America/Matamoros'), (b'America/Mazatlan', b'America/Mazatlan'), (b'America/Menominee', b'America/Menominee'), (b'America/Merida', b'America/Merida'), (b'America/Metlakatla', b'America/Metlakatla'), (b'America/Mexico_City', b'America/Mexico_City'), (b'America/Miquelon', b'America/Miquelon'), (b'America/Moncton', b'America/Moncton'), (b'America/Monterrey', b'America/Monterrey'), (b'America/Montevideo', b'America/Montevideo'), (b'America/Montreal', b'America/Montreal'), (b'America/Montserrat', b'America/Montserrat'), (b'America/Nassau', b'America/Nassau'), (b'America/New_York', b'America/New_York'), (b'America/Nipigon', b'America/Nipigon'), (b'America/Nome', b'America/Nome'), (b'America/Noronha', b'America/Noronha'), (b'America/North_Dakota/Beulah', b'America/North_Dakota/Beulah'), (b'America/North_Dakota/Center', b'America/North_Dakota/Center'), (b'America/North_Dakota/New_Salem', b'America/North_Dakota/New_Salem'), (b'America/Ojinaga', b'America/Ojinaga'), (b'America/Panama', b'America/Panama'), (b'America/Pangnirtung', b'America/Pangnirtung'), (b'America/Paramaribo', b'America/Paramaribo'), (b'America/Phoenix', b'America/Phoenix'), (b'America/Port-au-Prince', b'America/Port-au-Prince'), (b'America/Port_of_Spain', b'America/Port_of_Spain'), (b'America/Porto_Velho', b'America/Porto_Velho'), (b'America/Puerto_Rico', b'America/Puerto_Rico'), (b'America/Rainy_River', b'America/Rainy_River'), (b'America/Rankin_Inlet', b'America/Rankin_Inlet'), (b'America/Recife', b'America/Recife'), (b'America/Regina', b'America/Regina'), (b'America/Resolute', b'America/Resolute'), (b'America/Rio_Branco', b'America/Rio_Branco'), (b'America/Santa_Isabel', b'America/Santa_Isabel'), (b'America/Santarem', b'America/Santarem'), (b'America/Santiago', b'America/Santiago'), (b'America/Santo_Domingo', b'America/Santo_Domingo'), (b'America/Sao_Paulo', b'America/Sao_Paulo'), (b'America/Scoresbysund', b'America/Scoresbysund'), (b'America/Sitka', b'America/Sitka'), (b'America/St_Barthelemy', b'America/St_Barthelemy'), (b'America/St_Johns', b'America/St_Johns'), (b'America/St_Kitts', b'America/St_Kitts'), (b'America/St_Lucia', b'America/St_Lucia'), (b'America/St_Thomas', b'America/St_Thomas'), (b'America/St_Vincent', b'America/St_Vincent'), (b'America/Swift_Current', b'America/Swift_Current'), (b'America/Tegucigalpa', b'America/Tegucigalpa'), (b'America/Thule', b'America/Thule'), (b'America/Thunder_Bay', b'America/Thunder_Bay'), (b'America/Tijuana', b'America/Tijuana'), (b'America/Toronto', b'America/Toronto'), (b'America/Tortola', b'America/Tortola'), (b'America/Vancouver', b'America/Vancouver'), (b'America/Whitehorse', b'America/Whitehorse'), (b'America/Winnipeg', b'America/Winnipeg'), (b'America/Yakutat', b'America/Yakutat'), (b'America/Yellowknife', b'America/Yellowknife'), (b'Antarctica/Casey', b'Antarctica/Casey'), (b'Antarctica/Davis', b'Antarctica/Davis'), (b'Antarctica/DumontDUrville', b'Antarctica/DumontDUrville'), (b'Antarctica/Macquarie', b'Antarctica/Macquarie'), (b'Antarctica/Mawson', b'Antarctica/Mawson'), (b'Antarctica/McMurdo', b'Antarctica/McMurdo'), (b'Antarctica/Palmer', b'Antarctica/Palmer'), (b'Antarctica/Rothera', b'Antarctica/Rothera'), (b'Antarctica/Syowa', b'Antarctica/Syowa'), (b'Antarctica/Troll', b'Antarctica/Troll'), (b'Antarctica/Vostok', b'Antarctica/Vostok'), (b'Arctic/Longyearbyen', b'Arctic/Longyearbyen'), (b'Asia/Aden', b'Asia/Aden'), (b'Asia/Almaty', b'Asia/Almaty'), (b'Asia/Amman', b'Asia/Amman'), (b'Asia/Anadyr', b'Asia/Anadyr'), (b'Asia/Aqtau', b'Asia/Aqtau'), (b'Asia/Aqtobe', b'Asia/Aqtobe'), (b'Asia/Ashgabat', b'Asia/Ashgabat'), (b'Asia/Baghdad', b'Asia/Baghdad'), (b'Asia/Bahrain', b'Asia/Bahrain'), (b'Asia/Baku', b'Asia/Baku'), (b'Asia/Bangkok', b'Asia/Bangkok'), (b'Asia/Beirut', b'Asia/Beirut'), (b'Asia/Bishkek', b'Asia/Bishkek'), (b'Asia/Brunei', b'Asia/Brunei'), (b'Asia/Chita', b'Asia/Chita'), (b'Asia/Choibalsan', b'Asia/Choibalsan'), (b'Asia/Colombo', b'Asia/Colombo'), (b'Asia/Damascus', b'Asia/Damascus'), (b'Asia/Dhaka', b'Asia/Dhaka'), (b'Asia/Dili', b'Asia/Dili'), (b'Asia/Dubai', b'Asia/Dubai'), (b'Asia/Dushanbe', b'Asia/Dushanbe'), (b'Asia/Gaza', b'Asia/Gaza'), (b'Asia/Hebron', b'Asia/Hebron'), (b'Asia/Ho_Chi_Minh', b'Asia/Ho_Chi_Minh'), (b'Asia/Hong_Kong', b'Asia/Hong_Kong'), (b'Asia/Hovd', b'Asia/Hovd'), (b'Asia/Irkutsk', b'Asia/Irkutsk'), (b'Asia/Jakarta', b'Asia/Jakarta'), (b'Asia/Jayapura', b'Asia/Jayapura'), (b'Asia/Jerusalem', b'Asia/Jerusalem'), (b'Asia/Kabul', b'Asia/Kabul'), (b'Asia/Kamchatka', b'Asia/Kamchatka'), (b'Asia/Karachi', b'Asia/Karachi'), (b'Asia/Kathmandu', b'Asia/Kathmandu'), (b'Asia/Khandyga', b'Asia/Khandyga'), (b'Asia/Kolkata', b'Asia/Kolkata'), (b'Asia/Krasnoyarsk', b'Asia/Krasnoyarsk'), (b'Asia/Kuala_Lumpur', b'Asia/Kuala_Lumpur'), (b'Asia/Kuching', b'Asia/Kuching'), (b'Asia/Kuwait', b'Asia/Kuwait'), (b'Asia/Macau', b'Asia/Macau'), (b'Asia/Magadan', b'Asia/Magadan'), (b'Asia/Makassar', b'Asia/Makassar'), (b'Asia/Manila', b'Asia/Manila'), (b'Asia/Muscat', b'Asia/Muscat'), (b'Asia/Nicosia', b'Asia/Nicosia'), (b'Asia/Novokuznetsk', b'Asia/Novokuznetsk'), (b'Asia/Novosibirsk', b'Asia/Novosibirsk'), (b'Asia/Omsk', b'Asia/Omsk'), (b'Asia/Oral', b'Asia/Oral'), (b'Asia/Phnom_Penh', b'Asia/Phnom_Penh'), (b'Asia/Pontianak', b'Asia/Pontianak'), (b'Asia/Pyongyang', b'Asia/Pyongyang'), (b'Asia/Qatar', b'Asia/Qatar'), (b'Asia/Qyzylorda', b'Asia/Qyzylorda'), (b'Asia/Rangoon', b'Asia/Rangoon'), (b'Asia/Riyadh', b'Asia/Riyadh'), (b'Asia/Sakhalin', b'Asia/Sakhalin'), (b'Asia/Samarkand', b'Asia/Samarkand'), (b'Asia/Seoul', b'Asia/Seoul'), (b'Asia/Shanghai', b'Asia/Shanghai'), (b'Asia/Singapore', b'Asia/Singapore'), (b'Asia/Srednekolymsk', b'Asia/Srednekolymsk'), (b'Asia/Taipei', b'Asia/Taipei'), (b'Asia/Tashkent', b'Asia/Tashkent'), (b'Asia/Tbilisi', b'Asia/Tbilisi'), (b'Asia/Tehran', b'Asia/Tehran'), (b'Asia/Thimphu', b'Asia/Thimphu'), (b'Asia/Tokyo', b'Asia/Tokyo'), (b'Asia/Ulaanbaatar', b'Asia/Ulaanbaatar'), (b'Asia/Urumqi', b'Asia/Urumqi'), (b'Asia/Ust-Nera', b'Asia/Ust-Nera'), (b'Asia/Vientiane', b'Asia/Vientiane'), (b'Asia/Vladivostok', b'Asia/Vladivostok'), (b'Asia/Yakutsk', b'Asia/Yakutsk'), (b'Asia/Yekaterinburg', b'Asia/Yekaterinburg'), (b'Asia/Yerevan', b'Asia/Yerevan'), (b'Atlantic/Azores', b'Atlantic/Azores'), (b'Atlantic/Bermuda', b'Atlantic/Bermuda'), (b'Atlantic/Canary', b'Atlantic/Canary'), (b'Atlantic/Cape_Verde', b'Atlantic/Cape_Verde'), (b'Atlantic/Faroe', b'Atlantic/Faroe'), (b'Atlantic/Madeira', b'Atlantic/Madeira'), (b'Atlantic/Reykjavik', b'Atlantic/Reykjavik'), (b'Atlantic/South_Georgia', b'Atlantic/South_Georgia'), (b'Atlantic/St_Helena', b'Atlantic/St_Helena'), (b'Atlantic/Stanley', b'Atlantic/Stanley'), (b'Australia/Adelaide', b'Australia/Adelaide'), (b'Australia/Brisbane', b'Australia/Brisbane'), (b'Australia/Broken_Hill', b'Australia/Broken_Hill'), (b'Australia/Currie', b'Australia/Currie'), (b'Australia/Darwin', b'Australia/Darwin'), (b'Australia/Eucla', b'Australia/Eucla'), (b'Australia/Hobart', b'Australia/Hobart'), (b'Australia/Lindeman', b'Australia/Lindeman'), (b'Australia/Lord_Howe', b'Australia/Lord_Howe'), (b'Australia/Melbourne', b'Australia/Melbourne'), (b'Australia/Perth', b'Australia/Perth'), (b'Australia/Sydney', b'Australia/Sydney'), (b'Canada/Atlantic', b'Canada/Atlantic'), (b'Canada/Central', b'Canada/Central'), (b'Canada/Eastern', b'Canada/Eastern'), (b'Canada/Mountain', b'Canada/Mountain'), (b'Canada/Newfoundland', b'Canada/Newfoundland'), (b'Canada/Pacific', b'Canada/Pacific'), (b'Europe/Amsterdam', b'Europe/Amsterdam'), (b'Europe/Andorra', b'Europe/Andorra'), (b'Europe/Athens', b'Europe/Athens'), (b'Europe/Belgrade', b'Europe/Belgrade'), (b'Europe/Berlin', b'Europe/Berlin'), (b'Europe/Bratislava', b'Europe/Bratislava'), (b'Europe/Brussels', b'Europe/Brussels'), (b'Europe/Bucharest', b'Europe/Bucharest'), (b'Europe/Budapest', b'Europe/Budapest'), (b'Europe/Busingen', b'Europe/Busingen'), (b'Europe/Chisinau', b'Europe/Chisinau'), (b'Europe/Copenhagen', b'Europe/Copenhagen'), (b'Europe/Dublin', b'Europe/Dublin'), (b'Europe/Gibraltar', b'Europe/Gibraltar'), (b'Europe/Guernsey', b'Europe/Guernsey'), (b'Europe/Helsinki', b'Europe/Helsinki'), (b'Europe/Isle_of_Man', b'Europe/Isle_of_Man'), (b'Europe/Istanbul', b'Europe/Istanbul'), (b'Europe/Jersey', b'Europe/Jersey'), (b'Europe/Kaliningrad', b'Europe/Kaliningrad'), (b'Europe/Kiev', b'Europe/Kiev'), (b'Europe/Lisbon', b'Europe/Lisbon'), (b'Europe/Ljubljana', b'Europe/Ljubljana'), (b'Europe/London', b'Europe/London'), (b'Europe/Luxembourg', b'Europe/Luxembourg'), (b'Europe/Madrid', b'Europe/Madrid'), (b'Europe/Malta', b'Europe/Malta'), (b'Europe/Mariehamn', b'Europe/Mariehamn'), (b'Europe/Minsk', b'Europe/Minsk'), (b'Europe/Monaco', b'Europe/Monaco'), (b'Europe/Moscow', b'Europe/Moscow'), (b'Europe/Oslo', b'Europe/Oslo'), (b'Europe/Paris', b'Europe/Paris'), (b'Europe/Podgorica', b'Europe/Podgorica'), (b'Europe/Prague', b'Europe/Prague'), (b'Europe/Riga', b'Europe/Riga'), (b'Europe/Rome', b'Europe/Rome'), (b'Europe/Samara', b'Europe/Samara'), (b'Europe/San_Marino', b'Europe/San_Marino'), (b'Europe/Sarajevo', b'Europe/Sarajevo'), (b'Europe/Simferopol', b'Europe/Simferopol'), (b'Europe/Skopje', b'Europe/Skopje'), (b'Europe/Sofia', b'Europe/Sofia'), (b'Europe/Stockholm', b'Europe/Stockholm'), (b'Europe/Tallinn', b'Europe/Tallinn'), (b'Europe/Tirane', b'Europe/Tirane'), (b'Europe/Uzhgorod', b'Europe/Uzhgorod'), (b'Europe/Vaduz', b'Europe/Vaduz'), (b'Europe/Vatican', b'Europe/Vatican'), (b'Europe/Vienna', b'Europe/Vienna'), (b'Europe/Vilnius', b'Europe/Vilnius'), (b'Europe/Volgograd', b'Europe/Volgograd'), (b'Europe/Warsaw', b'Europe/Warsaw'), (b'Europe/Zagreb', b'Europe/Zagreb'), (b'Europe/Zaporozhye', b'Europe/Zaporozhye'), (b'Europe/Zurich', b'Europe/Zurich'), (b'GMT', b'GMT'), (b'Indian/Antananarivo', b'Indian/Antananarivo'), (b'Indian/Chagos', b'Indian/Chagos'), (b'Indian/Christmas', b'Indian/Christmas'), (b'Indian/Cocos', b'Indian/Cocos'), (b'Indian/Comoro', b'Indian/Comoro'), (b'Indian/Kerguelen', b'Indian/Kerguelen'), (b'Indian/Mahe', b'Indian/Mahe'), (b'Indian/Maldives', b'Indian/Maldives'), (b'Indian/Mauritius', b'Indian/Mauritius'), (b'Indian/Mayotte', b'Indian/Mayotte'), (b'Indian/Reunion', b'Indian/Reunion'), (b'Pacific/Apia', b'Pacific/Apia'), (b'Pacific/Auckland', b'Pacific/Auckland'), (b'Pacific/Bougainville', b'Pacific/Bougainville'), (b'Pacific/Chatham', b'Pacific/Chatham'), (b'Pacific/Chuuk', b'Pacific/Chuuk'), (b'Pacific/Easter', b'Pacific/Easter'), (b'Pacific/Efate', b'Pacific/Efate'), (b'Pacific/Enderbury', b'Pacific/Enderbury'), (b'Pacific/Fakaofo', b'Pacific/Fakaofo'), (b'Pacific/Fiji', b'Pacific/Fiji'), (b'Pacific/Funafuti', b'Pacific/Funafuti'), (b'Pacific/Galapagos', b'Pacific/Galapagos'), (b'Pacific/Gambier', b'Pacific/Gambier'), (b'Pacific/Guadalcanal', b'Pacific/Guadalcanal'), (b'Pacific/Guam', b'Pacific/Guam'), (b'Pacific/Honolulu', b'Pacific/Honolulu'), (b'Pacific/Johnston', b'Pacific/Johnston'), (b'Pacific/Kiritimati', b'Pacific/Kiritimati'), (b'Pacific/Kosrae', b'Pacific/Kosrae'), (b'Pacific/Kwajalein', b'Pacific/Kwajalein'), (b'Pacific/Majuro', b'Pacific/Majuro'), (b'Pacific/Marquesas', b'Pacific/Marquesas'), (b'Pacific/Midway', b'Pacific/Midway'), (b'Pacific/Nauru', b'Pacific/Nauru'), (b'Pacific/Niue', b'Pacific/Niue'), (b'Pacific/Norfolk', b'Pacific/Norfolk'), (b'Pacific/Noumea', b'Pacific/Noumea'), (b'Pacific/Pago_Pago', b'Pacific/Pago_Pago'), (b'Pacific/Palau', b'Pacific/Palau'), (b'Pacific/Pitcairn', b'Pacific/Pitcairn'), (b'Pacific/Pohnpei', b'Pacific/Pohnpei'), (b'Pacific/Port_Moresby', b'Pacific/Port_Moresby'), (b'Pacific/Rarotonga', b'Pacific/Rarotonga'), (b'Pacific/Saipan', b'Pacific/Saipan'), (b'Pacific/Tahiti', b'Pacific/Tahiti'), (b'Pacific/Tarawa', b'Pacific/Tarawa'), (b'Pacific/Tongatapu', b'Pacific/Tongatapu'), (b'Pacific/Wake', b'Pacific/Wake'), (b'Pacific/Wallis', b'Pacific/Wallis'), (b'US/Alaska', b'US/Alaska'), (b'US/Arizona', b'US/Arizona'), (b'US/Central', b'US/Central'), (b'US/Eastern', b'US/Eastern'), (b'US/Hawaii', b'US/Hawaii'), (b'US/Mountain', b'US/Mountain'), (b'US/Pacific', b'US/Pacific'), (b'UTC', b'UTC')])), ('gsx_shipto', models.CharField(default=b'', max_length=10, verbose_name='Ship-To', blank=True)), ('gsx_tz', models.CharField(default=b'CEST', max_length=4, verbose_name='Timezone', choices=[(b'PST', b'UTC - 8h (Pacific Standard Time)'), (b'PDT', b'UTC - 7h (Pacific Daylight Time)'), (b'CST', b'UTC - 6h (Central Standard Time)'), (b'CDT', b'UTC - 5h (Central Daylight Time)'), (b'EST', b'UTC - 5h (Eastern Standard Time)'), (b'EDT', b'UTC - 4h (Eastern Daylight Time)'), (b'GMT', b'UTC (Greenwich Mean Time)'), (b'CET', b'UTC + 1h (Central European Time)'), (b'CEST', b'UTC + 2h (Central European Summer Time)'), (b'USZ1', b'UTC + 3h (Kaliningrad Time)'), (b'MSK', b'UTC + 4h (Moscow Time)'), (b'IST', b'UTC + 5.5h (Indian Standard Time)'), (b'YEKST', b'UTC + 6h (Yekaterinburg Time)'), (b'OMSST', b'UTC + 7h (Omsk Time)'), (b'KRAST', b'UTC + 8h (Krasnoyarsk Time)'), (b'CCT', b'UTC + 8h (Chinese Coast Time)'), (b'IRKST', b'UTC + 9h (Irkutsk Time)'), (b'JST', b'UTC + 9h (Japan Standard Time)'), (b'YAKST', b'UTC + 10h (Yakutsk Time)'), (b'AEST', b'UTC + 10h (Australian Eastern Standard Time)'), (b'VLAST', b'UTC + 11h (Vladivostok Time)'), (b'AEDT', b'UTC + 11h (Australian Eastern Daylight Time)'), (b'ACST', b'UTC + 9.5h (Austrailian Central Standard Time)'), (b'ACDT', b'UTC + 10.5h (Australian Central Daylight Time)'), (b'NZST', b'UTC + 12h (New Zealand Standard Time)'), (b'MAGST', b'UTC + 12h (Magadan Time)')])), ('notes', models.TextField(default=b'9:00 - 18:00', help_text='Will be shown on print templates', verbose_name='Notes', blank=True)), ('logo', models.FileField(upload_to=b'logos', null=True, verbose_name='Logo', blank=True)), ('enabled', models.BooleanField(default=True, verbose_name='Enabled')), ('gsx_accounts', models.ManyToManyField(to='servo.GsxAccount', null=True, verbose_name='Accounts', blank=True)), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'ordering': ('title',), 'get_latest_by': 'id', 'verbose_name': 'Location', 'verbose_name_plural': 'Locations', }, bases=(models.Model,), ), migrations.CreateModel( name='Message', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('code', models.CharField(default=servo.defaults.uuid, unique=True, max_length=36)), ('sender', models.CharField(max_length=128)), ('recipient', models.CharField(max_length=128)), ('body', models.TextField()), ('sent_at', models.DateTimeField(null=True)), ('received_at', models.DateTimeField(null=True)), ('status', models.CharField(max_length=16, choices=[(b'SENT', b'SENT'), (b'DELIVERED', b'DELIVERED'), (b'RECEIVED', b'RECEIVED'), (b'FAILED', b'FAILED')])), ('method', models.CharField(default=b'EMAIL', max_length=16, choices=[(b'EMAIL', b'EMAIL'), (b'SMS', b'SMS'), (b'GSX', b'GSX')])), ('error', models.TextField()), ('created_by', models.ForeignKey(to=settings.AUTH_USER_MODEL)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Note', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('subject', models.CharField(default=servo.defaults.subject, max_length=255, verbose_name='subject', blank=True)), ('body', models.TextField(verbose_name='Message')), ('code', models.CharField(default=servo.lib.shorturl.from_time, unique=True, max_length=9, editable=False)), ('sender', models.CharField(default=b'', max_length=255, verbose_name='From')), ('recipient', models.CharField(default=b'', max_length=255, verbose_name='To', blank=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('sent_at', models.DateTimeField(null=True, editable=False)), ('is_reported', models.BooleanField(default=False, verbose_name='report')), ('is_read', models.BooleanField(default=True, verbose_name='read', editable=False)), ('is_flagged', models.BooleanField(default=False, verbose_name='flagged', editable=False)), ('lft', models.PositiveIntegerField(editable=False, db_index=True)), ('rght', models.PositiveIntegerField(editable=False, db_index=True)), ('tree_id', models.PositiveIntegerField(editable=False, db_index=True)), ('level', models.PositiveIntegerField(editable=False, db_index=True)), ('created_by', models.ForeignKey(editable=False, to=settings.AUTH_USER_MODEL)), ('customer', models.ForeignKey(blank=True, to='servo.Customer', null=True)), ('escalation', models.ForeignKey(editable=False, to='servo.Escalation', null=True)), ], options={ 'get_latest_by': 'created_at', }, bases=(models.Model,), ), migrations.CreateModel( name='Notification', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('kind', models.CharField(max_length=16)), ('action', models.CharField(max_length=16)), ('message', models.TextField()), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Order', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('code', models.CharField(max_length=8, unique=True, null=True)), ('url_code', models.CharField(max_length=8, unique=True, null=True)), ('description', models.CharField(default=b'', max_length=128)), ('status_icon', models.CharField(default=b'undefined', max_length=16)), ('priority', models.IntegerField(default=1, verbose_name='priority', choices=[(2, 'High'), (1, 'Normal'), (0, 'Low')])), ('created_at', models.DateTimeField(auto_now_add=True)), ('started_at', models.DateTimeField(null=True)), ('closed_at', models.DateTimeField(null=True)), ('place', models.CharField(default=b'', max_length=128)), ('customer_name', models.CharField(default=b'', max_length=128)), ('state', models.IntegerField(default=0, max_length=1, choices=[(0, 'Unassigned'), (1, 'Open'), (2, 'Closed')])), ('status_name', models.CharField(default=b'', max_length=128)), ('status_started_at', models.DateTimeField(null=True)), ('status_limit_green', models.DateTimeField(null=True)), ('status_limit_yellow', models.DateTimeField(null=True)), ('checkin_location', models.ForeignKey(related_name='+', on_delete=django.db.models.deletion.SET_NULL, to='servo.Location', null=True)), ('checkout_location', models.ForeignKey(related_name='+', on_delete=django.db.models.deletion.SET_NULL, to='servo.Location', null=True)), ('closed_by', models.ForeignKey(related_name='+', on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, null=True)), ('created_by', models.ForeignKey(related_name='created_orders', on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, null=True)), ('customer', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, to='servo.Customer', null=True)), ], options={ 'ordering': ('-priority', 'id'), 'permissions': (('change_user', 'Can set assignee'), ('change_status', 'Can change status'), ('follow_order', 'Can follow order')), }, bases=(models.Model,), ), migrations.CreateModel( name='OrderDevice', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('should_report', models.BooleanField(default=True)), ('device', models.ForeignKey(to='servo.Device')), ('order', models.ForeignKey(to='servo.Order')), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='OrderStatus', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('started_at', models.DateTimeField()), ('finished_at', models.DateTimeField(null=True)), ('green_limit', models.DateTimeField(null=True)), ('yellow_limit', models.DateTimeField(null=True)), ('badge', models.CharField(default=b'undefined', max_length=16, choices=[(b'undefined', b'undefined'), (b'success', b'success'), (b'warning', b'warning'), (b'danger', b'danger')])), ('finished_by', models.ForeignKey(related_name='+', to=settings.AUTH_USER_MODEL, null=True)), ('order', models.ForeignKey(to='servo.Order')), ('started_by', models.ForeignKey(related_name='+', to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ('-started_at',), 'get_latest_by': 'started_at', }, bases=(models.Model,), ), migrations.CreateModel( name='Payment', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('method', models.IntegerField(default=0, verbose_name='Payment Method', choices=[(0, 'No Charge'), (1, 'Cash'), (2, 'Invoice'), (3, 'Credit Card'), (4, 'Mail payment'), (5, 'Online payment')])), ('created_at', models.DateTimeField(auto_now_add=True)), ('amount', models.DecimalField(max_digits=8, decimal_places=2)), ('created_by', models.ForeignKey(to=settings.AUTH_USER_MODEL)), ('invoice', models.ForeignKey(to='servo.Invoice')), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Product', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('code', models.CharField(default=servo.lib.shorturl.from_time, unique=True, max_length=32, verbose_name='code')), ('subst_code', models.CharField(default=b'', verbose_name='Substituted (new) code of this part', max_length=32, editable=False)), ('title', models.CharField(default='New Product', max_length=255, verbose_name='Title')), ('description', models.TextField(default=b'', verbose_name='Description', blank=True)), ('pct_vat', models.DecimalField(default=servo.models.product.default_vat, verbose_name='VAT %', max_digits=4, decimal_places=2)), ('fixed_price', models.BooleanField(default=False, help_text="Don't update price when recalculating prices or importing parts")), ('price_purchase_exchange', models.DecimalField(default=0, verbose_name='Purchase price', max_digits=8, decimal_places=2)), ('pct_margin_exchange', models.DecimalField(default=servo.models.product.get_margin, verbose_name='Margin %', max_digits=4, decimal_places=2)), ('price_notax_exchange', models.DecimalField(default=0, help_text='Purchase price + margin %', verbose_name='Net price', max_digits=8, decimal_places=2)), ('price_sales_exchange', models.DecimalField(default=0, help_text='Purchase price + margin % + shipping + VAT %', verbose_name='Sales price', max_digits=8, decimal_places=2)), ('price_purchase_stock', models.DecimalField(default=0, verbose_name='Purchase price', max_digits=8, decimal_places=2)), ('pct_margin_stock', models.DecimalField(default=servo.models.product.get_margin, verbose_name='Margin %', max_digits=4, decimal_places=2)), ('price_notax_stock', models.DecimalField(default=0, help_text='Purchase price + margin %', verbose_name='Net price', max_digits=8, decimal_places=2)), ('price_sales_stock', models.DecimalField(default=0, help_text='Purchase price + margin % + shipping + VAT %', verbose_name='Sales price', max_digits=8, decimal_places=2)), ('is_serialized', models.BooleanField(default=False, help_text='Product has a serial number', verbose_name='is serialized')), ('warranty_period', models.PositiveIntegerField(default=0, verbose_name='Warranty (months)')), ('shelf', models.CharField(default=b'', max_length=8, verbose_name='Shelf code', blank=True)), ('brand', models.CharField(default=b'', max_length=32, verbose_name='Brand', blank=True)), ('photo', models.ImageField(upload_to=b'products', null=True, verbose_name='photo', blank=True)), ('shipping', models.FloatField(default=0, verbose_name='shipping')), ('component_code', models.CharField(default=b'', max_length=1, verbose_name='component group', blank=True, choices=[(b'0', b'General'), (b'1', b'Visual'), (b'2', b'Displays'), (b'3', b'Mass Storage'), (b'4', b'Input Devices'), (b'5', b'Boards'), (b'6', b'Power'), (b'7', b'Printer'), (b'8', b'Multi-function Device'), (b'9', b'Communication Devices'), (b'A', b'Share'), (b'B', b'iPhone'), (b'E', b'iPod'), (b'F', b'iPad')])), ('labour_tier', models.CharField(default=b'', max_length=15, blank=True)), ('part_type', models.CharField(default=b'OTHER', max_length=18, verbose_name='part type', choices=[(b'ADJUSTMENT', 'Adjustment'), (b'MODULE', 'Module'), (b'REPLACEMENT', 'Replacement'), (b'SERVICE', 'Service'), (b'SERVICE CONTRACT', 'Service Contract'), (b'OTHER', 'Other')])), ('eee_code', models.CharField(default=b'', max_length=256, verbose_name='EEE code', blank=True)), ('total_amount', models.IntegerField(default=0, editable=False)), ], options={ 'ordering': ('-id',), 'permissions': (('change_amount', 'Can change product amount'),), }, bases=(models.Model,), ), migrations.CreateModel( name='ProductCategory', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(default='New Category', max_length=255)), ('slug', models.SlugField(null=True, editable=False)), ('lft', models.PositiveIntegerField(editable=False, db_index=True)), ('rght', models.PositiveIntegerField(editable=False, db_index=True)), ('tree_id', models.PositiveIntegerField(editable=False, db_index=True)), ('level', models.PositiveIntegerField(editable=False, db_index=True)), ('parent', mptt.fields.TreeForeignKey(related_name='children', blank=True, to='servo.ProductCategory', null=True)), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'ordering': ('-title',), 'get_latest_by': 'id', }, bases=(models.Model,), ), migrations.CreateModel( name='Property', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(default='New Field', max_length=255, verbose_name='title')), ('type', models.CharField(default=(b'customer', 'Customer'), max_length=32, verbose_name='type', choices=[(b'customer', 'Customer'), (b'order', 'Order'), (b'product', 'Product')])), ('format', models.CharField(default=b'', max_length=32, verbose_name='format', blank=True)), ('value', models.TextField(default=b'', verbose_name='value', blank=True)), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'ordering': ['title'], 'verbose_name': 'Field', 'verbose_name_plural': 'Fields', }, bases=(models.Model,), ), migrations.CreateModel( name='PurchaseOrder', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('reference', models.CharField(default=b'', max_length=32, verbose_name='reference', blank=True)), ('confirmation', models.CharField(default=b'', max_length=32, verbose_name='confirmation', blank=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('submitted_at', models.DateTimeField(null=True, editable=False)), ('supplier', models.CharField(max_length=32, verbose_name='supplier', blank=True)), ('carrier', models.CharField(max_length=32, verbose_name='carrier', blank=True)), ('tracking_id', models.CharField(max_length=128, verbose_name='tracking ID', blank=True)), ('days_delivered', models.IntegerField(default=1, verbose_name='delivery Time', blank=True)), ('has_arrived', models.BooleanField(default=False)), ('total', models.FloatField(null=True, editable=False)), ('invoice_id', models.CharField(default=b'', max_length=10, editable=False)), ('invoice', models.FileField(help_text=b"Apple's sales invoice for this PO", upload_to=b'gsx_invoices', null=True, editable=False)), ('created_by', models.ForeignKey(editable=False, to=settings.AUTH_USER_MODEL)), ('location', models.ForeignKey(editable=False, to='servo.Location', help_text='The location from which this PO was created')), ('sales_order', models.ForeignKey(editable=False, to='servo.Order', null=True)), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'ordering': ('-id',), }, bases=(models.Model,), ), migrations.CreateModel( name='PurchaseOrderItem', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('code', models.CharField(default=b'', max_length=128, blank=True)), ('title', models.CharField(max_length=128, verbose_name='title')), ('description', models.TextField(default=b'', verbose_name='description', blank=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('amount', models.IntegerField(default=1, verbose_name='amount')), ('sn', models.CharField(default=b'', max_length=32, verbose_name='KGB Serial Number', blank=True)), ('price', models.DecimalField(help_text='Purchase price without taxes', verbose_name='Purchase Price', max_digits=8, decimal_places=2)), ('reference', models.CharField(default=b'', max_length=128, blank=True)), ('ordered_at', models.DateTimeField(null=True, editable=False)), ('expected_ship_date', models.DateField(null=True, editable=False)), ('received_at', models.DateTimeField(verbose_name='arrived', null=True, editable=False, blank=True)), ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, editable=False, to=settings.AUTH_USER_MODEL, null=True)), ], options={ 'ordering': ('id',), 'get_latest_by': 'id', }, bases=(models.Model,), ), migrations.CreateModel( name='Queue', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(default='New Queue', max_length=255, verbose_name='Title')), ('keywords', models.TextField(default=b'', help_text='Orders with devices matching these keywords will be automatically assigned to this queue', blank=True)), ('description', models.TextField(verbose_name='description', blank=True)), ('priority', models.IntegerField(default=1, verbose_name='priority', choices=[(2, 'High'), (1, 'Normal'), (0, 'Low')])), ('gsx_soldto', models.CharField(default=b'', help_text='GSX queries of an order in this queue will be made using this Sold-To', max_length=10, verbose_name='Sold-To', blank=True)), ('order_template', models.FileField(help_text='HTML template for Service Order/Work Confirmation', upload_to=b'templates', null=True, verbose_name='order template', blank=True)), ('quote_template', models.FileField(help_text='HTML template for cost estimate', upload_to=b'templates', null=True, verbose_name='quote template', blank=True)), ('receipt_template', models.FileField(help_text='HTML template for Sales Order Receipt', upload_to=b'templates', null=True, verbose_name='receipt template', blank=True)), ('dispatch_template', models.FileField(help_text='HTML template for dispatched order', upload_to=b'templates', null=True, verbose_name='dispatch template', blank=True)), ('locations', models.ManyToManyField(help_text='Pick the locations you want this queue to appear in.', to='servo.Location', verbose_name='locations')), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'ordering': ['title'], 'verbose_name': 'Queue', 'verbose_name_plural': 'Queues', }, bases=(models.Model,), ), migrations.CreateModel( name='QueueStatus', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('limit_green', models.IntegerField(default=1, verbose_name='green limit')), ('limit_yellow', models.IntegerField(default=15, verbose_name='yellow limit')), ('limit_factor', models.IntegerField(default=60, verbose_name='time unit', choices=[(60, 'Minutes'), (3600, 'Hours'), (86400, 'Days'), (604800, 'Weeks'), (2419200, 'Months')])), ('queue', models.ForeignKey(to='servo.Queue')), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='RatedItem', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('object_id', models.PositiveIntegerField()), ('rating', models.PositiveIntegerField()), ('content_type', models.ForeignKey(to='contenttypes.ContentType')), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'abstract': False, }, bases=(models.Model,), ), migrations.CreateModel( name='Repair', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('tech_id', models.CharField(default=b'', max_length=15, verbose_name='Technician', blank=True)), ('unit_received_at', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Unit Received')), ('submitted_at', models.DateTimeField(null=True, editable=False)), ('completed_at', models.DateTimeField(null=True, editable=False)), ('request_review', models.BooleanField(default=False, help_text='Repair should be reviewed by Apple before confirmation')), ('confirmation', models.CharField(default=b'', max_length=10, editable=False)), ('reference', models.CharField(default=b'', max_length=16, verbose_name='Reference', blank=True)), ('symptom', models.TextField()), ('diagnosis', models.TextField()), ('notes', models.TextField(default=b'', help_text='Notes are mandatory when requesting review.', blank=True, validators=[django.core.validators.MaxLengthValidator(800)])), ('status', models.CharField(default=b'', max_length=128, editable=False)), ('attachment', models.FileField(help_text='Choose files to be sent with the repair creation request', null=True, upload_to=b'repairs', blank=True)), ('repair_number', models.CharField(default=b'', max_length=12, editable=False)), ('mark_complete', models.BooleanField(default=False, help_text='Requires replacement serial number', verbose_name='mark complete')), ('replacement_sn', models.CharField(default=b'', help_text='Serial Number of replacement part', max_length=18, verbose_name='New serial number', blank=True)), ('repair_type', models.CharField(default=b'CA', max_length=2, editable=False, choices=[(b'CA', b'Carry-In/Non-Replinished'), (b'NE', b'Return Before Replace'), (b'NT', b'No Trouble Found'), (b'ON', b'Onsite (Indirect/Direct)'), (b'RR', b'Repair Or Replace/Whole Unit Mail-In'), (b'WH', b'Mail-In')])), ('component_data', models.TextField(default=b'', editable=False)), ('consumer_law', models.NullBooleanField(default=None, help_text='Unit is eligible for consumer law coverage')), ('completed_by', models.ForeignKey(related_name='completed_repairs', on_delete=django.db.models.deletion.PROTECT, editable=False, to=settings.AUTH_USER_MODEL, null=True)), ('created_by', models.ForeignKey(related_name='created_repairs', on_delete=django.db.models.deletion.PROTECT, editable=False, to=settings.AUTH_USER_MODEL)), ('device', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, editable=False, to='servo.Device')), ('gsx_account', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, editable=False, to='servo.GsxAccount')), ('order', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, editable=False, to='servo.Order')), ], options={ 'get_latest_by': 'created_at', }, bases=(models.Model,), ), migrations.CreateModel( name='Search', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('query', models.TextField()), ('model', models.CharField(max_length=32)), ('title', models.CharField(max_length=128)), ('shared', models.BooleanField(default=True)), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='ServiceOrderItem', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('code', models.CharField(default=b'', max_length=128, blank=True)), ('title', models.CharField(max_length=128, verbose_name='title')), ('description', models.TextField(default=b'', verbose_name='description', blank=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('amount', models.IntegerField(default=1, verbose_name='amount')), ('sn', models.CharField(default=b'', max_length=32, verbose_name='KGB Serial Number', blank=True)), ('dispatched', models.BooleanField(default=False, verbose_name='dispatched')), ('should_report', models.BooleanField(default=True, verbose_name='report')), ('price', models.DecimalField(verbose_name='sales price', max_digits=8, decimal_places=2)), ('replaced_at', models.DateTimeField(null=True)), ('kbb_sn', models.CharField(default=b'', max_length=32, verbose_name='KBB Serial Number', blank=True)), ('imei', models.CharField(default=b'', max_length=35, verbose_name='IMEI', blank=True)), ('price_category', models.CharField(default=(b'warranty', 'Warranty'), max_length=32, verbose_name='Price category', choices=[(b'warranty', 'Warranty'), (b'exchange', 'Exchange Price'), (b'stock', 'Stock Price')])), ('comptia_code', models.CharField(default=b'', max_length=4, verbose_name='symptom code', blank=True)), ('comptia_modifier', models.CharField(default=b'', max_length=1, verbose_name='symptom modifier', blank=True)), ('created_by', models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, editable=False, to=settings.AUTH_USER_MODEL, null=True)), ('order', models.ForeignKey(to='servo.Order')), ('product', models.ForeignKey(to='servo.Product', on_delete=django.db.models.deletion.PROTECT)), ('replaced_by', models.ForeignKey(related_name='replaced_parts', editable=False, to=settings.AUTH_USER_MODEL, null=True)), ], options={ 'ordering': ('id',), 'get_latest_by': 'id', }, bases=(models.Model,), ), migrations.CreateModel( name='ServicePart', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('comptia_code', models.CharField(verbose_name='Symptom Code', max_length=4, editable=False)), ('comptia_modifier', models.CharField(verbose_name='Symptom Modifier', max_length=1, editable=False)), ('line_number', models.SmallIntegerField(null=True, editable=False)), ('registered_for_return', models.BooleanField(default=False)), ('returned_at', models.DateTimeField(null=True, editable=False)), ('ship_to', models.CharField(max_length=18, editable=False)), ('part_title', models.CharField(max_length=128)), ('part_number', models.CharField(max_length=18)), ('service_order', models.CharField(max_length=10)), ('return_order', models.CharField(default=b'', max_length=10)), ('return_status', models.CharField(default=b'', max_length=128, editable=False)), ('return_code', models.CharField(default=b'', max_length=4, editable=False)), ('order_status', models.CharField(default=b'', max_length=128, editable=False)), ('order_status_code', models.CharField(default=b'', max_length=4, editable=False)), ('coverage_description', models.CharField(default=b'', max_length=128, editable=False)), ('box_number', models.PositiveIntegerField(null=True)), ('return_label', models.FileField(upload_to=b'return_labels', null=True, editable=False)), ('carrier_url', models.CharField(default=b'', max_length=255, editable=False)), ('order_item', models.ForeignKey(editable=False, to='servo.ServiceOrderItem')), ('purchase_order', models.ForeignKey(editable=False, to='servo.PurchaseOrder', null=True)), ('repair', models.ForeignKey(editable=False, to='servo.Repair')), ], options={ 'ordering': ('order_item',), 'get_latest_by': 'id', }, bases=(models.Model,), ), migrations.CreateModel( name='Shipment', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('ship_to', models.CharField(default=b'', max_length=10, editable=False)), ('return_id', models.CharField(help_text=b'The return ID returned by GSX', max_length=10, unique=True, null=True, editable=False)), ('tracking_id', models.CharField(default=b'', help_text=b"Carrier's tracking ID", max_length=30, verbose_name='Tracking ID', blank=True)), ('tracking_url', models.URLField(help_text=b'The tracking URL returned by GSX', null=True, editable=False)), ('packing_list', models.FileField(help_text=b'The PDF returned by GSX', upload_to=b'returns', null=True, editable=False)), ('carrier', models.CharField(default=b'', max_length=18, verbose_name='carrier', blank=True, choices=[(b'XAER', b'Aero 2000'), (b'XAIRBEC', b'Airborne'), (b'XAIRB', b'Airborne'), (b'XARM', b'Aramex'), (b'XOZP', b'Australia Post'), (b'XBAX', b'BAX GLOBAL PTE LTD'), (b'XCPW', b'CPW Internal'), (b'XCL', b'Citylink'), (b'XDHL', b'DHL'), (b'XDHLC', b'DHL'), (b'XDZNA', b'Danzas-AEI'), (b'XEAS', b'EAS'), (b'XEGL', b'Eagle ASIA PACIFIC HOLDINGS'), (b'XEXXN', b'Exel'), (b'XFEDE', b'FedEx'), (b'XFDE', b'FedEx Air'), (b'XGLS', b'GLS-General Logistics Systems'), (b'XHNF', b'H and Friends'), (b'XNGLN', b'Nightline'), (b'XPL', b'Parceline'), (b'XPRLA', b'Purolator'), (b'SDS', b'SDS An Post'), (b'XSNO', b'Seino Transportation Co. Ltd.'), (b'XSTE', b'Star Track Express'), (b'XTNT', b'TNT'), (b'XUPSN', b'UPS'), (b'XUTI', b'UTi (Japan) K.K.'), (b'XYMT', b'YAMATO')])), ('created_at', models.DateTimeField(auto_now=True)), ('dispatched_at', models.DateTimeField(null=True, editable=False)), ('width', models.PositiveIntegerField(null=True, verbose_name='width', blank=True)), ('height', models.PositiveIntegerField(null=True, verbose_name='height', blank=True)), ('length', models.PositiveIntegerField(null=True, verbose_name='length', blank=True)), ('weight', models.PositiveIntegerField(null=True, verbose_name='weight', blank=True)), ('created_by', models.ForeignKey(related_name='created_shipments', on_delete=django.db.models.deletion.SET_NULL, editable=False, to=settings.AUTH_USER_MODEL, null=True)), ('dispatched_by', models.ForeignKey(related_name='dispatched_shipments', editable=False, to=settings.AUTH_USER_MODEL, null=True)), ('location', models.ForeignKey(editable=False, to='servo.Location')), ], options={ 'ordering': ('-dispatched_at',), 'get_latest_by': 'id', }, bases=(models.Model,), ), migrations.CreateModel( name='ShippingMethod', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(default='New Shipping Method', max_length=128)), ('description', models.TextField(default=b'', blank=True)), ('notify_email', models.EmailField(max_length=75, null=True, blank=True)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Status', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(default='New Status', max_length=255, verbose_name='name')), ('description', models.TextField(null=True, verbose_name='description', blank=True)), ('limit_green', models.IntegerField(default=1, verbose_name='green limit')), ('limit_yellow', models.IntegerField(default=15, verbose_name='yellow limit')), ('limit_factor', models.IntegerField(default=(60, 'Minutes'), verbose_name='time unit', choices=[(60, 'Minutes'), (3600, 'Hours'), (86400, 'Days'), (604800, 'Weeks'), (2419200, 'Months')])), ('queue', models.ManyToManyField(to='servo.Queue', null=True, editable=False, through='servo.QueueStatus')), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'ordering': ('title',), 'verbose_name': 'Status', 'verbose_name_plural': 'Statuses', }, bases=(models.Model,), ), migrations.CreateModel( name='Tag', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(default='New Tag', unique=True, max_length=255, verbose_name='name')), ('type', models.CharField(max_length=32, verbose_name='type', choices=[(b'device', 'Device'), (b'order', 'Order'), (b'note', 'Note'), (b'other', 'Other')])), ('times_used', models.IntegerField(default=0, editable=False)), ('color', models.CharField(default=b'default', max_length=16, null=True, blank=True, choices=[(b'default', 'Default'), (b'success', 'Green'), (b'warning', 'Orange'), (b'important', 'Red'), (b'info', 'Blue')])), ('lft', models.PositiveIntegerField(editable=False, db_index=True)), ('rght', models.PositiveIntegerField(editable=False, db_index=True)), ('tree_id', models.PositiveIntegerField(editable=False, db_index=True)), ('level', models.PositiveIntegerField(editable=False, db_index=True)), ('parent', mptt.fields.TreeForeignKey(related_name='children', blank=True, to='servo.Tag', null=True)), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'verbose_name': 'Tag', 'verbose_name_plural': 'Tags', }, bases=(models.Model,), ), migrations.CreateModel( name='TaggedItem', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('object_id', models.PositiveIntegerField()), ('tag', models.CharField(max_length=128)), ('slug', models.SlugField()), ('color', models.CharField(default=b'', max_length=8)), ('content_type', models.ForeignKey(to='contenttypes.ContentType')), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='Template', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('title', models.CharField(default='New Template', unique=True, max_length=128, verbose_name='title')), ('content', models.TextField(verbose_name='content')), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'ordering': ['title'], 'verbose_name': 'Template', 'verbose_name_plural': 'Templates', }, bases=(models.Model,), ), migrations.CreateModel( name='TimedItem', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('object_id', models.PositiveIntegerField()), ('status', models.CharField(max_length=128)), ('started_at', models.DateTimeField()), ('timeout_at', models.DateTimeField()), ('content_type', models.ForeignKey(to='contenttypes.ContentType')), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ 'abstract': False, }, bases=(models.Model,), ), migrations.CreateModel( name='UserGroup', fields=[ ('group_ptr', models.OneToOneField(parent_link=True, auto_created=True, primary_key=True, serialize=False, to='auth.Group')), ('site', models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site')), ], options={ }, bases=('auth.group',), ), migrations.AlterUniqueTogether( name='taggeditem', unique_together=set([('content_type', 'object_id', 'tag')]), ), migrations.AlterUniqueTogether( name='status', unique_together=set([('title', 'site')]), ), migrations.AddField( model_name='servicepart', name='shipment', field=models.ForeignKey(to='servo.Shipment', null=True), preserve_default=True, ), migrations.AlterUniqueTogether( name='servicepart', unique_together=set([('id', 'shipment')]), ), migrations.AddField( model_name='repair', name='parts', field=models.ManyToManyField(to='servo.ServiceOrderItem', through='servo.ServicePart'), preserve_default=True, ), migrations.AddField( model_name='queuestatus', name='status', field=models.ForeignKey(to='servo.Status'), preserve_default=True, ), migrations.AlterUniqueTogether( name='queuestatus', unique_together=set([('queue', 'status')]), ), migrations.AddField( model_name='queue', name='status_assigned', field=models.ForeignKey(related_name='+', blank=True, to='servo.QueueStatus', help_text='Order has ben assigned to a user', null=True, verbose_name='Order Assigned'), preserve_default=True, ), migrations.AddField( model_name='queue', name='status_closed', field=models.ForeignKey(related_name='+', verbose_name='Order Closed', blank=True, to='servo.QueueStatus', null=True), preserve_default=True, ), migrations.AddField( model_name='queue', name='status_created', field=models.ForeignKey(related_name='+', blank=True, to='servo.QueueStatus', help_text='Order has ben placed to a queue', null=True, verbose_name='Order Created'), preserve_default=True, ), migrations.AddField( model_name='queue', name='status_dispatched', field=models.ForeignKey(related_name='+', verbose_name='Order Dispatched', blank=True, to='servo.QueueStatus', null=True), preserve_default=True, ), migrations.AddField( model_name='queue', name='status_products_ordered', field=models.ForeignKey(related_name='+', blank=True, to='servo.QueueStatus', help_text='Purchase Order for this Service Order has been submitted', null=True, verbose_name='Products Ordered'), preserve_default=True, ), migrations.AddField( model_name='queue', name='status_products_received', field=models.ForeignKey(related_name='+', blank=True, to='servo.QueueStatus', help_text='Products have been received', null=True, verbose_name='Products Received'), preserve_default=True, ), migrations.AddField( model_name='queue', name='status_repair_completed', field=models.ForeignKey(related_name='+', blank=True, to='servo.QueueStatus', help_text='GSX repair completed', null=True, verbose_name='Repair Completed'), preserve_default=True, ), migrations.AlterUniqueTogether( name='queue', unique_together=set([('title', 'site')]), ), migrations.AddField( model_name='purchaseorderitem', name='order_item', field=models.ForeignKey(editable=False, to='servo.ServiceOrderItem', null=True), preserve_default=True, ), migrations.AddField( model_name='purchaseorderitem', name='product', field=models.ForeignKey(to='servo.Product', on_delete=django.db.models.deletion.PROTECT), preserve_default=True, ), migrations.AddField( model_name='purchaseorderitem', name='purchase_order', field=models.ForeignKey(editable=False, to='servo.PurchaseOrder', verbose_name='Purchase Order'), preserve_default=True, ), migrations.AddField( model_name='purchaseorderitem', name='received_by', field=models.ForeignKey(related_name='+', editable=False, to=settings.AUTH_USER_MODEL, null=True), preserve_default=True, ), migrations.AlterUniqueTogether( name='productcategory', unique_together=set([('title', 'site')]), ), migrations.AddField( model_name='product', name='categories', field=models.ManyToManyField(to='servo.ProductCategory', null=True, verbose_name='Categories', blank=True), preserve_default=True, ), migrations.AddField( model_name='product', name='device_models', field=models.ManyToManyField(to='servo.DeviceGroup', null=True, verbose_name='device models', blank=True), preserve_default=True, ), migrations.AddField( model_name='product', name='site', field=models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site'), preserve_default=True, ), migrations.AddField( model_name='orderstatus', name='status', field=models.ForeignKey(to='servo.Status'), preserve_default=True, ), migrations.AlterUniqueTogether( name='orderdevice', unique_together=set([('order', 'device')]), ), migrations.AddField( model_name='order', name='devices', field=models.ManyToManyField(to='servo.Device', null=True, through='servo.OrderDevice'), preserve_default=True, ), migrations.AddField( model_name='order', name='followed_by', field=models.ManyToManyField(related_name='followed_orders', to=settings.AUTH_USER_MODEL), preserve_default=True, ), migrations.AddField( model_name='order', name='location', field=models.ForeignKey(to='servo.Location', on_delete=django.db.models.deletion.PROTECT), preserve_default=True, ), migrations.AddField( model_name='order', name='queue', field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='queue', to='servo.Queue', null=True), preserve_default=True, ), migrations.AddField( model_name='order', name='site', field=models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site'), preserve_default=True, ), migrations.AddField( model_name='order', name='started_by', field=models.ForeignKey(related_name='started_orders', on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, null=True), preserve_default=True, ), migrations.AddField( model_name='order', name='status', field=models.ForeignKey(on_delete=django.db.models.deletion.SET_NULL, verbose_name='status', to='servo.QueueStatus', null=True), preserve_default=True, ), migrations.AddField( model_name='order', name='statuses', field=models.ManyToManyField(related_name='orders', through='servo.OrderStatus', to='servo.Status'), preserve_default=True, ), migrations.AddField( model_name='order', name='tags', field=models.ManyToManyField(to='servo.Tag', verbose_name=b'tags'), preserve_default=True, ), migrations.AddField( model_name='order', name='user', field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL, null=True), preserve_default=True, ), migrations.AddField( model_name='note', name='labels', field=models.ManyToManyField(to='servo.Tag', null=True, blank=True), preserve_default=True, ), migrations.AddField( model_name='note', name='order', field=models.ForeignKey(blank=True, to='servo.Order', null=True), preserve_default=True, ), migrations.AddField( model_name='note', name='parent', field=mptt.fields.TreeForeignKey(related_name='replies', blank=True, to='servo.Note', null=True), preserve_default=True, ), migrations.AddField( model_name='note', name='site', field=models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site'), preserve_default=True, ), migrations.AddField( model_name='message', name='note', field=models.ForeignKey(to='servo.Note'), preserve_default=True, ), migrations.AlterUniqueTogether( name='message', unique_together=set([('note', 'recipient')]), ), migrations.AlterUniqueTogether( name='location', unique_together=set([('title', 'site')]), ), migrations.AddField( model_name='invoiceitem', name='product', field=models.ForeignKey(to='servo.Product', on_delete=django.db.models.deletion.PROTECT), preserve_default=True, ), migrations.AddField( model_name='invoice', name='order', field=models.ForeignKey(editable=False, to='servo.Order'), preserve_default=True, ), migrations.AddField( model_name='invoice', name='site', field=models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site'), preserve_default=True, ), migrations.AddField( model_name='inventory', name='location', field=models.ForeignKey(to='servo.Location'), preserve_default=True, ), migrations.AddField( model_name='inventory', name='product', field=models.ForeignKey(to='servo.Product'), preserve_default=True, ), migrations.AlterUniqueTogether( name='inventory', unique_together=set([('product', 'location')]), ), migrations.AlterUniqueTogether( name='gsxaccount', unique_together=set([('sold_to', 'ship_to', 'environment', 'site')]), ), migrations.AddField( model_name='escalation', name='gsx_account', field=models.ForeignKey(default=servo.defaults.gsx_account, verbose_name='GSX Account', to='servo.GsxAccount'), preserve_default=True, ), migrations.AddField( model_name='device', name='products', field=models.ManyToManyField(help_text='Products that are compatible with this device instance', to='servo.Product', null=True, editable=False), preserve_default=True, ), migrations.AddField( model_name='device', name='site', field=models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site'), preserve_default=True, ), migrations.AddField( model_name='customer', name='devices', field=models.ManyToManyField(verbose_name='devices', null=True, editable=False, to='servo.Device', blank=True), preserve_default=True, ), migrations.AddField( model_name='customer', name='groups', field=models.ManyToManyField(to='servo.CustomerGroup', null=True, verbose_name='Groups', blank=True), preserve_default=True, ), migrations.AddField( model_name='customer', name='parent', field=mptt.fields.TreeForeignKey(related_name='contacts', verbose_name='company', blank=True, to='servo.Customer', null=True), preserve_default=True, ), migrations.AddField( model_name='customer', name='site', field=models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site'), preserve_default=True, ), migrations.AddField( model_name='customer', name='tags', field=models.ManyToManyField(to='servo.Tag', null=True, verbose_name='tags', blank=True), preserve_default=True, ), migrations.AddField( model_name='contactinfo', name='customer', field=models.ForeignKey(to='servo.Customer'), preserve_default=True, ), migrations.AlterUniqueTogether( name='contactinfo', unique_together=set([('customer', 'key')]), ), migrations.AlterUniqueTogether( name='configuration', unique_together=set([('key', 'site')]), ), migrations.AddField( model_name='checklistitemvalue', name='order', field=models.ForeignKey(to='servo.Order'), preserve_default=True, ), migrations.AddField( model_name='checklist', name='queues', field=models.ManyToManyField(to='servo.Queue', null=True, verbose_name='queue', blank=True), preserve_default=True, ), migrations.AddField( model_name='checklist', name='site', field=models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site'), preserve_default=True, ), migrations.AddField( model_name='accessory', name='device', field=models.ForeignKey(to='servo.Device'), preserve_default=True, ), migrations.AddField( model_name='accessory', name='order', field=models.ForeignKey(to='servo.Order'), preserve_default=True, ), migrations.AddField( model_name='user', name='customer', field=mptt.fields.TreeForeignKey(blank=True, editable=False, to='servo.Customer', null=True), preserve_default=True, ), migrations.AddField( model_name='user', name='groups', field=models.ManyToManyField(related_query_name='user', related_name='user_set', to='auth.Group', blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of his/her group.', verbose_name='groups'), preserve_default=True, ), migrations.AddField( model_name='user', name='location', field=models.ForeignKey(related_name='+', on_delete=django.db.models.deletion.PROTECT, verbose_name='Current Location', to='servo.Location', help_text='Orders you create will be registered to this location.', null=True), preserve_default=True, ), migrations.AddField( model_name='user', name='locations', field=models.ManyToManyField(to='servo.Location', null=True), preserve_default=True, ), migrations.AddField( model_name='user', name='queues', field=models.ManyToManyField(to='servo.Queue', null=True, verbose_name='queues', blank=True), preserve_default=True, ), migrations.AddField( model_name='user', name='site', field=models.ForeignKey(default=servo.defaults.site_id, editable=False, to='sites.Site'), preserve_default=True, ), migrations.AddField( model_name='user', name='user_permissions', field=models.ManyToManyField(related_query_name='user', related_name='user_set', to='auth.Permission', blank=True, help_text='Specific permissions for this user.', verbose_name='user permissions'), preserve_default=True, ), ]