diff --git a/lib/model/profile/basic_info.dart b/lib/model/profile/basic_info.dart index 29b1db2..243070e 100644 --- a/lib/model/profile/basic_info.dart +++ b/lib/model/profile/basic_info.dart @@ -1,13 +1,15 @@ +import 'package:unit2/model/profile/basic_information/adress.dart'; import 'package:unit2/model/profile/basic_information/citizenship.dart'; import 'package:unit2/model/profile/basic_information/contact_information.dart'; import 'package:unit2/model/profile/basic_information/identification_information.dart'; import 'package:unit2/model/profile/basic_information/primary-information.dart'; class BasicInfo{ - PrimaryInformation primaryInformation; + PrimaryInformation? primaryInformation; List contactInformation; List identifications; List citizenships; - BasicInfo({required this.contactInformation, required this.primaryInformation,required this.identifications,required this.citizenships}); + List addresses; + BasicInfo({required this.addresses, required this.contactInformation, required this.primaryInformation,required this.identifications,required this.citizenships}); } \ No newline at end of file diff --git a/lib/model/profile/basic_information/adress.dart b/lib/model/profile/basic_information/adress.dart new file mode 100644 index 0000000..68e18d6 --- /dev/null +++ b/lib/model/profile/basic_information/adress.dart @@ -0,0 +1,249 @@ + + +class MainAdress { + MainAdress({ + this.id, + this.address, + this.details, + this.subdivision, + }); + + final int? id; + final AddressClass? address; + final String? details; + final Subdivision? subdivision; + + factory MainAdress.fromJson(Map json) => MainAdress( + id: json["id"], + address: json["address"] == null ? null : AddressClass.fromJson(json["address"]), + details: json["details"], + subdivision: json["subdivision"] == null ? null : Subdivision.fromJson(json["subdivision"]), + ); + + Map toJson() => { + "id": id, + "address": address?.toJson(), + "details": details, + "subdivision": subdivision?.toJson(), + }; +} + +class AddressClass { + AddressClass({ + this.id, + this.country, + this.barangay, + this.category, + this.areaClass, + this.cityMunicipality, + }); + + final int? id; + final Country? country; + final Barangay? barangay; + final Category? category; + final String? areaClass; + final CityMunicipality? cityMunicipality; + + factory AddressClass.fromJson(Map json) => AddressClass( + id: json["id"], + country: json["country"] == null ? null : Country.fromJson(json["country"]), + barangay: json["barangay"] == null ? null : Barangay.fromJson(json["barangay"]), + category: json["category"] == null ? null : Category.fromJson(json["category"]), + areaClass: json["area_class"], + cityMunicipality: json["city_municipality"] == null ? null : CityMunicipality.fromJson(json["city_municipality"]), + ); + + Map toJson() => { + "id": id, + "country": country?.toJson(), + "barangay": barangay?.toJson(), + "category": category?.toJson(), + "area_class": areaClass, + "city_municipality": cityMunicipality?.toJson(), + }; +} + +class Barangay { + Barangay({ + this.code, + this.description, + this.cityMunicipality, + }); + + final String? code; + final String? description; + final CityMunicipality? cityMunicipality; + + factory Barangay.fromJson(Map json) => Barangay( + code: json["code"], + description: json["description"], + cityMunicipality: json["city_municipality"] == null ? null : CityMunicipality.fromJson(json["city_municipality"]), + ); + + Map toJson() => { + "code": code, + "description": description, + "city_municipality": cityMunicipality?.toJson(), + }; +} + +class CityMunicipality { + CityMunicipality({ + this.code, + this.zipcode, + this.province, + this.psgcCode, + this.description, + }); + + final String? code; + final String? zipcode; + final Province? province; + final String? psgcCode; + final String? description; + + factory CityMunicipality.fromJson(Map json) => CityMunicipality( + code: json["code"], + zipcode: json["zipcode"], + province: json["province"] == null ? null : Province.fromJson(json["province"]), + psgcCode: json["psgc_code"], + description: json["description"], + ); + + Map toJson() => { + "code": code, + "zipcode": zipcode, + "province": province?.toJson(), + "psgc_code": psgcCode, + "description": description, + }; +} + +class Province { + Province({ + this.code, + this.region, + this.psgcCode, + this.shortname, + this.description, + }); + + final String? code; + final Region? region; + final String? psgcCode; + final String? shortname; + final String? description; + + factory Province.fromJson(Map json) => Province( + code: json["code"], + region: json["region"] == null ? null : Region.fromJson(json["region"]), + psgcCode: json["psgc_code"], + shortname: json["shortname"], + description: json["description"], + ); + + Map toJson() => { + "code": code, + "region": region?.toJson(), + "psgc_code": psgcCode, + "shortname": shortname, + "description": description, + }; +} + +class Region { + Region({ + this.code, + this.psgcCode, + this.description, + }); + + final int? code; + final String? psgcCode; + final String? description; + + factory Region.fromJson(Map json) => Region( + code: json["code"], + psgcCode: json["psgc_code"], + description: json["description"], + ); + + Map toJson() => { + "code": code, + "psgc_code": psgcCode, + "description": description, + }; +} + +class Category { + Category({ + this.id, + this.name, + this.type, + }); + + final int? id; + final String? name; + final String? type; + + factory Category.fromJson(Map json) => Category( + id: json["id"], + name: json["name"], + type: json["type"], + ); + + Map toJson() => { + "id": id, + "name": name, + "type": type, + }; +} + +class Country { + Country({ + this.id, + this.code, + this.name, + }); + + final int? id; + final String? code; + final String? name; + + factory Country.fromJson(Map json) => Country( + id: json["id"], + code: json["code"], + name: json["name"], + ); + + Map toJson() => { + "id": id, + "code": code, + "name": name, + }; +} + +class Subdivision { + Subdivision({ + this.id, + this.lotNo, + this.blockNo, + }); + + final int? id; + final int? lotNo; + final int? blockNo; + + factory Subdivision.fromJson(Map json) => Subdivision( + id: json["id"], + lotNo: json["lot_no"], + blockNo: json["block_no"], + ); + + Map toJson() => { + "id": id, + "lot_no": lotNo, + "block_no": blockNo, + }; +} diff --git a/lib/model/profile/family_backround.dart b/lib/model/profile/family_backround.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/model/profile/other_info.dart b/lib/model/profile/other_info.dart index fe43df3..ab2a6b7 100644 --- a/lib/model/profile/other_info.dart +++ b/lib/model/profile/other_info.dart @@ -1,8 +1,10 @@ +import 'package:unit2/model/profile/other_information/non_acedimic_recognition.dart'; import 'package:unit2/model/profile/other_information/organization_memberships.dart'; import 'package:unit2/model/profile/other_information/skills_and_hobbies.dart'; class OtherInformation{ List skillsAndHobbies; ListorgMemberships; - OtherInformation({required this.skillsAndHobbies, required this.orgMemberships}); + List nonAcademicRecognition; + OtherInformation({required this.skillsAndHobbies, required this.orgMemberships, required this.nonAcademicRecognition}); } \ No newline at end of file diff --git a/lib/model/profile/other_information/non_acedimic_recognition.dart b/lib/model/profile/other_information/non_acedimic_recognition.dart new file mode 100644 index 0000000..119b762 --- /dev/null +++ b/lib/model/profile/other_information/non_acedimic_recognition.dart @@ -0,0 +1,109 @@ +// To parse this JSON data, do +// +// final nonAcademicRecognition = nonAcademicRecognitionFromJson(jsonString); + +import 'dart:convert'; + +NonAcademicRecognition nonAcademicRecognitionFromJson(String str) => NonAcademicRecognition.fromJson(json.decode(str)); + +String nonAcademicRecognitionToJson(NonAcademicRecognition data) => json.encode(data.toJson()); + +class NonAcademicRecognition { + NonAcademicRecognition({ + this.id, + this.title, + this.presenter, + }); + + final int? id; + final String? title; + final Presenter? presenter; + + factory NonAcademicRecognition.fromJson(Map json) => NonAcademicRecognition( + id: json["id"], + title: json["title"], + presenter: json["presenter"] == null ? null : Presenter.fromJson(json["presenter"]), + ); + + Map toJson() => { + "id": id, + "title": title, + "presenter": presenter?.toJson(), + }; +} + +class Presenter { + Presenter({ + this.id, + this.name, + this.category, + this.privateEntity, + }); + + final int? id; + final String? name; + final Category? category; + final bool? privateEntity; + + factory Presenter.fromJson(Map json) => Presenter( + id: json["id"], + name: json["name"], + category: json["category"] == null ? null : Category.fromJson(json["category"]), + privateEntity: json["private_entity"], + ); + + Map toJson() => { + "id": id, + "name": name, + "category": category?.toJson(), + "private_entity": privateEntity, + }; +} + +class Category { + Category({ + this.id, + this.name, + this.industryClass, + }); + + final int? id; + final String? name; + final IndustryClass? industryClass; + + factory Category.fromJson(Map json) => Category( + id: json["id"], + name: json["name"], + industryClass: json["industry_class"] == null ? null : IndustryClass.fromJson(json["industry_class"]), + ); + + Map toJson() => { + "id": id, + "name": name, + "industry_class": industryClass?.toJson(), + }; +} + +class IndustryClass { + IndustryClass({ + this.id, + this.name, + this.description, + }); + + final int? id; + final String? name; + final dynamic description; + + factory IndustryClass.fromJson(Map json) => IndustryClass( + id: json["id"], + name: json["name"], + description: json["description"], + ); + + Map toJson() => { + "id": id, + "name": name, + "description": description, + }; +} diff --git a/lib/screens/profile/components/basic_information/address_screen.dart b/lib/screens/profile/components/basic_information/address_screen.dart new file mode 100644 index 0000000..f5c9bff --- /dev/null +++ b/lib/screens/profile/components/basic_information/address_screen.dart @@ -0,0 +1,50 @@ +import 'package:flutter/material.dart'; +import 'package:unit2/model/profile/basic_information/adress.dart'; +import 'package:unit2/theme-data.dart/colors.dart'; +import 'package:unit2/utils/global.dart'; + +class AddressScreen extends StatefulWidget { + final List addresses; + const AddressScreen({super.key, required this.addresses}); + + @override + State createState() => _AddressScreenState(); +} + +class _AddressScreenState extends State { + @override + Widget build(BuildContext context) { + + return Scaffold( + appBar: AppBar(title: const Text("Addresses"),centerTitle: true, backgroundColor: primary,), + body: ListView.builder( + itemCount: widget.addresses.length, + itemBuilder: ( + BuildContext context, int index){ + String? subdivision = widget.addresses[index].details??''; + String category = widget.addresses[index].address!.category!.name!; + String? barangay = widget.addresses[index].address!.barangay != null?widget.addresses[index].address!.barangay!.description:''; + String cityMunicipality = widget.addresses[index].address!.cityMunicipality!.description!; + String province = widget.addresses[index].address!.cityMunicipality!.province!.description!; + String region = widget.addresses[index].address!.cityMunicipality!.province!.region!.description!; + return Column(children: [ + Container( + width: screenWidth, + decoration: BoxDecoration( + color: Colors.grey[200], + borderRadius: const BorderRadius.all(Radius.circular(12))), + padding: const EdgeInsets.symmetric(horizontal: 12,vertical: 8), + child: Row(children: [ + Expanded(child: Column(children: [ + Row(children: [Text(subdivision), const SizedBox(width: 5,), Text(category)],), + Text("$barangay $cityMunicipality $province $region"), + ],)), + IconButton(onPressed: (){}, icon: const Icon(Icons.more_vert)) + ]), + ), + const SizedBox(height: 5,) + ],); + }), + ); + } +} \ No newline at end of file diff --git a/lib/screens/profile/components/other_information/non_academic_recognition.dart b/lib/screens/profile/components/other_information/non_academic_recognition.dart new file mode 100644 index 0000000..d8420ee --- /dev/null +++ b/lib/screens/profile/components/other_information/non_academic_recognition.dart @@ -0,0 +1,54 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/src/widgets/framework.dart'; +import 'package:flutter/src/widgets/placeholder.dart'; +import 'package:unit2/model/profile/other_information/non_acedimic_recognition.dart'; +import 'package:unit2/theme-data.dart/colors.dart'; +import 'package:unit2/utils/global.dart'; + +class NonAcademicRecognitionScreen extends StatefulWidget { + final List nonAcademicRecognitions; + const NonAcademicRecognitionScreen({super.key, required this.nonAcademicRecognitions}); + + @override + State createState() => _NonAcademicRecognitionScreenState(); +} + +class _NonAcademicRecognitionScreenState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text("Non Academic Recognition"), centerTitle: true, backgroundColor: primary,), + body: ListView.builder( + itemCount: widget.nonAcademicRecognitions.length, + itemBuilder: (BuildContext context, int index){ + String award = widget.nonAcademicRecognitions[index].title!; + String presenter = widget.nonAcademicRecognitions[index].presenter!.name!; + return Column( + children: [ + Container( + width: screenWidth, + decoration: BoxDecoration( + color: Colors.grey[200], + borderRadius: const BorderRadius.all(Radius.circular(12))), + padding: const EdgeInsets.symmetric(horizontal: 12,vertical: 8), + child: Row( + children: [ + Expanded(child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(award), + Text(presenter), + ],)), + + IconButton(onPressed: (){}, icon: const Icon(Icons.more_vert)) + ], + ), + ), + const SizedBox(height: 5,), + ], + ); + }), + ); + } +} \ No newline at end of file diff --git a/lib/screens/profile/profile.dart b/lib/screens/profile/profile.dart index 53c4fed..d9280f6 100644 --- a/lib/screens/profile/profile.dart +++ b/lib/screens/profile/profile.dart @@ -8,6 +8,7 @@ import 'package:fluttericon/entypo_icons.dart'; import 'package:fluttericon/font_awesome5_icons.dart'; import 'package:fluttericon/modern_pictograms_icons.dart'; import 'package:unit2/bloc/profile/profile_bloc.dart'; +import 'package:unit2/screens/profile/components/basic_information/address_screen.dart'; import 'package:unit2/screens/profile/components/basic_information/citizenship_screen.dart'; import 'package:unit2/screens/profile/components/basic_information/contact_information.dart'; import 'package:unit2/screens/profile/components/basic_information/identification_information.dart'; @@ -16,6 +17,7 @@ import 'package:unit2/screens/profile/components/education_screen.dart'; import 'package:unit2/screens/profile/components/eligibility.dart'; import 'package:unit2/screens/profile/components/learning_and_development_screen.dart'; import 'package:unit2/screens/profile/components/loading_screen.dart'; +import 'package:unit2/screens/profile/components/other_information/non_academic_recognition.dart'; import 'package:unit2/screens/profile/components/other_information/org_membership.dart'; import 'package:unit2/screens/profile/components/other_information/skills_and_hobbies_screen.dart'; import 'package:unit2/screens/profile/components/references_screen.dart'; @@ -89,10 +91,15 @@ class _ProfileInfoState extends State { items: [ subMenu(Icons.person, "Primary",(){ Navigator.push(context,MaterialPageRoute(builder: (BuildContext context){ - return PrimaryInfo(primaryInformation: state.profileInformation.basicInfo.primaryInformation); + return PrimaryInfo(primaryInformation: state.profileInformation.basicInfo.primaryInformation!); }) ); }), - subMenu(Icons.home, "Home Addresses",(){}), + subMenu(Icons.home, "Home Addresses",(){ + Navigator.push(context,MaterialPageRoute(builder: (BuildContext context){ + return AddressScreen(addresses: state.profileInformation.basicInfo.addresses); + }) ); + + }), subMenu( Icons.contact_mail, "Identifications",(){ Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ @@ -207,7 +214,12 @@ class _ProfileInfoState extends State { })); }), subMenu(Entypo.doc_text, - "Non-Academic Recognitions",(){}), + "Non-Academic Recognitions",(){ + + Navigator.push(context, MaterialPageRoute(builder: (BuildContext context){ + return NonAcademicRecognitionScreen(nonAcademicRecognitions: state.profileInformation.otherInformation.nonAcademicRecognition); + })); + }), ]), ExpandableGroup( collapsedIcon: diff --git a/lib/sevices/profile/profile_service.dart b/lib/sevices/profile/profile_service.dart index e7ecf66..d6ffdfe 100644 --- a/lib/sevices/profile/profile_service.dart +++ b/lib/sevices/profile/profile_service.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'package:http/http.dart' as http; import 'package:unit2/model/login_data/employee_info/employee_info.dart'; import 'package:unit2/model/profile/basic_info.dart'; +import 'package:unit2/model/profile/basic_information/adress.dart'; import 'package:unit2/model/profile/basic_information/citizenship.dart'; import 'package:unit2/model/profile/basic_information/contact_information.dart'; import 'package:unit2/model/profile/basic_information/identification_information.dart'; @@ -9,6 +10,7 @@ import 'package:unit2/model/profile/educational_background.dart'; import 'package:unit2/model/profile/eligibility.dart'; import 'package:unit2/model/profile/learning_development.dart'; import 'package:unit2/model/profile/other_info.dart'; +import 'package:unit2/model/profile/other_information/non_acedimic_recognition.dart'; import 'package:unit2/model/profile/profileInfomation.dart'; import 'package:unit2/model/profile/references.dart'; import 'package:unit2/model/profile/other_information/skills_and_hobbies.dart'; @@ -28,18 +30,20 @@ class ProfileService { String url = Url.instance.profileInformation(); String path = url + id.toString(); ProfileInformation? profileInformation0; - PrimaryInformation primaryInformation; - List workExperiences =[]; + PrimaryInformation? primaryInformation; + List workExperiences = []; List references = []; + List addresses = []; List identificationInformation = []; List contactInformation = []; List eligibilities = []; List citizenships = []; List learningsDevelopments = []; List educationalBackgrounds = []; - List voluntaryWorks =[]; + List voluntaryWorks = []; List skillsHobbies = []; List orgMemberships = []; + List nonAcademicRecognitions = []; Map headers = { 'Content-Type': 'application/json; charset=UTF-8', 'Authorization': "Token $token" @@ -49,97 +53,149 @@ class ProfileService { .getRequest(path: path, param: {}, headers: headers); if (response.statusCode == 200) { Map data = jsonDecode(response.body); + // get primary information - primaryInformation = PrimaryInformation.fromJson( - data['data']['basic_information']['primary_information']); + if (data['data']['basic_information']['primary_information'] != null) { + primaryInformation = PrimaryInformation.fromJson( + data['data']['basic_information']['primary_information']); + } else { + primaryInformation = null; + } + // get all contacts - data['data']['basic_information']['contact_information'] - .forEach((var contact) { - ContactInfo contactInfo = ContactInfo.fromJson(contact['contact_info']); - contactInformation.add(contactInfo); - }); + if (data['data']['basic_information']['contact_information'] != null) { + data['data']['basic_information']['contact_information'] + .forEach((var contact) { + ContactInfo contactInfo = + ContactInfo.fromJson(contact['contact_info']); + contactInformation.add(contactInfo); + }); + } + + // get all addresses + if (data['data']['basic_information']['addresses'] != null) { + data['data']['basic_information']['addresses'].forEach((var address) { + MainAdress mainAdress = MainAdress.fromJson(address); + addresses.add(mainAdress); + }); + } + // get all identifications - data['data']['basic_information']['identification_records'] - .forEach((var identity) { - Identification identification = Identification.fromJson(identity); - identificationInformation.add(identification); - }); + if (data['data']['basic_information']['identification_records'] != null) { + data['data']['basic_information']['identification_records']! + .forEach((var identity) { + Identification identification = Identification.fromJson(identity); + identificationInformation.add(identification); + }); + } + //get all eligibilities - data['data']['eligibilities'].forEach((var cert) { - EligibityCert eligibility = EligibityCert.fromJson(cert); - eligibilities.add(eligibility); - }); + if (data['data']['eligibilities'] != null) { + data['data']['eligibilities']!.forEach((var cert) { + EligibityCert eligibility = EligibityCert.fromJson(cert); + eligibilities.add(eligibility); + }); + } + // get all citizenships if (data['data']['citizenship'] != null) { - data['data']['citizenships'].forEach((var citizenship) { + data['data']['citizenships']!.forEach((var citizenship) { Citizenship person = Citizenship.fromJson(citizenship); citizenships.add(person); }); } // get all references; - data['data']['personal_references'].forEach((var person) { - PersonalReference reference = PersonalReference.fromJson(person); - references.add(reference); - }); + if (data['data']['personal_references'] != null) { + data['data']['personal_references'].forEach((var person) { + PersonalReference reference = PersonalReference.fromJson(person); + references.add(reference); + }); + } //get all learning and developments - - data['data']['learning_development'].forEach((var training) { - LearningDevelopement learnings = - LearningDevelopement.fromJson(training); - learningsDevelopments.add(learnings); - }); + if (data['data']['learning_development'] != null) { + data['data']['learning_development'].forEach((var training) { + LearningDevelopement learnings = + LearningDevelopement.fromJson(training); + learningsDevelopments.add(learnings); + }); + } //get all educational background - data['data']['education_background'].forEach((var education) { - EducationalBackground educationalBackground = - EducationalBackground.fromJson(education); - educationalBackgrounds.add(educationalBackground); - }); + if (data['data']['education_background'] != null) { + data['data']['education_background'].forEach((var education) { + EducationalBackground educationalBackground = + EducationalBackground.fromJson(education); + educationalBackgrounds.add(educationalBackground); + }); + } // get all work history - - data['data']['work_experiences'].forEach((var work){ - WorkHistory experience = WorkHistory.fromJson(work); - workExperiences.add(experience); - }); + if (data['data']['work_experiences'] != null) { + data['data']['work_experiences'].forEach((var work) { + WorkHistory experience = WorkHistory.fromJson(work); + workExperiences.add(experience); + }); + } // get all voluntary works - data['data']['voluntary_works'].forEach((var work){ - VoluntaryWork vwork = VoluntaryWork.fromJson(work); - voluntaryWorks.add(vwork); - }); + if (data['data']['voluntary_works'] != null) { + data['data']['voluntary_works'].forEach((var work) { + VoluntaryWork vwork = VoluntaryWork.fromJson(work); + voluntaryWorks.add(vwork); + }); + } - // get all hobbies - data['data']['other_information']['skills_hobbies'].forEach((var skills_hobbies){ - SkillsHobbies skillsAndHobbies = SkillsHobbies.fromJson(skills_hobbies); - skillsHobbies.add(skillsAndHobbies); - }); + // get all hobbies + if (data['data']['other_information']['skills_hobbies'] != null) { + data['data']['other_information']['skills_hobbies'] + .forEach((var skills_hobbies) { + SkillsHobbies skillsAndHobbies = + SkillsHobbies.fromJson(skills_hobbies); + skillsHobbies.add(skillsAndHobbies); + }); + } - data['data']['other_information']['organization_memberships'].forEach((var org) { - OrganizationMembership organization = - OrganizationMembership.fromJson(org); - orgMemberships.add(organization); - }); + //get all organization memberships + if (data['data']['other_information']['organization_memberships'] != + null) { + data['data']['other_information']['organization_memberships'] + .forEach((var org) { + OrganizationMembership organization = + OrganizationMembership.fromJson(org); + orgMemberships.add(organization); + }); + } +//get all non academic recognition + if (data['data']['other_information']['non_academic_records'] != null) { + data['data']['other_information']['non_academic_records'] + .forEach((var recognition) { + NonAcademicRecognition nonAcademicRecognition = + NonAcademicRecognition.fromJson(recognition); + nonAcademicRecognitions.add(nonAcademicRecognition); + }); + } BasicInfo basicInfo = BasicInfo( contactInformation: contactInformation, primaryInformation: primaryInformation, identifications: identificationInformation, - citizenships: citizenships); - OtherInformation otherInformation = OtherInformation(skillsAndHobbies: skillsHobbies,orgMemberships: orgMemberships); + citizenships: citizenships, + addresses: addresses); + OtherInformation otherInformation = OtherInformation( + skillsAndHobbies: skillsHobbies, + orgMemberships: orgMemberships, + nonAcademicRecognition: nonAcademicRecognitions); ProfileInformation profileInformation = ProfileInformation( - otherInformation: otherInformation, + otherInformation: otherInformation, workExperiences: workExperiences, basicInfo: basicInfo, eligibilities: eligibilities, references: references, learningsAndDevelopment: learningsDevelopments, educationalBackgrounds: educationalBackgrounds, - voluntaryWorks: voluntaryWorks - - ); + voluntaryWorks: voluntaryWorks); profileInformation0 = profileInformation; } // }catch(e){