Skip to content

Skill

Model

Bases: Model

This is a skill entity based on SF msf__Skill_c.json

Source code in backend/skills/models.py
class Skill(models.Model):
    "This is a skill entity based on SF msf__Skill_c.json"

    name = models.CharField(max_length=255, unique=True)
    salesforce_ref = models.CharField(max_length=255, blank=True)
    group = models.ForeignKey(SkillGroup, on_delete=models.CASCADE, related_name="skills")
    option_set = models.ForeignKey(
        "skills.SkillOptionSet",
        on_delete=models.PROTECT,
        related_name="skills",
        null=True,
        blank=True,
        help_text="Reusable set of options (only allowed for Evaluation skills).",
    )
    is_active = models.BooleanField(default=True)

    if TYPE_CHECKING:
        option_set: SkillOptionSet

    class Meta:
        ordering = ["-pk"]
        verbose_name = "Skill"
        verbose_name_plural = "Skills"
        db_table = "skills"
        indexes = [
            models.Index(fields=["name"]),
            models.Index(fields=["salesforce_ref"]),
        ]

    def __str__(self):
        return self.name

    def save(self, *args, **kwargs):
        # Mainly for admins, so validation is in models
        self.full_clean()
        return super().save(*args, **kwargs)

    def clean(self):
        # Only allow option_set for evaluation groups
        if self.option_set and self.group and self.group.type != SkillGroupType.EVALUATION:
            raise ValidationError(
                {"option_set": "Option set can only be assigned to skills whose group type is 'Evaluation'."}
            )

    @property
    def is_in_salesforce(self) -> bool:
        """Check if the company is in Salesforce."""
        return bool(self.salesforce_ref)

is_in_salesforce property

Check if the company is in Salesforce.

Remapping config

Source data

[
  {
    "name": "Id",
    "type": "id",
    "idLookup": true
  },
  {
    "name": "OwnerId",
    "type": "reference",
    "idLookup": false
  },
  {
    "name": "IsDeleted",
    "type": "boolean",
    "idLookup": false
  },
  {
    "name": "Name",
    "type": "string",
    "idLookup": true
  },
  {
    "name": "CreatedDate",
    "type": "datetime",
    "idLookup": false
  },
  {
    "name": "CreatedById",
    "type": "reference",
    "idLookup": false
  },
  {
    "name": "LastModifiedDate",
    "type": "datetime",
    "idLookup": false
  },
  {
    "name": "LastModifiedById",
    "type": "reference",
    "idLookup": false
  },
  {
    "name": "SystemModstamp",
    "type": "datetime",
    "idLookup": false
  },
  {
    "name": "msf__Order__c",
    "type": "double",
    "idLookup": false
  },
  {
    "name": "msf__Skill_Definition__c",
    "type": "reference",
    "idLookup": false
  },
  {
    "name": "msf__Skill__c",
    "type": "reference",
    "idLookup": false
  },
  {
    "name": "msf__Skill_tags__c",
    "type": "string",
    "idLookup": false
  },
  {
    "name": "msf__Textkernel_Coding__c",
    "type": "string",
    "idLookup": false
  },
  {
    "name": "msf__Visibility_Dependent_On_Tags__c",
    "type": "string",
    "idLookup": false
  }
]