diff --git a/.gitignore b/.gitignore index 80b27a7..2fc88d2 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ __pycache__/ *.so # Static Media Stuff -equipment_tracker/media/* +equipment_tracker/media/avatars/* equipment_tracker/static/* # Distribution / packaging diff --git a/equipment_tracker/config/settings.py b/equipment_tracker/config/settings.py index a17bd7e..2f33d2d 100644 --- a/equipment_tracker/config/settings.py +++ b/equipment_tracker/config/settings.py @@ -95,6 +95,8 @@ MIDDLEWARE = [ STATIC_URL = 'static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" +MEDIA_URL = 'api/v1/media/' +MEDIA_ROOT = os.path.join(BASE_DIR, 'media') ROOT_URLCONF = 'config.urls' diff --git a/equipment_tracker/equipments/models.py b/equipment_tracker/equipments/models.py index 94d77d5..9aa7e1f 100644 --- a/equipment_tracker/equipments/models.py +++ b/equipment_tracker/equipments/models.py @@ -3,6 +3,9 @@ from django.utils.timezone import now from simple_history.models import HistoricalRecords from django.db.models.signals import post_migrate from django.dispatch import receiver +from config import settings +import csv +import os class Equipment(models.Model): @@ -44,49 +47,63 @@ class EquipmentInstance(models.Model): @receiver(post_migrate) def create_superuser(sender, **kwargs): if sender.name == 'equipments': - equipment_data = [ - { - 'name': 'Pyrex Beaker', - 'description': '', - 'category': 'Glassware', - 'remarks': 'A beaker for storing fluids' - }, - { - 'name': 'Bunsen Burner', - 'description': '', - 'category': 'Miscellaneous', - 'remarks': 'A burner for heating things' - }, - { - 'name': 'Microscope', - 'description': '', - 'category': 'Miscellaneous', - 'remarks': 'A microscope for zooming into tiny objects' - }, - { - 'name': 'Petri Dish', - 'description': '', - 'category': 'Glassware', - 'remarks': 'A petri dish' - } - ] + root_path = os.path.join(settings.MEDIA_ROOT, 'equipment_records') + csv_files = [f for f in os.listdir(root_path) if f.endswith('.csv')] + print('Warning: Postmigration script will migrate without checking for existing item instances') + for csv_file in csv_files: + csv_file_path = os.path.join(root_path, csv_file) + filename = os.path.splitext(csv_file)[0] + print('---', 'Adding Equipments from', filename, '---') + with open(csv_file_path, newline='') as csvfile: - for data in equipment_data: - EQUIPMENT, CREATED = Equipment.objects.get_or_create( - name=data['name'], - description=data['description'], - category=data['category'] - ) - if (CREATED): - print('Created Equipment: ' + data['name']) - print( - 'Generating 3 Equipment Instances for Equipment: ' + data['name']) - # Generate 3 equipment instances per SKU - for x in range(3): - EQUIPMENT_INSTANCE = EquipmentInstance.objects.create( - equipment=EQUIPMENT, - status='Available', - remarks=data['remarks'] - ) - print('Created Equipment Instances: ' + - EQUIPMENT_INSTANCE.equipment.name) + reader = csv.reader(csvfile) + next(reader) # Skip the header row + for row in reader: + if not any(row): + continue + + # Get equipment information + category = filename.split('-')[0] + name = row[2] + ' ' + row[1] + # If quantity is missing, set value as 0 + if (row[3] == ''): + available = 0 + else: + available = int(row[3]) + # If quantity of broken instances is missing, set value as 0 + if (row[4] == ''): + broken = 0 + else: + available = available - int(row[4]) + broken = int(row[4]) + + def create_instances(a, b, c): + print('Adding', a, 'number of working', c.name) + # Add working equipments + if (a >= 1): + for i in range(a): + EquipmentInstance.objects.create( + equipment=c, status='Available') + + if (b >= 1): + print('Adding', a, 'number of broken', c.name) + # Add broken equipments + for i in range(b): + EquipmentInstance.objects.create( + equipment=c, status='Broken') + + EQUIPMENT = Equipment.objects.filter( + name=name, category=category).first() + + # Check if equipment exists + if (EQUIPMENT): + # If so, add equipment instances + create_instances(available, broken, EQUIPMENT) + + # If not, create equipment + else: + # Create the equipment first + EQUIPMENT = Equipment.objects.create( + name=name, category=category) + # Then create the instances + create_instances(available, broken, EQUIPMENT) diff --git a/equipment_tracker/media/equipment_records/Glassware-2nd Floor Chemlab.csv b/equipment_tracker/media/equipment_records/Glassware-2nd Floor Chemlab.csv new file mode 100644 index 0000000..8adc48b --- /dev/null +++ b/equipment_tracker/media/equipment_records/Glassware-2nd Floor Chemlab.csv @@ -0,0 +1,125 @@ +,NAME,Brand/Supplier,Qty.,Breakages,Remarks +1,"Beaker, 1000mL",Pyrex,1,, +3,"Beaker, 100mL",Mars Lab,108,12, +5,"Beaker, 150mL",Pyrex,50,11, +8,"Beaker, 250mL",Pyrex,50,13, +11,"Beaker, 400mL",Pyrex,20,1, +14,"Beaker, 50mL",Mars Lab,44,13, +15,"Beaker, 600mL",Pyrex,15,1, +17,"Bell Jar, Micro, Bottom Plate, 1000ml",,1,,PKI donated +18,"Bell Jar, Micro, Bottom Plate, 200ml",,1,,PKI donated +19,"Bell Jar, Micro, Bottom Plate, 500ml",,1,,PKI donated +31,"Bottle, BOD, 300mL",,3,, +34,"Buret, Automatic Auto Refill, 50mL",Kimax,2,, +35,"Buret, Automatic Straight",,3,, +36,"Buret, Glass Stopcock, 50mL",Pyrex,2,, +39,"Buret, Teflon Stopcock, 10mL",Pyrex,1,, +40,"Buret, Teflon Stopcock, 25mL",Pyrex,2,, +41,"Buret, Teflon Stopcock, 50mL",Pyrex,4,, +42,"Buret, Teflon Stopcock, 50mL",Mars Lab,,, +46,"Column, Distilling, Drip Tip",,1,,PKI donated +47,"Column, Vigreux, Pattern-Multi",,1,,PKI donated +48,"Concentrator, 250mL",,1,,PKI donated +49,"Concentrator, 500mL",,1,,PKI donated +50,"Condenser, Allihn, 24/38",,1,,PKI donated +51,"Condenser, Allihn, 24/40, 300mm",,1,,PKI donated +52,"Condenser, Allihn, Drip – Tip",,1,,PKI donated +53,"Condenser, Allihn, Rotary Evaporator",,1,,PKI donated +54,"Condenser, Coiled-Distillation",,1,,PKI donated +55,"Condenser, Graham, Drip Tip, 19/38",,1,,PKI donated +56,"Condenser, Graham, TS-Joint, 55/50",,1,,PKI donated +57,"Condenser, Leibig, Drip – tip",,1,,PKI donated +58,"Condenser, Leibig, Drip tip, 24/40, 41x 300mm",,1,,PKI donated +59,"Condenser, West Drip Tip, 55/50",,1,,PKI donated +60,"Condenser, with Still Head",,1,,PKI donated +61,Connecting Bulb for Kjeldal,,1,,PKI donated +62,"Connecting Tube, Clasein, 24/29",,1,,PKI donated +63,"Cuvette, Glass, 3.5mL capacity",Mars Lab,8,, +64,"Cylinder, Graduated, 1000mL",Pyrex,1,, +66,"Cylinder, Graduated, 100mL",Mars Lab,52,4, +67,"Cylinder, Graduated, 10mL",Pyrex,7,, +69,"Cylinder, Graduated, 25mL",Pyrex,10,, +70,"Cylinder, Graduated, 50mL",Pyrex,5,, +72,"Cylinder, Graduated, 250mL",Mars Lab,10,, +72,"Cylinder, Graduated,Plastic 100mL",,1,, +73,"Dessicator, Glass, 10.4in.(O.D) x 8.11in.",,1,, +74,"Dessicator, Glass, 10.5in.(O.D) x 8.30in.",,1,, +75,"Dessicator, Glass, 10.5in.(O.D) x 9.23in.",,1,, +76,"Dessicator, Glass, 12.6in.(O.D) x 12.7in.",,1,, +77,"Dessicator, Glass, 6.63in.(O.D) x 6.00in.",,1,, +78,"Dessicator, Glass, 6.74in.(O.D) x 6.16in.",,1,, +79,"Dessicator, Glass, 7,500mL",Mars Lab,4,, +80,"Dessicator, Glass, 8.63in.(O.D) x 7.91in.",,1,, +81,"Dessicator, Glass, 8.67in.(O.D) x 7.61in.",,1,, +82,"Dessicator, Glass, 8.92in.(O.D) x 6.89in.",,1,, +83,"Dessicator, Glass, 8.93in.(O.D) x 9.10in.",,1,, +84,"Distillation Set up, Distilling Flask(1000mL) and Condenser",Mars Lab,3,, +85,"Distilling Flask, 1000mL",Pyrex,6,, +86,"Distilling Flask, Round Bottom, 100mL",,3,, +87,"Distilling Reciever, Dean Stark",,2,, +92,"Flask, Centrifuge, TS-Joint, 1000mL",,1,,PKI donated +93,"Flask, Centrifuge, TS-Joint, 1000mL",Vidrex,2,, +94,"Flask, Conical 500mL",Mars Lab,20,, +95,"Flask, Distilling, Round Bottom, 1000mL",,1,,PKI donated +96,"Flask, Distilling, Round Bottom, 1000mL",Pyrex,1,, +98,"Flask, Erlenmeyer, Low Actinic, 250mL",Pyrex,4,, +99,"Flask, Erlenmeyer, Narrowmouth, 1000mL",Pyrex,5,, +11,"Flask, Erlenmeyer, Narrowmouth, 125mL",Pyrex,11,, +103,"Flask, Erlenmeyer, Narrowmouth, 250mL",Pyrex,9,, +105,"Flask, Erlenmeyer, Narrowmouth, 300mL",Pyrex,3,, +63,"Flask, Erlenmeyer, Narrowmouth, 500mL",Pyrex,63,6, +116,"Flask, Kjeldal, 200mL",,8,, +117,"Flask, Kjeldal, 500mL",,1,, +118,"Flask, Kjeldal, 500mL",Mars Lab,33,, +119,"Flask, Pear Shape, Shortneck, 1000mL",Pyrex,4,, +120,"Flask, Pear Shape, Shortneck, 100mL",Pyrex,8,, +121,"Flask, Pear Shape, Shortneck, 500mL",Pyrex,5,, +122,"Flask, Pear Shape, Shortneck, 50mL",Pyrex,2,, +131,"Flask, Volumetric, 100mL",Pyrex,7,, +132,"Flask, Volumetric, 100mL",Mars Lab,4,, +134,"Flask, Volumetric, 200mL",Pyrex,4,, +136,"Flask, Volumetric, 250mL",Pyrex,15,, +139,"Flask, Volumetric, 500mL",Pyrex,1,, +141,"Flask, Volumetric, 50mL",Pyrex,1,, +142,"Flask, Volumetric, 50mL",Mars Lab,7,,flasks have a broken stoppers +143,"Funnel, Dropping, 1000mL",Pyrex,1,,PKI donated +145,"Funnel, Separatory, Pear Shape, 100mL",Vidrex,3,, +147,"Funnel, Separatory, Pear Shape, 250mL",Mars Lab,23,, +148,"Funnel, Separatory, Pear Shape, 500mL",Pyrex,11,, +149,"Funnel, Separatory, Pear Shape, 500mL",Pyrex,1,, +149,"Funnel, Separatory, Pear Shape, 50mL",Pyrex,1,, +150,"Funnel, Short Stem, 100mm",Pyrex,4,, +152,"Funnel, Short Stem, 60° angle",Mars Lab,23,, +171,"Pipet, Measuring, 10mL",Mars Lab,11,, +172,"Pipet, Measuring, 1mL",,3,, +174,"Pipet, Measuring, 25mL",,19,, +190,"Pycnometer, 25mL",Mars Lab,1,, +192,Recovery Bend w/ 2 Vertical Cones,,1,, +193,Retort,,3,2, +194,"Slide Glass, 100pcs. Per box",Matsunami,8,, +197,"Slide Glass, 72pcs. Per pack",Sail Brand,1,, +198,"Soxhlet Extraction Tube, TS-Joint, 34/28",Vidrex,4,, +199,"Soxhlet Extraction Tube, TS-Joint, Large",,12,, +200,Stirring Rod,,5,, +221,Tilting Dispense,,5,, +223,"Watch Glass, 100mm dia. ",Mars Lab,50,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, diff --git a/equipment_tracker/media/equipment_records/Glassware-Dispensing Room.csv b/equipment_tracker/media/equipment_records/Glassware-Dispensing Room.csv new file mode 100644 index 0000000..8638c80 --- /dev/null +++ b/equipment_tracker/media/equipment_records/Glassware-Dispensing Room.csv @@ -0,0 +1,75 @@ +,NAME,Brand/Supplier,Qty.,Breakages,Remarks +1,"Beaker, 1000mL",,2,, +3,"Beaker, 100mL",,148,3, +6,"Beaker, 150mL",,48,, +8,"Beaker, 250mL",,132,8, +11,"Beaker, 400mL",,26,, +14,"Beaker, 50mL",,122,3, +15,"Beaker, 500mL",,1,, +16,"Beaker, 600mL",,14,, +17,"Beaker, 800mL",,1,, +38,"Buret, Teflon Stopcock, 100mL",,13,, +40,"Buret, Teflon Stopcock, 25mL",,9,, +41,"Buret, Teflon Stopcock, 50mL",,11,, +64,"Cylinder, Graduated, 250mL",,7,, +65,"Cylinder, Graduated, 100mL",,38,2, +67,"Cylinder, Graduated, 10mL",,44,1, +69,"Cylinder, Graduated, 25mL",,16,1, +70,"Cylinder, Graduated, 50mL",,20,2, +84,"Distillation Set up, Distilling Flask(1000mL) and Condenser",,3,, +99,"Flask, Erlenmeyer, Narrowmouth, 1000mL",,18,, +100,"Flask, Erlenmeyer, Narrowmouth, 125mL",,37,2, +102,"Flask, Erlenmeyer, Narrowmouth, 2000mL",,2,, +103,"Flask, Erlenmeyer, Narrowmouth, 250mL",,52,4, +105,"Flask, Erlenmeyer, Narrowmouth, 300mL",,21,, +106,"Flask, Erlenmeyer, Narrowmouth, 500mL",,41,, +112,"Flask, Filtering 500mL",,11,2, +129,"Flask, Volumetric, 1000mL",,10,, +131,"Flask, Volumetric, 100mL",,,, +132,"Flask, Volumetric, 100mL",,38,, +134,"Flask, Volumetric, 200mL",,5,, +137,"Flask, Volumetric, 250mL",,10,, +139,"Flask, Volumetric, 500mL",,15,, +141,"Flask, Volumetric, 50mL",,11,, +146,"Funnel, Separatory, Pear Shape, 250mL",,13,1, +148,"Funnel, Separatory, Pear Shape, 500mL",,2,, +151,"Funnel, Short Stem, 50mm",,28,1, +163,"Petridish with cover, Glass, 100x15mm",,23,, +165,"Petridish without cover, Glass, 100x15mm",,3,, +166,"Petridish, with cover, Glass,140mmx17mm",,3,, +167,"Petridish, with cover, Glass,60mmx15mm",,5,, +168,"Petridish, without cover, Glass,140x17mm",,7,, +171,"Pipet, Measuring, 10mL",,15,, +172,"Pipet, Measuring, 1mL",,11,, +174,"Pipet, Measuring, 25mL",,12,, +176,"Pipet, Measuring, 2mL",,4,, +178,"Pipet, Measuring, 5mL",,5,, +179,"Pipet, Volumetric 15mL",,2,, +180,"Pipet, Volumetric, 10mL",,22,1, +181,"Pipet, Volumetric, 1mL",,2,, +182,"Pipet, Volumetric, 20mL",,1,, +186,"Pipet, Volumetric, 50mL",,2,, +187,"Pipet, Volumetric, 5mL",,4,, +189,"Pycnometer, 25mL",,8,, +200,Stirring Rod,,64,, +223,"Watch Glass, 100mm dia. ",,46,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, diff --git a/equipment_tracker/media/equipment_records/Glassware-Main Stockroom.csv b/equipment_tracker/media/equipment_records/Glassware-Main Stockroom.csv new file mode 100644 index 0000000..82d718d --- /dev/null +++ b/equipment_tracker/media/equipment_records/Glassware-Main Stockroom.csv @@ -0,0 +1,88 @@ +,NAME,Brand/Supplier,Qty.,Breakages,Remarks +3,"Beaker, 100mL",,27,, +6,"Beaker, 150mL",,2,, +8,"Beaker, 250mL",,116,, +11,"Beaker, 400mL",,185,, +15,"Beaker, 50mL",,30,, +20,"Bottle Reagent, Clear, NM, 1000mL",,6,, +21,"Bottle Reagent, Clear, NM, 1000mL",Mars Lab,15,, +22,"Bottle Reagent, Clear, NM, 100mL",,13,, +23,"Bottle Reagent, Clear, NM, 2000mL",,5,, +24,"Bottle Reagent, Clear, NM, 2500mL",,2,, +25,"Bottle Reagent, Clear, NM, 5000mL",,6,, +26,"Bottle Reagent, Clear, NM, 500mL",,32,, +27,"Bottle Reagent, Clear, WM, 250mL",,11,, +28,"Bottle Reagent, Clear, WM, 40mL",,3,, +29,"Bottle Reagent, Clear, WM, 500mL",,4,, +30,"Bottle, BOD, 100mL",,12,, +31,"Bottle, BOD, 300mL",,48,26, +32,"Bottle, Media, 250mL",,6,, +33,"Bottle, Media, 500mL",,2,, +,"Buret, Teflon Stopcock, 100mL",,5,, +41,"Buret, Teflon Stopcock, 50mL",,84,, +64,"Cylinder, Graduated, 100mL",,36,, +65,"Cylinder, Graduated, 10mL",,38,, +67,"Cylinder, Graduated, 250mL",,3,, +70,"Cylinder, Graduated, 50mL",,28,, +84,"Distillation Set up, Distilling Flask(1000mL) and Condenser",,5,, +99,"Flask, Erlenmeyer, Narrowmouth, 1000mL",,17,, +100,"Flask, Erlenmeyer, Narrowmouth, 125mL",,13,, +102,"Flask, Erlenmeyer, Narrowmouth, 2000mL",,7,, +103,"Flask, Erlenmeyer, Narrowmouth, 250mL",,68,, +105,"Flask, Erlenmeyer, Narrowmouth, 300mL",,1,, +106,"Flask, Erlenmeyer, Narrowmouth, 500mL",,9,, +112,"Flask, Filtering 500mL",,55,, +124,"Flask, Round Bottom, Longneck, 500mL",,19,, +132,"Flask, Volumetric, 100mL",,7,, +139,"Flask, Volumetric, 500mL",,20,, +146,"Funnel, Separatory, Pear Shape, 250mL",,23,, +162,Nitrogen Distillation Apparatus,,1,, +174,"Pipet, Measuring, 25mL",,37,, +189,"Pycnometer, 25mL",,19,, +200,Stirring Rod,,68,, +194,"Slide Glass, 100pcs. Per box",Matsunami,10,, +195,"Slide Glass, 100pcs. Per box",Mars Lab,18,, +196,"Slide Glass, 50pcs. Per pack",Toshinriko,1,, +197,"Slide Glass, 72pcs. Per pack",Sail Brand,1,, +198,"Soxhlet Extraction Tube, TS-Joint, 34/28",Vidrex,4,, +199,"Soxhlet Extraction Tube, TS-Joint, Large",,12,, +202,Test Tube with Stopper 10mL,Mars Lab,18,, +203,Test Tube with screw caps 30mL,Mars Lab,236,, +204,"Test Tube, 10mL",Mars Lab,1924,45, +205,"Test Tube, 12mm OD x 120mmL",Hach,400,42, +206,"Test Tube, 12mm OD x 7mmL",,60,, +207,"Test Tube, 13mm OD x 110mmL",,88,, +208,"Test Tube, 13mm OD x 75mmL",,5,, +209,"Test Tube, 15mm OD x 100mmL",,16,, +210,"Test Tube, 16mm OD x 100mmL",,65,, +211,"Test Tube, 16mm OD x 125mmL",,191,20, +212,"Test Tube, 16mm OD x 60mmL",,64,, +213,"Test Tube, 18mm OD x 165mmL",,98,, +214,"Test Tube, 18mm OD x 16mmL",,54,, +215,"Test Tube, 20mL",Mars Lab,237,, +216,"Test Tube, 25mm OD x 200mmL",,81,, +217,"Test Tube, 50mL",Mars Lab,90,, +218,"Test Tube, Borosilicate Glass, 10/15",,2,, +219,"Test Tube, Borosilicate Glass, 100mL",,34,, +220,"Test Tube, Borosilicate Glass, 50mL",,55,, +223,"Watch Glass, 100mm dia. ",,86,23, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, diff --git a/equipment_tracker/media/equipment_records/Miscellaneous-2nd Floor Chemlab.csv b/equipment_tracker/media/equipment_records/Miscellaneous-2nd Floor Chemlab.csv new file mode 100644 index 0000000..bd5d40a --- /dev/null +++ b/equipment_tracker/media/equipment_records/Miscellaneous-2nd Floor Chemlab.csv @@ -0,0 +1,49 @@ +,NAME,Brand/Supplier,Qty.,Breakages,Remarks +1,Alcohol Lamp,Mars Lab,20,, +2,"Basin, Plastic, 12inch Dia.",Mars Lab,1,, +3,"Bottle, Washing, Assorted, 500mL",Mars Lab,83,, +4,"Brush, Test Tube, Nylon, Regular",,12,, +5,Bunsen Burner,Mars Lab,53,, +6,"Clamp, Double Buret",Mars Lab,70,, +7,"Clamp, Extension",,268,, +8,"Clamp, Holder",Mars Lab,108,, +9,Conductivity Apparatus,Mars Lab,76,, +10,"Crucible Tong, 9 ¾cm",,68,, +11,"Crucible with cover,Porcelain 30mL",Mars Lab,76,, +14,"Iron Ring, 117mm I.D",Mars Lab,46,, +16,"Mortar & Pestle, Porcelain, 400mL Vol.",Mars Lab,20,, +17,"Spot Plate, Porcelain, 12 Crates",Mars Lab,92,, +18,Test Tube Holder,Mars Lab,244,, +19,"Test Tube Rack, Stainless, 50holes (ID)",,131,, +20,"Test Tube Rack, Stainless, 50holes (ID), Big",,16,, +21,"Thermometer, Alcohol -10° - 350°C",Mars Lab,119,, +22,"Thermometer, Mercury -10° - 350°C",Mars Lab,113,, +23,Triple Beam Balance,Mars Lab,28,, +24,Water Bath,Mars Lab,73,, +25,"Wire Gauze, Ceramic Centered, 5x5",Mars Lab,6,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, diff --git a/equipment_tracker/media/equipment_records/Miscellaneous-Dispensing Room.csv b/equipment_tracker/media/equipment_records/Miscellaneous-Dispensing Room.csv new file mode 100644 index 0000000..4bbaf4d --- /dev/null +++ b/equipment_tracker/media/equipment_records/Miscellaneous-Dispensing Room.csv @@ -0,0 +1,57 @@ +,NAME,Brand/Supplier,Qty.,Breakages,Remarks +1,Alcohol Lamp,Mars Lab,9,1, +2,"Basin, Plastic, 12inch Dia.",Mars Lab,4,, +3,"Bottle, Washing, Assorted, 500mL",Mars Lab,67,4, +4,"Brush, Test Tube, Nylon, Regular",,47,12, +5,"Bulb, Aspirator, Orange, Pointed Tip",,33,16, +6,Bunsen Burner,Mars Lab,15,4, +7,"Clamp, Double Buret",Mars Lab,26,, +8,"Clamp, Extension",,30,3, +9,"Crucible Tong, 9 ¾cm",,37,, +10,"Crucible with cover,Porcelain 30mL",Mars Lab,82,34, +11,"Crucible, Metal w/o cover, 30mL",,8,, +12,"Evaporating dish, 120mL",Mars Lab,22,15, +13,"Forceps, Stainless",Mars Lab,10,3, +14,Funnel Stand,,9,, +15,"Funnel, Buchner, 200mm",,5,, +16,"Hot Plate, Single Burner",Mars Lab,5,1, +17,"Hydrometer, range: 1.000 tp 1.070",Mars Lab,,, +18,"Iron Ring, 117mm I.D",Mars Lab,24,, +19,Iron Stand,Mars Lab,26,, +20,"Iron Wire Triangles, 3.8(1.5)cm(in.)",,9,4, +21,"Mortar & Pestle, Porcelain, 400mL Vol.",Mars Lab,28,, +22,"Spot Plate, Porcelain, 12 Crates",Mars Lab,19,, +23,"Spot Plate, Porcelain, 12 Holes, Plastic",,5,4, +24,Test Tube Holder,Mars Lab,31,, +25,"Test Tube Rack, Stainless, 50holes (ID), ",,34,, +26,"Thermometer, Alcohol -10° - 350°C",Mars Lab,44,12, +27,"Thermometer, Mercury -10° - 350°C",Mars Lab,29,11, +28,Triple Beam Balance,Mars Lab,11,, +29,Water Bath,Mars Lab,21,5, +30,"Wire Gauze, Ceramic Centered, 5x5",Mars Lab,60,45, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, diff --git a/equipment_tracker/media/equipment_records/Miscellaneous-Main Stockroom.csv b/equipment_tracker/media/equipment_records/Miscellaneous-Main Stockroom.csv new file mode 100644 index 0000000..bd5d40a --- /dev/null +++ b/equipment_tracker/media/equipment_records/Miscellaneous-Main Stockroom.csv @@ -0,0 +1,49 @@ +,NAME,Brand/Supplier,Qty.,Breakages,Remarks +1,Alcohol Lamp,Mars Lab,20,, +2,"Basin, Plastic, 12inch Dia.",Mars Lab,1,, +3,"Bottle, Washing, Assorted, 500mL",Mars Lab,83,, +4,"Brush, Test Tube, Nylon, Regular",,12,, +5,Bunsen Burner,Mars Lab,53,, +6,"Clamp, Double Buret",Mars Lab,70,, +7,"Clamp, Extension",,268,, +8,"Clamp, Holder",Mars Lab,108,, +9,Conductivity Apparatus,Mars Lab,76,, +10,"Crucible Tong, 9 ¾cm",,68,, +11,"Crucible with cover,Porcelain 30mL",Mars Lab,76,, +14,"Iron Ring, 117mm I.D",Mars Lab,46,, +16,"Mortar & Pestle, Porcelain, 400mL Vol.",Mars Lab,20,, +17,"Spot Plate, Porcelain, 12 Crates",Mars Lab,92,, +18,Test Tube Holder,Mars Lab,244,, +19,"Test Tube Rack, Stainless, 50holes (ID)",,131,, +20,"Test Tube Rack, Stainless, 50holes (ID), Big",,16,, +21,"Thermometer, Alcohol -10° - 350°C",Mars Lab,119,, +22,"Thermometer, Mercury -10° - 350°C",Mars Lab,113,, +23,Triple Beam Balance,Mars Lab,28,, +24,Water Bath,Mars Lab,73,, +25,"Wire Gauze, Ceramic Centered, 5x5",Mars Lab,6,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,, +,,,,,